From 620f15d33119523ba22672c6a41624f48391aaf9 Mon Sep 17 00:00:00 2001
From: inotia00 <108592928+inotia00@users.noreply.github.com>
Date: Tue, 21 Nov 2023 09:22:21 +0900
Subject: [PATCH] fix(YouTube/Default video quality): `Skipped preloaded
buffer` is also applied to live stream video
---
.../OrganicPlaybackContextModelFingerprint.kt | 2 +-
.../patches/youtube/utils/videocpn/VideoCpnPatch.kt | 2 +-
.../youtube/utils/videoid/general/VideoIdPatch.kt | 13 +++++++++++++
.../youtube/settings/host/values/strings.xml | 2 +-
4 files changed, 16 insertions(+), 3 deletions(-)
rename src/main/kotlin/app/revanced/patches/youtube/utils/{videocpn/fingerprint => fingerprints}/OrganicPlaybackContextModelFingerprint.kt (74%)
diff --git a/src/main/kotlin/app/revanced/patches/youtube/utils/videocpn/fingerprint/OrganicPlaybackContextModelFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/utils/fingerprints/OrganicPlaybackContextModelFingerprint.kt
similarity index 74%
rename from src/main/kotlin/app/revanced/patches/youtube/utils/videocpn/fingerprint/OrganicPlaybackContextModelFingerprint.kt
rename to src/main/kotlin/app/revanced/patches/youtube/utils/fingerprints/OrganicPlaybackContextModelFingerprint.kt
index 243336f5b..eef769a5a 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/utils/videocpn/fingerprint/OrganicPlaybackContextModelFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/utils/fingerprints/OrganicPlaybackContextModelFingerprint.kt
@@ -1,4 +1,4 @@
-package app.revanced.patches.youtube.utils.videocpn.fingerprint
+package app.revanced.patches.youtube.utils.fingerprints
import app.revanced.patcher.fingerprint.MethodFingerprint
diff --git a/src/main/kotlin/app/revanced/patches/youtube/utils/videocpn/VideoCpnPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/utils/videocpn/VideoCpnPatch.kt
index 8ef7386dc..791d76811 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/utils/videocpn/VideoCpnPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/utils/videocpn/VideoCpnPatch.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.data.BytecodeContext
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.patch.BytecodePatch
import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod
-import app.revanced.patches.youtube.utils.videocpn.fingerprint.OrganicPlaybackContextModelFingerprint
+import app.revanced.patches.youtube.utils.fingerprints.OrganicPlaybackContextModelFingerprint
object VideoCpnPatch : BytecodePatch(
setOf(OrganicPlaybackContextModelFingerprint)
diff --git a/src/main/kotlin/app/revanced/patches/youtube/utils/videoid/general/VideoIdPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/utils/videoid/general/VideoIdPatch.kt
index 5fed3b9bf..d179de613 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/utils/videoid/general/VideoIdPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/utils/videoid/general/VideoIdPatch.kt
@@ -12,6 +12,7 @@ import app.revanced.patcher.patch.annotation.Patch
import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod
import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod.Companion.toMutable
import app.revanced.patcher.util.smali.ExternalLabel
+import app.revanced.patches.youtube.utils.fingerprints.OrganicPlaybackContextModelFingerprint
import app.revanced.patches.youtube.utils.playertype.PlayerTypeHookPatch
import app.revanced.patches.youtube.utils.videoid.general.fingerprint.PlayerControllerSetTimeReferenceFingerprint
import app.revanced.patches.youtube.utils.videoid.general.fingerprint.VideoEndFingerprint
@@ -98,6 +99,18 @@ object VideoIdPatch : BytecodePatch(
*/
videoTimeHook(INTEGRATIONS_CLASS_DESCRIPTOR, "setVideoTime")
+ /**
+ *
+ */
+ OrganicPlaybackContextModelFingerprint.result?.let {
+ it.mutableMethod.apply {
+ addInstruction(
+ 2,
+ "sput-boolean p2, $INTEGRATIONS_CLASS_DESCRIPTOR->isLiveStream:Z"
+ )
+ }
+ } ?: throw OrganicPlaybackContextModelFingerprint.exception
+
/**
* Set current video length
*/
diff --git a/src/main/resources/youtube/settings/host/values/strings.xml b/src/main/resources/youtube/settings/host/values/strings.xml
index ebda5deda..5eb1154a2 100644
--- a/src/main/resources/youtube/settings/host/values/strings.xml
+++ b/src/main/resources/youtube/settings/host/values/strings.xml
@@ -686,7 +686,7 @@ Tap and hold to set playback speed to 1.0x."
"Skip preloaded buffer at video start to bypass default video quality enforcement delay.
• When the video starts, there is a delay of approximately 0.7 seconds, but the default video quality is applied immediately.
-• Does not apply to HDR videos or videos shorter than 10 seconds."
+• Does not apply to HDR videos, live stream videos, videos shorter than 10 seconds."
Skip preloaded buffer
Toast is hidden.
Toast is shown.