+
From e579c56921a8240c78817ac6e32ac11c777b1943 Mon Sep 17 00:00:00 2001
From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com>
Date: Sun, 10 Aug 2025 21:17:32 -0400
Subject: [PATCH 16/45] fix(YouTube - Video quality): Show FHD+ icon for 1080p
60fps enhanced bitrate
---
.../extension/youtube/patches/VideoInformation.java | 10 ++++------
.../extension/youtube/patches/components/Filter.java | 2 --
.../youtube/videoplayer/VideoQualityDialogButton.java | 6 +++---
3 files changed, 7 insertions(+), 11 deletions(-)
diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/VideoInformation.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/VideoInformation.java
index 96d67a749..f8b360aa5 100644
--- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/VideoInformation.java
+++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/VideoInformation.java
@@ -41,11 +41,10 @@ public final class VideoInformation {
public static final int AUTOMATIC_VIDEO_QUALITY_VALUE = -2;
/**
- * All quality names are the same for all languages.
- * VideoQuality also has a resolution enum that can be used if needed.
+ * Video quality names are the same text for all languages.
+ * Premium can be "1080p Premium" or "1080p60 Premium"
*/
- public static final String VIDEO_QUALITY_1080P_PREMIUM_NAME = "1080p Premium";
-
+ public static final String VIDEO_QUALITY_PREMIUM_NAME = "Premium";
private static final float DEFAULT_YOUTUBE_PLAYBACK_SPEED = 1.0f;
/**
@@ -407,14 +406,13 @@ public final class VideoInformation {
}
/**
- * @return If the playback is at the end of the video.
- *
* If video is playing in the background with no video visible,
* this always returns false (even if the video is actually at the end).
*
* This is equivalent to checking for {@link VideoState#ENDED},
* but can give a more up-to-date result for code calling from some hooks.
*
+ * @return If the playback is at the end of the video.
* @see VideoState
*/
@SuppressWarnings("BooleanMethodIsAlwaysInverted")
diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/Filter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/Filter.java
index 454c03338..003949ce2 100644
--- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/Filter.java
+++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/Filter.java
@@ -40,7 +40,6 @@ abstract class Filter {
/**
* Adds callbacks to {@link #isFiltered(String, String, byte[], StringFilterGroup, FilterContentType, int)}
* if any of the groups are found.
- *
*/
protected final void addIdentifierCallbacks(StringFilterGroup... groups) {
identifierCallbacks.addAll(Arrays.asList(groups));
@@ -58,7 +57,6 @@ abstract class Filter {
* Called after an enabled filter has been matched.
* Default implementation is to always filter the matched component and log the action.
* Subclasses can perform additional or different checks if needed.
- *
*
* Method is called off the main thread.
*
diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/videoplayer/VideoQualityDialogButton.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/videoplayer/VideoQualityDialogButton.java
index a9bd1657b..6b43abf51 100644
--- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/videoplayer/VideoQualityDialogButton.java
+++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/videoplayer/VideoQualityDialogButton.java
@@ -3,7 +3,7 @@ package app.revanced.extension.youtube.videoplayer;
import static app.revanced.extension.shared.StringRef.str;
import static app.revanced.extension.shared.Utils.dipToPixels;
import static app.revanced.extension.youtube.patches.VideoInformation.AUTOMATIC_VIDEO_QUALITY_VALUE;
-import static app.revanced.extension.youtube.patches.VideoInformation.VIDEO_QUALITY_1080P_PREMIUM_NAME;
+import static app.revanced.extension.youtube.patches.VideoInformation.VIDEO_QUALITY_PREMIUM_NAME;
import android.app.Dialog;
import android.content.Context;
@@ -157,9 +157,9 @@ public class VideoQualityDialogButton {
case 2160 -> "4K";
default -> "?"; // Should never happen.
};
-
text.append(qualityText);
- if (resolution == 1080 && VIDEO_QUALITY_1080P_PREMIUM_NAME.equals(quality.patch_getQualityName())) {
+
+ if (quality != null && quality.patch_getQualityName().contains(VIDEO_QUALITY_PREMIUM_NAME)) {
// Underline the entire "FHD" text for 1080p Premium.
text.setSpan(new UnderlineSpan(), 0, qualityText.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
From f904ca6d7e9e8ffe0ac1d0bbe2a8a77a71e31b8f Mon Sep 17 00:00:00 2001
From: semantic-release-bot
Date: Mon, 11 Aug 2025 01:21:07 +0000
Subject: [PATCH 17/45] chore: Release v5.34.0-dev.6 [skip ci]
# [5.34.0-dev.6](https://github.com/ReVanced/revanced-patches/compare/v5.34.0-dev.5...v5.34.0-dev.6) (2025-08-11)
### Bug Fixes
* **YouTube - Video quality:** Show FHD+ icon for 1080p 60fps enhanced bitrate ([e579c56](https://github.com/ReVanced/revanced-patches/commit/e579c56921a8240c78817ac6e32ac11c777b1943))
---
CHANGELOG.md | 7 +++++++
gradle.properties | 2 +-
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e6b8edc72..192186ff1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,10 @@
+# [5.34.0-dev.6](https://github.com/ReVanced/revanced-patches/compare/v5.34.0-dev.5...v5.34.0-dev.6) (2025-08-11)
+
+
+### Bug Fixes
+
+* **YouTube - Video quality:** Show FHD+ icon for 1080p 60fps enhanced bitrate ([76bed37](https://github.com/ReVanced/revanced-patches/commit/76bed3734093713af24ef065d5ffc5b1cd83f29a))
+
# [5.34.0-dev.5](https://github.com/ReVanced/revanced-patches/compare/v5.34.0-dev.4...v5.34.0-dev.5) (2025-08-10)
diff --git a/gradle.properties b/gradle.properties
index 15972069a..a750659b9 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -3,4 +3,4 @@ org.gradle.jvmargs = -Xms512M -Xmx2048M
org.gradle.parallel = true
android.useAndroidX = true
kotlin.code.style = official
-version = 5.34.0-dev.5
+version = 5.34.0-dev.6
From 6bd9e49c7a7cae07d74ecf6f20bc3028bdc44408 Mon Sep 17 00:00:00 2001
From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com>
Date: Wed, 13 Aug 2025 15:16:45 -0400
Subject: [PATCH 18/45] fix(YouTube - Video quality): Fix additional incorrect
quality resolutions used by YouTube
---
.../youtube/patches/VideoInformation.java | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/VideoInformation.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/VideoInformation.java
index f8b360aa5..933bb5b61 100644
--- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/VideoInformation.java
+++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/VideoInformation.java
@@ -474,11 +474,22 @@ public final class VideoInformation {
/**
* Injection point. Fixes bad data used by YouTube.
+ * Issue can be reproduced by selecting 480p quality on any Short,
+ * and occasionally with random regular videos.
*/
public static int fixVideoQualityResolution(String name, int quality) {
- final int correctQuality = 480;
- if (name.equals("480p") && quality != correctQuality) {
- return correctQuality;
+ try {
+ if (!name.startsWith(Integer.toString(quality))) {
+ final int suffixIndex = name.indexOf('p');
+ if (suffixIndex > 0) {
+ final int fixedQuality = Integer.parseInt(name.substring(0, suffixIndex));
+ Logger.printDebug(() -> "Fixing wrong quality resolution from: " +
+ name + "(" + quality + ") to: " + name + ")" + fixedQuality + ")");
+ return fixedQuality;
+ }
+ }
+ } catch (Exception ex) {
+ Logger.printException(() -> "fixVideoQualityResolution failed", ex);
}
return quality;
From bdbe96beba8076d933fefc6d4b7952aa5be4ad65 Mon Sep 17 00:00:00 2001
From: semantic-release-bot
Date: Wed, 13 Aug 2025 19:20:51 +0000
Subject: [PATCH 19/45] chore: Release v5.34.0-dev.7 [skip ci]
# [5.34.0-dev.7](https://github.com/ReVanced/revanced-patches/compare/v5.34.0-dev.6...v5.34.0-dev.7) (2025-08-13)
### Bug Fixes
* **YouTube - Video quality:** Fix additional incorrect quality resolutions used by YouTube ([6bd9e49](https://github.com/ReVanced/revanced-patches/commit/6bd9e49c7a7cae07d74ecf6f20bc3028bdc44408))
---
CHANGELOG.md | 7 +++++++
gradle.properties | 2 +-
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 192186ff1..7b0846d12 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,10 @@
+# [5.34.0-dev.7](https://github.com/ReVanced/revanced-patches/compare/v5.34.0-dev.6...v5.34.0-dev.7) (2025-08-13)
+
+
+### Bug Fixes
+
+* **YouTube - Video quality:** Fix additional incorrect quality resolutions used by YouTube ([a2a1fbe](https://github.com/ReVanced/revanced-patches/commit/a2a1fbe2959be8334c54cfc3426c24a960c55c8f))
+
# [5.34.0-dev.6](https://github.com/ReVanced/revanced-patches/compare/v5.34.0-dev.5...v5.34.0-dev.6) (2025-08-11)
diff --git a/gradle.properties b/gradle.properties
index a750659b9..6f3b9a291 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -3,4 +3,4 @@ org.gradle.jvmargs = -Xms512M -Xmx2048M
org.gradle.parallel = true
android.useAndroidX = true
kotlin.code.style = official
-version = 5.34.0-dev.6
+version = 5.34.0-dev.7
From 5fc0631a1561255f5a74f094f701f87a24fc20bd Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Fri, 15 Aug 2025 05:59:43 -0400
Subject: [PATCH 20/45] chore: Sync translations (#5652)
---
.../addresources/values-el-rGR/strings.xml | 8 +-
.../addresources/values-es-rES/strings.xml | 92 ++++++++---------
.../addresources/values-fi-rFI/strings.xml | 7 +-
.../addresources/values-ga-rIE/strings.xml | 35 ++++---
.../addresources/values-ja-rJP/strings.xml | 68 ++++++-------
.../addresources/values-ko-rKR/strings.xml | 98 +++++++++----------
.../addresources/values-vi-rVN/strings.xml | 56 +++++------
7 files changed, 185 insertions(+), 179 deletions(-)
diff --git a/patches/src/main/resources/addresources/values-el-rGR/strings.xml b/patches/src/main/resources/addresources/values-el-rGR/strings.xml
index 541fb6345..b6ab6336a 100644
--- a/patches/src/main/resources/addresources/values-el-rGR/strings.xml
+++ b/patches/src/main/resources/addresources/values-el-rGR/strings.xml
@@ -907,7 +907,7 @@ Second \"item\" text"
Dislike προσωρινά μη διαθέσιμα (καθυστέρηση API)
Δεδομένα dislike μη διαθέσιμα (κατάσταση %d)
- Τα dislikes δεν είναι διαθέσιμα (όριο API πελάτη)
+ Δεδομένα dislike μη διαθέσιμα (όριο API πελάτη)
Δεδομένα dislike μη διαθέσιμα (%s)
Επαναφορτώστε το βίντεο για να ψηφίσετε χρησιμοποιώντας το Return YouTube Dislike
@@ -1152,7 +1152,7 @@ Second \"item\" text"
Δόθηκε μη έγκυρος χρόνος
Στατιστικά
- Τα στατιστικά είναι προσωρινά μη διαθέσιμα (το API είναι εκτός λειτουργίας)
+ Στατιστικά προσωρινά μη διαθέσιμα (API εκτός λειτουργίας)
Φόρτωση...
Το SponsorBlock είναι απενεργοποιημένο
Το όνομα χρήστη σας: <b>%s</b>
@@ -1365,8 +1365,8 @@ Second \"item\" text"
Μέση του βίντεο
Τέλος του βίντεο
- Το DeArrow είναι προσωρινά μη διαθέσιμο. (κωδικός κατάστασης: %s)
- Το DeArrow είναι προσωρινά μη διαθέσιμο
+ DeArrow προσωρινά μη διαθέσιμο (κωδικός: %s)
+ DeArrow προσωρινά μη διαθέσιμο