diff --git a/patches/0001-ci-update-deno-to-2.2.10.patch b/patches/0001-ci-update-deno-to-2.2.10.patch index 30758e5..447a1ee 100644 --- a/patches/0001-ci-update-deno-to-2.2.10.patch +++ b/patches/0001-ci-update-deno-to-2.2.10.patch @@ -1,7 +1,7 @@ -From bb04e015ec50984b845e5168d78aef4c04f7f2a1 Mon Sep 17 00:00:00 2001 +From f5dbfaeaf0d33562deff832507fc1f5303ec7db2 Mon Sep 17 00:00:00 2001 From: Fijxu Date: Mon, 24 Mar 2025 19:37:34 -0300 -Subject: [PATCH 01/17] ci: update deno to 2.2.10 +Subject: [PATCH 01/19] ci: update deno to 2.2.10 --- Dockerfile | 2 +- diff --git a/patches/0002-feat-add-support-for-an-external-videoplayback-proxy.patch b/patches/0002-feat-add-support-for-an-external-videoplayback-proxy.patch index 17e463a..3d0dd6e 100644 --- a/patches/0002-feat-add-support-for-an-external-videoplayback-proxy.patch +++ b/patches/0002-feat-add-support-for-an-external-videoplayback-proxy.patch @@ -1,7 +1,7 @@ -From a8b9d8e07bead1f385e0195a0eee2a16e790cd4a Mon Sep 17 00:00:00 2001 +From 37bc031e62624e841a0af0a77a57c5db564ef65c Mon Sep 17 00:00:00 2001 From: Fijxu Date: Mon, 24 Mar 2025 18:44:10 -0300 -Subject: [PATCH 02/17] feat: add support for an external videoplayback proxy +Subject: [PATCH 02/19] feat: add support for an external videoplayback proxy --- config/config.example.toml | 1 + diff --git a/patches/0003-feat-report-the-external-videoplayback-proxy-via-inf.patch b/patches/0003-feat-report-the-external-videoplayback-proxy-via-inf.patch index 4889f28..4136b9d 100644 --- a/patches/0003-feat-report-the-external-videoplayback-proxy-via-inf.patch +++ b/patches/0003-feat-report-the-external-videoplayback-proxy-via-inf.patch @@ -1,7 +1,7 @@ -From 4d2d0cdbc3ad1fe6219be03777b7a16b3dda3cd5 Mon Sep 17 00:00:00 2001 +From 622968d6dc112624853e90017acb7c2a8cfe330d Mon Sep 17 00:00:00 2001 From: Fijxu Date: Mon, 24 Mar 2025 18:52:53 -0300 -Subject: [PATCH 03/17] feat: report the external videoplayback proxy via /info +Subject: [PATCH 03/19] feat: report the external videoplayback proxy via /info endpoint --- diff --git a/patches/0004-feat-add-resolution-limit-on-DASH-streams-to-save-ba.patch b/patches/0004-feat-add-resolution-limit-on-DASH-streams-to-save-ba.patch index 61904f8..d12bdff 100644 --- a/patches/0004-feat-add-resolution-limit-on-DASH-streams-to-save-ba.patch +++ b/patches/0004-feat-add-resolution-limit-on-DASH-streams-to-save-ba.patch @@ -1,7 +1,7 @@ -From 9e4a26e3079d4526b065548437f8367beceb0c6c Mon Sep 17 00:00:00 2001 +From 78044308fece1bd77965e1e3595f31a8b2a06c9c Mon Sep 17 00:00:00 2001 From: Fijxu Date: Mon, 24 Mar 2025 19:02:01 -0300 -Subject: [PATCH 04/17] feat: add resolution limit on DASH streams to save +Subject: [PATCH 04/19] feat: add resolution limit on DASH streams to save bandwidth --- diff --git a/patches/0005-feat-add-env-variable-to-set-verify_requests.patch b/patches/0005-feat-add-env-variable-to-set-verify_requests.patch index d961337..7c40b28 100644 --- a/patches/0005-feat-add-env-variable-to-set-verify_requests.patch +++ b/patches/0005-feat-add-env-variable-to-set-verify_requests.patch @@ -1,7 +1,7 @@ -From e27726037b69c82c1f1c93d6bde7b3803450c63a Mon Sep 17 00:00:00 2001 +From 734ce6d5df19da05fa69ac01372067c844b1c8c2 Mon Sep 17 00:00:00 2001 From: Fijxu Date: Mon, 24 Mar 2025 19:06:04 -0300 -Subject: [PATCH 05/17] feat: add env variable to set verify_requests +Subject: [PATCH 05/19] feat: add env variable to set verify_requests --- src/lib/helpers/config.ts | 4 +++- diff --git a/patches/0006-feat-add-support-for-multiple-proxies.patch b/patches/0006-feat-add-support-for-multiple-proxies.patch index 667b14d..4d0d539 100644 --- a/patches/0006-feat-add-support-for-multiple-proxies.patch +++ b/patches/0006-feat-add-support-for-multiple-proxies.patch @@ -1,7 +1,7 @@ -From dcebf7c1b4a6a6f9ed894f6b5ad0a413f1d0ffd9 Mon Sep 17 00:00:00 2001 +From 3e53667f0dc9e27f8adea609f65c75f43639bd2d Mon Sep 17 00:00:00 2001 From: Fijxu Date: Mon, 24 Mar 2025 19:20:52 -0300 -Subject: [PATCH 06/17] feat: add support for multiple proxies +Subject: [PATCH 06/19] feat: add support for multiple proxies --- src/lib/helpers/getFetchClient.ts | 17 ++++++++++++++++- diff --git a/patches/0007-feat-add-option-to-disable-potoken-generation-check.patch b/patches/0007-feat-add-option-to-disable-potoken-generation-check.patch index d8a4810..fdf7b18 100644 --- a/patches/0007-feat-add-option-to-disable-potoken-generation-check.patch +++ b/patches/0007-feat-add-option-to-disable-potoken-generation-check.patch @@ -1,7 +1,7 @@ -From cfb2997113c7ba335de3efa31c9ce9ed2646c82a Mon Sep 17 00:00:00 2001 +From e608861ad9914e17578390842ef95332d6cb19e6 Mon Sep 17 00:00:00 2001 From: Fijxu Date: Mon, 24 Mar 2025 20:34:33 -0300 -Subject: [PATCH 07/17] feat: add option to disable potoken generation check +Subject: [PATCH 07/19] feat: add option to disable potoken generation check --- config/config.example.toml | 1 + diff --git a/patches/0008-add-proxy-retries-on-innertube-error.patch b/patches/0008-add-proxy-retries-on-innertube-error.patch index e84b344..051535e 100644 --- a/patches/0008-add-proxy-retries-on-innertube-error.patch +++ b/patches/0008-add-proxy-retries-on-innertube-error.patch @@ -1,7 +1,7 @@ -From b75a191a2a9d8e1b54c1746754cc1027d611c4e5 Mon Sep 17 00:00:00 2001 +From 896f8566b909ff97c52b8ae890b57e412e9e3db2 Mon Sep 17 00:00:00 2001 From: Fijxu Date: Tue, 25 Mar 2025 00:04:47 -0300 -Subject: [PATCH 08/17] add proxy retries on innertube error +Subject: [PATCH 08/19] add proxy retries on innertube error --- src/lib/helpers/config.ts | 1 + diff --git a/patches/0009-add-metrics-for-proxy-retries.patch b/patches/0009-add-metrics-for-proxy-retries.patch index c30e4c0..8d681cc 100644 --- a/patches/0009-add-metrics-for-proxy-retries.patch +++ b/patches/0009-add-metrics-for-proxy-retries.patch @@ -1,7 +1,7 @@ -From 8bd671cec92a37acc4b35206d82c2aa10f677f75 Mon Sep 17 00:00:00 2001 +From 9f802d64b78514be552b67d89061e1fff56a3251 Mon Sep 17 00:00:00 2001 From: Fijxu Date: Tue, 25 Mar 2025 00:07:28 -0300 -Subject: [PATCH 09/17] add metrics for proxy retries +Subject: [PATCH 09/19] add metrics for proxy retries --- src/lib/helpers/metrics.ts | 5 +++++ diff --git a/patches/0010-fix-fix-tokio-overflow-on-compile.patch b/patches/0010-fix-fix-tokio-overflow-on-compile.patch index 5a79d59..5a51b2c 100644 --- a/patches/0010-fix-fix-tokio-overflow-on-compile.patch +++ b/patches/0010-fix-fix-tokio-overflow-on-compile.patch @@ -1,7 +1,7 @@ -From 98d028765a8eeb4396ac8d900178c1088b33ca59 Mon Sep 17 00:00:00 2001 +From 819c4d74c592896d45d95602c75c908bd940289a Mon Sep 17 00:00:00 2001 From: Fijxu Date: Tue, 25 Mar 2025 00:24:07 -0300 -Subject: [PATCH 10/17] fix: fix tokio overflow on compile +Subject: [PATCH 10/19] fix: fix tokio overflow on compile --- Dockerfile | 2 ++ diff --git a/patches/0011-Add-environment-variable-for-youtube_session.frequen.patch b/patches/0011-Add-environment-variable-for-youtube_session.frequen.patch index 24553c6..8b6ff18 100644 --- a/patches/0011-Add-environment-variable-for-youtube_session.frequen.patch +++ b/patches/0011-Add-environment-variable-for-youtube_session.frequen.patch @@ -1,7 +1,7 @@ -From 807cad2a8ba67a80e34a77220d6026552df98640 Mon Sep 17 00:00:00 2001 +From ba263e7858711e3096620dfdeeb0dc687d009723 Mon Sep 17 00:00:00 2001 From: Fijxu Date: Wed, 26 Mar 2025 12:24:49 -0300 -Subject: [PATCH 11/17] Add environment variable for youtube_session.frequency +Subject: [PATCH 11/19] Add environment variable for youtube_session.frequency --- src/lib/helpers/config.ts | 4 +++- diff --git a/patches/0012-add-option-to-disable-logging.patch b/patches/0012-add-option-to-disable-logging.patch index eb5d495..bf2636e 100644 --- a/patches/0012-add-option-to-disable-logging.patch +++ b/patches/0012-add-option-to-disable-logging.patch @@ -1,7 +1,7 @@ -From 4f963fe9432d598e99d19c13301ccfbaa5e00973 Mon Sep 17 00:00:00 2001 +From 92e97db2c1d991986bf9b3ac49323a8b16e6787b Mon Sep 17 00:00:00 2001 From: Fijxu Date: Tue, 8 Apr 2025 02:21:10 -0400 -Subject: [PATCH 12/17] add option to disable logging +Subject: [PATCH 12/19] add option to disable logging --- src/lib/helpers/config.ts | 7 ++++++- diff --git a/patches/0013-metrics-track-unidentified-innertube-errors.patch b/patches/0013-metrics-track-unidentified-innertube-errors.patch index 4aefa90..980c1f4 100644 --- a/patches/0013-metrics-track-unidentified-innertube-errors.patch +++ b/patches/0013-metrics-track-unidentified-innertube-errors.patch @@ -1,7 +1,7 @@ -From 45f5a427e63174695f4233b093ab6496cfa82764 Mon Sep 17 00:00:00 2001 +From 47fedead3ff8a29b12e82caa5fa0f5b01ddac075 Mon Sep 17 00:00:00 2001 From: Fijxu Date: Mon, 14 Apr 2025 01:24:57 -0400 -Subject: [PATCH 13/17] metrics: track unidentified innertube errors +Subject: [PATCH 13/19] metrics: track unidentified innertube errors --- src/lib/helpers/metrics.ts | 142 +++++++++++++++++++++++++++++-------- diff --git a/patches/0014-metrics-add-more-errors.patch b/patches/0014-metrics-add-more-errors.patch index 7cbdf74..bc25ded 100644 --- a/patches/0014-metrics-add-more-errors.patch +++ b/patches/0014-metrics-add-more-errors.patch @@ -1,7 +1,7 @@ -From c8c9d3d591681d508b7446e6a36a315345b8f80d Mon Sep 17 00:00:00 2001 +From 3a8cd40bd348abb514244228a0f43c054f9fbfc8 Mon Sep 17 00:00:00 2001 From: Fijxu Date: Mon, 14 Apr 2025 01:25:40 -0400 -Subject: [PATCH 14/17] metrics: add more errors +Subject: [PATCH 14/19] metrics: add more errors Added reason and subreason for sentitive content videos ("CONTENT_CHECK_REQUIRED") diff --git a/patches/0015-ci-improve-container-image-build-times.patch b/patches/0015-ci-improve-container-image-build-times.patch index f5b6be1..ee550a8 100644 --- a/patches/0015-ci-improve-container-image-build-times.patch +++ b/patches/0015-ci-improve-container-image-build-times.patch @@ -1,7 +1,7 @@ -From f8ec0c6fa2ae2ce7fc3b9ed44c939ad8c5bc346b Mon Sep 17 00:00:00 2001 +From f66165a4b744d38c7fa955daf888ce7fef1bcee5 Mon Sep 17 00:00:00 2001 From: Fijxu Date: Tue, 15 Apr 2025 19:48:26 -0400 -Subject: [PATCH 15/17] ci: improve container image build times +Subject: [PATCH 15/19] ci: improve container image build times --- .github/workflows/docker-build-push.yaml | 2 ++ diff --git a/patches/0016-metrics-add-live-premiere-and-private-video-errors.patch b/patches/0016-metrics-add-live-premiere-and-private-video-errors.patch index 00a934c..2a8b1bc 100644 --- a/patches/0016-metrics-add-live-premiere-and-private-video-errors.patch +++ b/patches/0016-metrics-add-live-premiere-and-private-video-errors.patch @@ -1,7 +1,7 @@ -From da3a20d1802dd51e8771120679891859af51de82 Mon Sep 17 00:00:00 2001 +From ca19de393c214537256948021af18840c1caeee7 Mon Sep 17 00:00:00 2001 From: Fijxu Date: Sun, 20 Apr 2025 02:18:50 -0400 -Subject: [PATCH 16/17] metrics: add live, premiere and private video errors +Subject: [PATCH 16/19] metrics: add live, premiere and private video errors --- src/lib/helpers/metrics.ts | 42 ++++++++++++++++++++++++++++++++++++-- diff --git a/patches/0017-option-to-only-use-http-1.1-client-on-videoplayback-.patch b/patches/0017-option-to-only-use-http-1.1-client-on-videoplayback-.patch index 9bbe26d..c1ec620 100644 --- a/patches/0017-option-to-only-use-http-1.1-client-on-videoplayback-.patch +++ b/patches/0017-option-to-only-use-http-1.1-client-on-videoplayback-.patch @@ -1,7 +1,7 @@ -From 5d129fc771d47cb320ae9d72a194c902f37ea2a2 Mon Sep 17 00:00:00 2001 +From e4952342e5dd29daf1b69b479c9e5ebd7722a1e9 Mon Sep 17 00:00:00 2001 From: Fijxu Date: Mon, 21 Apr 2025 16:53:15 -0400 -Subject: [PATCH 17/17] option to only use http/1.1 client on videoplayback +Subject: [PATCH 17/19] option to only use http/1.1 client on videoplayback requests --- diff --git a/patches/0018-return-immediately-if-403-is-received-on-HEAD-reques.patch b/patches/0018-return-immediately-if-403-is-received-on-HEAD-reques.patch new file mode 100644 index 0000000..436be9a --- /dev/null +++ b/patches/0018-return-immediately-if-403-is-received-on-HEAD-reques.patch @@ -0,0 +1,44 @@ +From dbfa3d5022bd2dc43388d4333f41ebf65c376fe9 Mon Sep 17 00:00:00 2001 +From: Fijxu +Date: Tue, 22 Apr 2025 15:41:48 -0400 +Subject: [PATCH 18/19] return immediately if 403 is received on HEAD request + +--- + src/routes/videoPlaybackProxy.ts | 21 +++++++++++++++++++++ + 1 file changed, 21 insertions(+) + +diff --git a/src/routes/videoPlaybackProxy.ts b/src/routes/videoPlaybackProxy.ts +index 2af343e..4976edb 100644 +--- a/src/routes/videoPlaybackProxy.ts ++++ b/src/routes/videoPlaybackProxy.ts +@@ -124,6 +124,27 @@ videoPlaybackProxy.get("/", async (c) => { + redirect: "manual", + }, + ); ++ ++ if (googlevideoResponse.status == 403) { ++ return new Response(googlevideoResponse.body, { ++ status: googlevideoResponse.status, ++ statusText: googlevideoResponse.statusText, ++ headers: { ++ "content-length": ++ googlevideoResponse.headers.get("content-length") || ++ "", ++ "access-control-allow-origin": "*", ++ "accept-ranges": ++ googlevideoResponse.headers.get("accept-ranges") || "", ++ "content-type": ++ googlevideoResponse.headers.get("content-type") || "", ++ "expires": googlevideoResponse.headers.get("expires") || "", ++ "last-modified": ++ googlevideoResponse.headers.get("last-modified") || "", ++ }, ++ }); ++ } ++ + if (googlevideoResponse.headers.has("Location")) { + location = googlevideoResponse.headers.get("Location") as string; + continue; +-- +2.49.0 + diff --git a/patches/0019-chore-sets-a-default-timeout-of-30-seconds-on-reques.patch b/patches/0019-chore-sets-a-default-timeout-of-30-seconds-on-reques.patch new file mode 100644 index 0000000..d261a11 --- /dev/null +++ b/patches/0019-chore-sets-a-default-timeout-of-30-seconds-on-reques.patch @@ -0,0 +1,26 @@ +From 22285b4dd0a965eb942ea8bdd946200ae6edb67a Mon Sep 17 00:00:00 2001 +From: Fijxu +Date: Tue, 22 Apr 2025 15:42:23 -0400 +Subject: [PATCH 19/19] chore: sets a default timeout of 30 seconds on requests + +From: https://github.com/iv-org/invidious-companion/pull/106 +--- + src/lib/helpers/config.ts | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/lib/helpers/config.ts b/src/lib/helpers/config.ts +index 602e460..4b57a4f 100644 +--- a/src/lib/helpers/config.ts ++++ b/src/lib/helpers/config.ts +@@ -32,7 +32,7 @@ export const ConfigSchema = z.object({ + ump: z.boolean().default(false), + proxy: z.string().nullable().default(Deno.env.get("PROXY") || null), + fetch: z.object({ +- timeout_ms: z.number().optional(), ++ timeout_ms: z.number().default(30_000), + retry: z.object({ + enabled: z.boolean(), + times: z.number().optional(), +-- +2.49.0 +