From 5384b8b0e40f3f4c20c5f668e72e4d8c0b0d0dd9 Mon Sep 17 00:00:00 2001 From: Fijxu Date: Sun, 20 Apr 2025 02:22:55 -0400 Subject: [PATCH] add patch metrics-add-live-premiere-and-private-video-errors.patch --- patches/0001-ci-update-deno-to-2.2.10.patch | 4 +- ...-for-an-external-videoplayback-proxy.patch | 4 +- ...external-videoplayback-proxy-via-inf.patch | 4 +- ...ion-limit-on-DASH-streams-to-save-ba.patch | 4 +- ...-env-variable-to-set-verify_requests.patch | 4 +- ...eat-add-support-for-multiple-proxies.patch | 4 +- ...-to-disable-potoken-generation-check.patch | 4 +- ...add-proxy-retries-on-innertube-error.patch | 4 +- .../0009-add-metrics-for-proxy-retries.patch | 4 +- ...10-fix-fix-tokio-overflow-on-compile.patch | 4 +- ...variable-for-youtube_session.frequen.patch | 4 +- .../0012-add-option-to-disable-logging.patch | 4 +- ...-track-unidentified-innertube-errors.patch | 4 +- patches/0014-metrics-add-more-errors.patch | 4 +- ...-improve-container-image-build-times.patch | 4 +- ...ve-premiere-and-private-video-errors.patch | 114 ++++++++++++++++++ 16 files changed, 144 insertions(+), 30 deletions(-) create mode 100644 patches/0016-metrics-add-live-premiere-and-private-video-errors.patch 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 2e47f04..1fe0236 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 684fd74af7d272f7623a1a27401eaa24156f0085 Mon Sep 17 00:00:00 2001 +From 9042bad1241f6c82cb0832bb95c0acecc814ce0b Mon Sep 17 00:00:00 2001 From: Fijxu Date: Mon, 24 Mar 2025 19:37:34 -0300 -Subject: [PATCH 01/15] ci: update deno to 2.2.10 +Subject: [PATCH 01/16] 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 8ab299b..7ed69de 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 043df80316bc0cba560f6975289fb65cc13b9519 Mon Sep 17 00:00:00 2001 +From 2bb84882f1b4ff22f9c7458ff74137fdc3505347 Mon Sep 17 00:00:00 2001 From: Fijxu Date: Mon, 24 Mar 2025 18:44:10 -0300 -Subject: [PATCH 02/15] feat: add support for an external videoplayback proxy +Subject: [PATCH 02/16] 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 1db8af2..4d7ffb2 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 00077ce2193f2338e886776dce1e525db90f540c Mon Sep 17 00:00:00 2001 +From 48e21725e158e2f81afd52c224ba24479400c625 Mon Sep 17 00:00:00 2001 From: Fijxu Date: Mon, 24 Mar 2025 18:52:53 -0300 -Subject: [PATCH 03/15] feat: report the external videoplayback proxy via /info +Subject: [PATCH 03/16] 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 83da131..7076edb 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 2d7b7239a12afe9f899d278abc3e889a1eb15ae7 Mon Sep 17 00:00:00 2001 +From 437530429003f86bf2f6bee7e4715844a014b5b9 Mon Sep 17 00:00:00 2001 From: Fijxu Date: Mon, 24 Mar 2025 19:02:01 -0300 -Subject: [PATCH 04/15] feat: add resolution limit on DASH streams to save +Subject: [PATCH 04/16] 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 b448be9..8cb9f3d 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 a45e971825d89d31d9e0963cd1f3a92f5978f31e Mon Sep 17 00:00:00 2001 +From 13ae58c2c98e672f6dbc26d3f8706fd74ef0e453 Mon Sep 17 00:00:00 2001 From: Fijxu Date: Mon, 24 Mar 2025 19:06:04 -0300 -Subject: [PATCH 05/15] feat: add env variable to set verify_requests +Subject: [PATCH 05/16] 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 c846af8..acc04ed 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 16bb71f10dd19b197100df94fb0c859415bca789 Mon Sep 17 00:00:00 2001 +From 9aaa709981c487b8b0e27ac599b14e5482db70d6 Mon Sep 17 00:00:00 2001 From: Fijxu Date: Mon, 24 Mar 2025 19:20:52 -0300 -Subject: [PATCH 06/15] feat: add support for multiple proxies +Subject: [PATCH 06/16] 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 5dde845..d42d2dd 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 5773026f670c6ef30ada3fa6922e6240874eea4f Mon Sep 17 00:00:00 2001 +From 1022daf7d82a26bfde9d94f8e1f7b073ea20c58c Mon Sep 17 00:00:00 2001 From: Fijxu Date: Mon, 24 Mar 2025 20:34:33 -0300 -Subject: [PATCH 07/15] feat: add option to disable potoken generation check +Subject: [PATCH 07/16] 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 b295495..fc01114 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 ed91309e542ad45b59d401ebefca8f031217c4c8 Mon Sep 17 00:00:00 2001 +From 7b20307a3f2bb4aaf92ca9a66d38ceb3935ccca5 Mon Sep 17 00:00:00 2001 From: Fijxu Date: Tue, 25 Mar 2025 00:04:47 -0300 -Subject: [PATCH 08/15] add proxy retries on innertube error +Subject: [PATCH 08/16] 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 69fb366..ae566cd 100644 --- a/patches/0009-add-metrics-for-proxy-retries.patch +++ b/patches/0009-add-metrics-for-proxy-retries.patch @@ -1,7 +1,7 @@ -From 625209a05d619295fd78d05fc8d3580791e2344b Mon Sep 17 00:00:00 2001 +From 13d14720311211b80282ba00f1d7817015b84f09 Mon Sep 17 00:00:00 2001 From: Fijxu Date: Tue, 25 Mar 2025 00:07:28 -0300 -Subject: [PATCH 09/15] add metrics for proxy retries +Subject: [PATCH 09/16] 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 66b4f81..04a82ed 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 9f07e6c0807bfd8b5ec26e246154e69c65b3ec75 Mon Sep 17 00:00:00 2001 +From bf6d61bcec02acc7d35532073f08544bfea6c748 Mon Sep 17 00:00:00 2001 From: Fijxu Date: Tue, 25 Mar 2025 00:24:07 -0300 -Subject: [PATCH 10/15] fix: fix tokio overflow on compile +Subject: [PATCH 10/16] 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 626407f..824a7ea 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 1b9e1bc812136413075dad2b981fa21e1f610c43 Mon Sep 17 00:00:00 2001 +From 6086b422b4bd140793e06eca2848924848dfdbd3 Mon Sep 17 00:00:00 2001 From: Fijxu Date: Wed, 26 Mar 2025 12:24:49 -0300 -Subject: [PATCH 11/15] Add environment variable for youtube_session.frequency +Subject: [PATCH 11/16] 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 8a844ab..ec83d60 100644 --- a/patches/0012-add-option-to-disable-logging.patch +++ b/patches/0012-add-option-to-disable-logging.patch @@ -1,7 +1,7 @@ -From 6b9b8b53cb1f3e9ffbc2b4cb8456d849fd7902ef Mon Sep 17 00:00:00 2001 +From a9dbc4f66174f2b2636081cbee3a1ea15a3f6691 Mon Sep 17 00:00:00 2001 From: Fijxu Date: Tue, 8 Apr 2025 02:21:10 -0400 -Subject: [PATCH 12/15] add option to disable logging +Subject: [PATCH 12/16] 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 d06fc86..1bdc874 100644 --- a/patches/0013-metrics-track-unidentified-innertube-errors.patch +++ b/patches/0013-metrics-track-unidentified-innertube-errors.patch @@ -1,7 +1,7 @@ -From 65b5bb70373dcfeadb23852ab2cb38f1dea83888 Mon Sep 17 00:00:00 2001 +From 3aea964fe800d82f8a5eee650841cb1208867ece Mon Sep 17 00:00:00 2001 From: Fijxu Date: Mon, 14 Apr 2025 01:24:57 -0400 -Subject: [PATCH 13/15] metrics: track unidentified innertube errors +Subject: [PATCH 13/16] 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 11887bb..1c4781f 100644 --- a/patches/0014-metrics-add-more-errors.patch +++ b/patches/0014-metrics-add-more-errors.patch @@ -1,7 +1,7 @@ -From e6d100e339c7da1d1bccea52ce5815acd434958d Mon Sep 17 00:00:00 2001 +From b7df5e38e499652dbcc550d8ec6e0ec453bec04f Mon Sep 17 00:00:00 2001 From: Fijxu Date: Mon, 14 Apr 2025 01:25:40 -0400 -Subject: [PATCH 14/15] metrics: add more errors +Subject: [PATCH 14/16] 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 ad90622..cc389a2 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 1643aa0d359121729c283e53e4b44a56aed37b02 Mon Sep 17 00:00:00 2001 +From b71e4f008e8ff3a4930b691835a04cd9b6d9b1ba Mon Sep 17 00:00:00 2001 From: Fijxu Date: Tue, 15 Apr 2025 19:48:26 -0400 -Subject: [PATCH 15/15] ci: improve container image build times +Subject: [PATCH 15/16] 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 new file mode 100644 index 0000000..406be7a --- /dev/null +++ b/patches/0016-metrics-add-live-premiere-and-private-video-errors.patch @@ -0,0 +1,114 @@ +From 888a5d73b9d08be88456d83d35e520e0aa54c148 Mon Sep 17 00:00:00 2001 +From: Fijxu +Date: Sun, 20 Apr 2025 02:18:50 -0400 +Subject: [PATCH 16/16] metrics: add live, premiere and private video errors + +--- + src/lib/helpers/metrics.ts | 42 ++++++++++++++++++++++++++++++++++++-- + 1 file changed, 40 insertions(+), 2 deletions(-) + +diff --git a/src/lib/helpers/metrics.ts b/src/lib/helpers/metrics.ts +index e1b0b73..ae778f2 100644 +--- a/src/lib/helpers/metrics.ts ++++ b/src/lib/helpers/metrics.ts +@@ -78,6 +78,7 @@ export class Metrics { + unplayable: boolean; + contentCheckRequired: boolean; + loginRequired: boolean; ++ liveStreamOffline: boolean; + unknown: string | undefined; + } + +@@ -85,6 +86,7 @@ export class Metrics { + unplayable: false, + contentCheckRequired: false, + loginRequired: false, ++ liveStreamOffline: false, + unknown: undefined, + }; + +@@ -100,6 +102,10 @@ export class Metrics { + case "LOGIN_REQUIRED": + error.loginRequired = true; + return error; ++ // Livestreams ++ case "LIVE_STREAM_OFFLINE": ++ error.liveStreamOffline = true; ++ return error; + default: + error.unknown = status; + return error; +@@ -118,6 +124,10 @@ export class Metrics { + signInToConfirmAge: boolean; + signInToConfirmBot: boolean; + selfHarmTopics: boolean; ++ liveStreamOffline: boolean; ++ liveEventWillBegin: boolean; ++ premiere: boolean; ++ privateVideo: boolean; + unknown: string | undefined; + } + +@@ -125,6 +135,10 @@ export class Metrics { + signInToConfirmAge: false, + signInToConfirmBot: false, + selfHarmTopics: false, ++ liveStreamOffline: false, ++ liveEventWillBegin: false, ++ premiere: false, ++ privateVideo: false, + unknown: undefined, + }; + +@@ -142,6 +156,20 @@ export class Metrics { + ): + error.selfHarmTopics = true; + return error; ++ // Offline Livestreams ++ case reason?.includes("Offline."): ++ error.liveStreamOffline = true; ++ return error; ++ // Livestreams that are about to start ++ case reason?.includes("This live event will begin in a few moments"): ++ error.liveEventWillBegin = true; ++ return error; ++ case reason?.includes("Premiere will begin shortly") || reason?.includes("Premieres in"): ++ error.premiere = true; ++ return error; ++ case reason?.includes("Private video"): ++ error.privateVideo = true; ++ return error; + default: + error.unknown = reason; + return error; +@@ -193,7 +221,11 @@ export class Metrics { + this.innertubeFailedRequest.inc(); + + const status = this.checkStatus(videoData); +- if (status.contentCheckRequired || status.unplayable) return; ++ if ( ++ status.contentCheckRequired || ++ status.unplayable || ++ status.liveStreamOffline ++ ) return; + + if (status?.unknown) { + this.innertubeErrorStatusUnknown.labels({ +@@ -202,7 +234,13 @@ export class Metrics { + } + + const reason = this.checkReason(videoData); +- if (reason.signInToConfirmAge) return; ++ if ( ++ reason.signInToConfirmAge || ++ reason.liveStreamOffline || ++ reason.liveEventWillBegin || ++ reason.premiere || ++ reason.privateVideo ++ ) return; + + if (reason.unknown) { + this.innertubeErrorReasonUnknown.labels({ +-- +2.49.0 +