From a01edc84ef41134f5b63b9c84e36ecf20b37bd36 Mon Sep 17 00:00:00 2001 From: inotia00 <108592928+inotia00@users.noreply.github.com> Date: Thu, 5 Sep 2024 15:51:49 +0900 Subject: [PATCH 01/63] fix(YouTube - Disable force auto captions): Patch doesn't work with Shorts --- .../autocaptions/AutoCaptionsBytecodePatch.kt | 6 -- .../general/autocaptions/AutoCaptionsPatch.kt | 34 +++++++--- .../shared/captions/BaseAutoCaptionsPatch.kt | 65 ------------------- .../SubtitleButtonControllerFingerprint.kt | 23 ------- .../fingerprints/SubtitleTrackFingerprint.kt | 2 +- .../autocaptions/AutoCaptionsBytecodePatch.kt | 6 -- .../general/autocaptions/AutoCaptionsPatch.kt | 47 ++++++++++++-- ...dererDecoderRecommendedLevelFingerprint.kt | 12 ++++ .../components/PlayerComponentsPatch.kt | 2 +- .../StartVideoInformerFingerprint.kt | 2 +- 10 files changed, 80 insertions(+), 119 deletions(-) delete mode 100644 src/main/kotlin/app/revanced/patches/music/general/autocaptions/AutoCaptionsBytecodePatch.kt delete mode 100644 src/main/kotlin/app/revanced/patches/shared/captions/BaseAutoCaptionsPatch.kt delete mode 100644 src/main/kotlin/app/revanced/patches/shared/captions/fingerprints/SubtitleButtonControllerFingerprint.kt rename src/main/kotlin/app/revanced/patches/shared/{captions => }/fingerprints/SubtitleTrackFingerprint.kt (86%) delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/general/autocaptions/AutoCaptionsBytecodePatch.kt create mode 100644 src/main/kotlin/app/revanced/patches/youtube/general/autocaptions/fingerprints/StoryboardRendererDecoderRecommendedLevelFingerprint.kt rename src/main/kotlin/app/revanced/patches/{shared => youtube/utils}/fingerprints/StartVideoInformerFingerprint.kt (89%) diff --git a/src/main/kotlin/app/revanced/patches/music/general/autocaptions/AutoCaptionsBytecodePatch.kt b/src/main/kotlin/app/revanced/patches/music/general/autocaptions/AutoCaptionsBytecodePatch.kt deleted file mode 100644 index 8deda0978..000000000 --- a/src/main/kotlin/app/revanced/patches/music/general/autocaptions/AutoCaptionsBytecodePatch.kt +++ /dev/null @@ -1,6 +0,0 @@ -package app.revanced.patches.music.general.autocaptions - -import app.revanced.patches.music.utils.integrations.Constants.GENERAL_CLASS_DESCRIPTOR -import app.revanced.patches.shared.captions.BaseAutoCaptionsPatch - -object AutoCaptionsBytecodePatch : BaseAutoCaptionsPatch(GENERAL_CLASS_DESCRIPTOR, false) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/music/general/autocaptions/AutoCaptionsPatch.kt b/src/main/kotlin/app/revanced/patches/music/general/autocaptions/AutoCaptionsPatch.kt index c50428704..22c0d9b64 100644 --- a/src/main/kotlin/app/revanced/patches/music/general/autocaptions/AutoCaptionsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/general/autocaptions/AutoCaptionsPatch.kt @@ -1,22 +1,38 @@ package app.revanced.patches.music.general.autocaptions -import app.revanced.patcher.data.ResourceContext +import app.revanced.patcher.data.BytecodeContext +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patches.music.utils.compatibility.Constants.COMPATIBLE_PACKAGE +import app.revanced.patches.music.utils.integrations.Constants.GENERAL_CLASS_DESCRIPTOR import app.revanced.patches.music.utils.settings.CategoryType import app.revanced.patches.music.utils.settings.SettingsPatch -import app.revanced.util.patch.BaseResourcePatch +import app.revanced.patches.shared.fingerprints.SubtitleTrackFingerprint +import app.revanced.util.patch.BaseBytecodePatch +import app.revanced.util.resultOrThrow +import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction @Suppress("unused") -object AutoCaptionsPatch : BaseResourcePatch( +object AutoCaptionsPatch : BaseBytecodePatch( name = "Disable auto captions", description = "Adds an option to disable captions from being automatically enabled.", - dependencies = setOf( - AutoCaptionsBytecodePatch::class, - SettingsPatch::class, - ), - compatiblePackages = COMPATIBLE_PACKAGE + dependencies = setOf(SettingsPatch::class), + compatiblePackages = COMPATIBLE_PACKAGE, + fingerprints = setOf(SubtitleTrackFingerprint), ) { - override fun execute(context: ResourceContext) { + override fun execute(context: BytecodeContext) { + + SubtitleTrackFingerprint.resultOrThrow().mutableMethod.apply { + val index = implementation!!.instructions.lastIndex + val register = getInstruction(index).registerA + + addInstructions( + index, """ + invoke-static {v$register}, $GENERAL_CLASS_DESCRIPTOR->disableAutoCaptions(Z)Z + move-result v$register + """ + ) + } SettingsPatch.addSwitchPreference( CategoryType.GENERAL, diff --git a/src/main/kotlin/app/revanced/patches/shared/captions/BaseAutoCaptionsPatch.kt b/src/main/kotlin/app/revanced/patches/shared/captions/BaseAutoCaptionsPatch.kt deleted file mode 100644 index cd819bf5f..000000000 --- a/src/main/kotlin/app/revanced/patches/shared/captions/BaseAutoCaptionsPatch.kt +++ /dev/null @@ -1,65 +0,0 @@ -package app.revanced.patches.shared.captions - -import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.InstructionExtensions.addInstructions -import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels -import app.revanced.patcher.extensions.InstructionExtensions.getInstruction -import app.revanced.patcher.patch.BytecodePatch -import app.revanced.patcher.util.smali.ExternalLabel -import app.revanced.patches.shared.captions.fingerprints.SubtitleButtonControllerFingerprint -import app.revanced.patches.shared.captions.fingerprints.SubtitleTrackFingerprint -import app.revanced.patches.shared.fingerprints.StartVideoInformerFingerprint -import app.revanced.util.resultOrThrow -import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction - -abstract class BaseAutoCaptionsPatch( - private val classDescriptor: String, - private val captionsButtonStatus: Boolean -) : BytecodePatch( - setOf( - StartVideoInformerFingerprint, - SubtitleButtonControllerFingerprint, - SubtitleTrackFingerprint - ) -) { - override fun execute(context: BytecodeContext) { - - SubtitleTrackFingerprint.resultOrThrow().mutableMethod.apply { - if (captionsButtonStatus) { - addInstructionsWithLabels( - 0, """ - invoke-static {}, $classDescriptor->disableAutoCaptions()Z - move-result v0 - if-eqz v0, :disabled - const/4 v0, 0x1 - return v0 - """, ExternalLabel("disabled", getInstruction(0)) - ) - } else { - val index = implementation!!.instructions.lastIndex - val register = getInstruction(index).registerA - - addInstructions( - index, """ - invoke-static {v$register}, $classDescriptor->disableAutoCaptions(Z)Z - move-result v$register - """ - ) - } - } - - if (!captionsButtonStatus) return - - mapOf( - StartVideoInformerFingerprint to 0, - SubtitleButtonControllerFingerprint to 1 - ).forEach { (fingerprint, enabled) -> - fingerprint.resultOrThrow().mutableMethod.addInstructions( - 0, """ - const/4 v0, 0x$enabled - invoke-static {v0}, $classDescriptor->setCaptionsButtonStatus(Z)V - """ - ) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/shared/captions/fingerprints/SubtitleButtonControllerFingerprint.kt b/src/main/kotlin/app/revanced/patches/shared/captions/fingerprints/SubtitleButtonControllerFingerprint.kt deleted file mode 100644 index 4041509b5..000000000 --- a/src/main/kotlin/app/revanced/patches/shared/captions/fingerprints/SubtitleButtonControllerFingerprint.kt +++ /dev/null @@ -1,23 +0,0 @@ -package app.revanced.patches.shared.captions.fingerprints - -import app.revanced.patcher.extensions.or -import app.revanced.patcher.fingerprint.MethodFingerprint -import com.android.tools.smali.dexlib2.AccessFlags -import com.android.tools.smali.dexlib2.Opcode - -internal object SubtitleButtonControllerFingerprint : MethodFingerprint( - returnType = "V", - accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, - parameters = listOf("Lcom/google/android/libraries/youtube/player/subtitles/model/SubtitleTrack;"), - opcodes = listOf( - Opcode.IGET_OBJECT, - Opcode.IF_NEZ, - Opcode.RETURN_VOID, - Opcode.IGET_BOOLEAN, - Opcode.CONST_4, - Opcode.IF_NEZ, - Opcode.CONST, - Opcode.INVOKE_VIRTUAL, - Opcode.IGET_OBJECT, - ) -) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/shared/captions/fingerprints/SubtitleTrackFingerprint.kt b/src/main/kotlin/app/revanced/patches/shared/fingerprints/SubtitleTrackFingerprint.kt similarity index 86% rename from src/main/kotlin/app/revanced/patches/shared/captions/fingerprints/SubtitleTrackFingerprint.kt rename to src/main/kotlin/app/revanced/patches/shared/fingerprints/SubtitleTrackFingerprint.kt index b1a6012a7..b97457386 100644 --- a/src/main/kotlin/app/revanced/patches/shared/captions/fingerprints/SubtitleTrackFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/shared/fingerprints/SubtitleTrackFingerprint.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.shared.captions.fingerprints +package app.revanced.patches.shared.fingerprints import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.MethodFingerprint diff --git a/src/main/kotlin/app/revanced/patches/youtube/general/autocaptions/AutoCaptionsBytecodePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/general/autocaptions/AutoCaptionsBytecodePatch.kt deleted file mode 100644 index 914f4db85..000000000 --- a/src/main/kotlin/app/revanced/patches/youtube/general/autocaptions/AutoCaptionsBytecodePatch.kt +++ /dev/null @@ -1,6 +0,0 @@ -package app.revanced.patches.youtube.general.autocaptions - -import app.revanced.patches.shared.captions.BaseAutoCaptionsPatch -import app.revanced.patches.youtube.utils.integrations.Constants.GENERAL_CLASS_DESCRIPTOR - -object AutoCaptionsBytecodePatch : BaseAutoCaptionsPatch(GENERAL_CLASS_DESCRIPTOR, true) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/general/autocaptions/AutoCaptionsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/general/autocaptions/AutoCaptionsPatch.kt index 52a9b95a0..4ed2f9a3d 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/general/autocaptions/AutoCaptionsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/general/autocaptions/AutoCaptionsPatch.kt @@ -1,24 +1,57 @@ package app.revanced.patches.youtube.general.autocaptions import app.revanced.patcher.data.BytecodeContext +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction +import app.revanced.patcher.util.smali.ExternalLabel +import app.revanced.patches.shared.fingerprints.SubtitleTrackFingerprint +import app.revanced.patches.youtube.general.autocaptions.fingerprints.StoryboardRendererDecoderRecommendedLevelFingerprint import app.revanced.patches.youtube.utils.compatibility.Constants.COMPATIBLE_PACKAGE -import app.revanced.patches.youtube.utils.playertype.PlayerTypeHookPatch +import app.revanced.patches.youtube.utils.fingerprints.StartVideoInformerFingerprint +import app.revanced.patches.youtube.utils.integrations.Constants.GENERAL_CLASS_DESCRIPTOR import app.revanced.patches.youtube.utils.settings.SettingsPatch import app.revanced.util.patch.BaseBytecodePatch +import app.revanced.util.resultOrThrow @Suppress("unused") object AutoCaptionsPatch : BaseBytecodePatch( name = "Disable auto captions", description = "Adds an option to disable captions from being automatically enabled.", - dependencies = setOf( - AutoCaptionsBytecodePatch::class, - PlayerTypeHookPatch::class, - SettingsPatch::class - ), - compatiblePackages = COMPATIBLE_PACKAGE + dependencies = setOf(SettingsPatch::class), + compatiblePackages = COMPATIBLE_PACKAGE, + fingerprints = setOf( + SubtitleTrackFingerprint, + StartVideoInformerFingerprint, + StoryboardRendererDecoderRecommendedLevelFingerprint, + ) ) { override fun execute(context: BytecodeContext) { + SubtitleTrackFingerprint.resultOrThrow().mutableMethod.apply { + addInstructionsWithLabels( + 0, """ + invoke-static {}, $GENERAL_CLASS_DESCRIPTOR->disableAutoCaptions()Z + move-result v0 + if-eqz v0, :disabled + const/4 v0, 0x1 + return v0 + """, ExternalLabel("disabled", getInstruction(0)) + ) + } + + mapOf( + StartVideoInformerFingerprint to 0, + StoryboardRendererDecoderRecommendedLevelFingerprint to 1 + ).forEach { (fingerprint, enabled) -> + fingerprint.resultOrThrow().mutableMethod.addInstructions( + 0, """ + const/4 v0, 0x$enabled + invoke-static {v0}, $GENERAL_CLASS_DESCRIPTOR->setCaptionsButtonStatus(Z)V + """ + ) + } + /** * Add settings */ diff --git a/src/main/kotlin/app/revanced/patches/youtube/general/autocaptions/fingerprints/StoryboardRendererDecoderRecommendedLevelFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/general/autocaptions/fingerprints/StoryboardRendererDecoderRecommendedLevelFingerprint.kt new file mode 100644 index 000000000..c20b3d2b9 --- /dev/null +++ b/src/main/kotlin/app/revanced/patches/youtube/general/autocaptions/fingerprints/StoryboardRendererDecoderRecommendedLevelFingerprint.kt @@ -0,0 +1,12 @@ +package app.revanced.patches.youtube.general.autocaptions.fingerprints + +import app.revanced.patcher.extensions.or +import app.revanced.patcher.fingerprint.MethodFingerprint +import com.android.tools.smali.dexlib2.AccessFlags + +internal object StoryboardRendererDecoderRecommendedLevelFingerprint : MethodFingerprint( + returnType = "V", + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, + parameters = listOf("Lcom/google/android/libraries/youtube/innertube/model/player/PlayerResponseModel;"), + strings = listOf("#-1#") +) diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/components/PlayerComponentsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/player/components/PlayerComponentsPatch.kt index cf863f8cc..8b3bca28e 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/player/components/PlayerComponentsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/player/components/PlayerComponentsPatch.kt @@ -9,7 +9,6 @@ import app.revanced.patcher.extensions.InstructionExtensions.removeInstruction import app.revanced.patcher.patch.PatchException import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod import app.revanced.patcher.util.smali.ExternalLabel -import app.revanced.patches.shared.fingerprints.StartVideoInformerFingerprint import app.revanced.patches.shared.litho.LithoFilterPatch import app.revanced.patches.youtube.player.components.fingerprints.CrowdfundingBoxFingerprint import app.revanced.patches.youtube.player.components.fingerprints.EngagementPanelControllerFingerprint @@ -34,6 +33,7 @@ import app.revanced.patches.youtube.player.components.fingerprints.WatermarkPare import app.revanced.patches.youtube.player.speedoverlay.SpeedOverlayPatch import app.revanced.patches.youtube.utils.compatibility.Constants.COMPATIBLE_PACKAGE import app.revanced.patches.youtube.utils.controlsoverlay.ControlsOverlayConfigPatch +import app.revanced.patches.youtube.utils.fingerprints.StartVideoInformerFingerprint import app.revanced.patches.youtube.utils.fingerprints.YouTubeControlsOverlayFingerprint import app.revanced.patches.youtube.utils.fix.suggestedvideoendscreen.SuggestedVideoEndScreenPatch import app.revanced.patches.youtube.utils.integrations.Constants.COMPONENTS_PATH diff --git a/src/main/kotlin/app/revanced/patches/shared/fingerprints/StartVideoInformerFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/utils/fingerprints/StartVideoInformerFingerprint.kt similarity index 89% rename from src/main/kotlin/app/revanced/patches/shared/fingerprints/StartVideoInformerFingerprint.kt rename to src/main/kotlin/app/revanced/patches/youtube/utils/fingerprints/StartVideoInformerFingerprint.kt index dec566143..0609b6a3a 100644 --- a/src/main/kotlin/app/revanced/patches/shared/fingerprints/StartVideoInformerFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/utils/fingerprints/StartVideoInformerFingerprint.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.shared.fingerprints +package app.revanced.patches.youtube.utils.fingerprints import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.MethodFingerprint From d99bdefeb4ef477c5277b00d2c64497858604b68 Mon Sep 17 00:00:00 2001 From: Aaron Veil <70171475+anddea@users.noreply.github.com> Date: Fri, 6 Sep 2024 10:11:06 +0300 Subject: [PATCH 02/63] feat(YouTube - Hide player flyout menu): Restore `Hide Ambient mode menu` setting --- src/main/resources/youtube/settings/xml/revanced_prefs.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/resources/youtube/settings/xml/revanced_prefs.xml b/src/main/resources/youtube/settings/xml/revanced_prefs.xml index 6c0417187..d3de766e5 100644 --- a/src/main/resources/youtube/settings/xml/revanced_prefs.xml +++ b/src/main/resources/youtube/settings/xml/revanced_prefs.xml @@ -338,6 +338,7 @@ From 7bc57aff115e4cfce6340ed19a42bd309a4b0073 Mon Sep 17 00:00:00 2001 From: inotia00 <108592928+inotia00@users.noreply.github.com> Date: Thu, 5 Sep 2024 17:00:46 +0900 Subject: [PATCH 03/63] chore(YouTube - Remove background playback restrictions): Match with ReVanced --- .../youtube/misc/backgroundplayback/BackgroundPlaybackPatch.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/backgroundplayback/BackgroundPlaybackPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/backgroundplayback/BackgroundPlaybackPatch.kt index c4c72bc71..54e3870a9 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/backgroundplayback/BackgroundPlaybackPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/backgroundplayback/BackgroundPlaybackPatch.kt @@ -13,6 +13,7 @@ import app.revanced.patches.youtube.utils.compatibility.Constants.COMPATIBLE_PAC import app.revanced.patches.youtube.utils.integrations.Constants.MISC_PATH import app.revanced.patches.youtube.utils.playertype.PlayerTypeHookPatch import app.revanced.patches.youtube.utils.settings.SettingsPatch +import app.revanced.patches.youtube.video.information.VideoInformationPatch import app.revanced.util.getWalkerMethod import app.revanced.util.patch.BaseBytecodePatch import app.revanced.util.resultOrThrow @@ -26,6 +27,7 @@ object BackgroundPlaybackPatch : BaseBytecodePatch( description = "Removes restrictions on background playback, including for music and kids videos.", dependencies = setOf( PlayerTypeHookPatch::class, + VideoInformationPatch::class, SettingsPatch::class ), compatiblePackages = COMPATIBLE_PACKAGE, From 076f8558a5284c263e942ed0b3ea4a1516f453db Mon Sep 17 00:00:00 2001 From: inotia00 <108592928+inotia00@users.noreply.github.com> Date: Thu, 5 Sep 2024 17:28:43 +0900 Subject: [PATCH 04/63] build: bump dependencies --- .../patches/shared/litho/LithoFilterPatch.kt | 13 +++++++------ .../LithoFilterPatchConstructorFingerprint.kt | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/main/kotlin/app/revanced/patches/shared/litho/LithoFilterPatch.kt b/src/main/kotlin/app/revanced/patches/shared/litho/LithoFilterPatch.kt index f02aaa9d0..67d4c54a6 100644 --- a/src/main/kotlin/app/revanced/patches/shared/litho/LithoFilterPatch.kt +++ b/src/main/kotlin/app/revanced/patches/shared/litho/LithoFilterPatch.kt @@ -170,10 +170,10 @@ object LithoFilterPatch : BytecodePatch( addFilter = { classDescriptor -> addInstructions( 0, """ - new-instance v1, $classDescriptor - invoke-direct {v1}, $classDescriptor->()V - const/16 v2, ${filterCount++} - aput-object v1, v0, v2 + new-instance v0, $classDescriptor + invoke-direct {v0}, $classDescriptor->()V + const/16 v3, ${filterCount++} + aput-object v0, v2, v3 """ ) } @@ -184,8 +184,9 @@ object LithoFilterPatch : BytecodePatch( override fun close() = LithoFilterPatchConstructorFingerprint.result!! .mutableMethod.addInstructions( 0, """ - const/16 v0, $filterCount - new-array v0, v0, [$INTEGRATIONS_FILER_CLASS_DESCRIPTOR + const/16 v1, $filterCount + new-array v2, v1, [$INTEGRATIONS_FILER_CLASS_DESCRIPTOR + const/4 v1, 0x1 """ ) } \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/shared/litho/fingerprints/LithoFilterPatchConstructorFingerprint.kt b/src/main/kotlin/app/revanced/patches/shared/litho/fingerprints/LithoFilterPatchConstructorFingerprint.kt index af0ce820b..a307628be 100644 --- a/src/main/kotlin/app/revanced/patches/shared/litho/fingerprints/LithoFilterPatchConstructorFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/shared/litho/fingerprints/LithoFilterPatchConstructorFingerprint.kt @@ -7,7 +7,7 @@ import com.android.tools.smali.dexlib2.AccessFlags internal object LithoFilterPatchConstructorFingerprint : MethodFingerprint( returnType = "V", - accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC or AccessFlags.CONSTRUCTOR, + accessFlags = AccessFlags.STATIC or AccessFlags.CONSTRUCTOR, customFingerprint = { methodDef, _ -> methodDef.definingClass == "$COMPONENTS_PATH/LithoFilterPatch;" } From 2350d94136b22403b7aecc6aa91d6db687bb7d4b Mon Sep 17 00:00:00 2001 From: Aaron Veil <70171475+anddea@users.noreply.github.com> Date: Fri, 6 Sep 2024 10:21:47 +0300 Subject: [PATCH 05/63] feat(YouTube - Hide ads): Add `Hide promotion alert banner` setting --- src/main/resources/youtube/settings/xml/revanced_prefs.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/resources/youtube/settings/xml/revanced_prefs.xml b/src/main/resources/youtube/settings/xml/revanced_prefs.xml index d3de766e5..8a82f5e5d 100644 --- a/src/main/resources/youtube/settings/xml/revanced_prefs.xml +++ b/src/main/resources/youtube/settings/xml/revanced_prefs.xml @@ -136,6 +136,7 @@ + From ca6263c18f823507c55d77e15a1aeb268ab90352 Mon Sep 17 00:00:00 2001 From: inotia00 <108592928+inotia00@users.noreply.github.com> Date: Thu, 5 Sep 2024 17:35:26 +0900 Subject: [PATCH 06/63] feat(YouTube Music - Hide ads): Add `Hide promotion alert banner` setting --- .../app/revanced/patches/music/ads/general/AdsPatch.kt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/kotlin/app/revanced/patches/music/ads/general/AdsPatch.kt b/src/main/kotlin/app/revanced/patches/music/ads/general/AdsPatch.kt index 72268a77c..9efa9ff3f 100644 --- a/src/main/kotlin/app/revanced/patches/music/ads/general/AdsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/ads/general/AdsPatch.kt @@ -214,5 +214,10 @@ object AdsPatch : BaseBytecodePatch( "revanced_hide_premium_renewal", "true" ) + SettingsPatch.addSwitchPreference( + CategoryType.ADS, + "revanced_hide_promotion_alert_banner", + "true" + ) } } From 5d8650f14d8935ecaf670689e4c8f24042022dc1 Mon Sep 17 00:00:00 2001 From: inotia00 <108592928+inotia00@users.noreply.github.com> Date: Thu, 5 Sep 2024 17:39:22 +0900 Subject: [PATCH 07/63] feat(YouTube - Player components): Add `Disable switch mix playlists` setting --- .../player/components/PlayerComponentsPatch.kt | 8 ++++++++ .../video/information/VideoInformationPatch.kt | 2 +- .../playerresponse/PlayerResponseMethodHookPatch.kt | 11 ++++++++--- .../resources/youtube/settings/xml/revanced_prefs.xml | 1 + 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/components/PlayerComponentsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/player/components/PlayerComponentsPatch.kt index 8b3bca28e..c5ecd85d5 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/player/components/PlayerComponentsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/player/components/PlayerComponentsPatch.kt @@ -46,6 +46,7 @@ import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.Scrim import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.SeekUndoEduOverlayStub import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.TapBloomView import app.revanced.patches.youtube.utils.settings.SettingsPatch +import app.revanced.patches.youtube.video.information.VideoInformationPatch import app.revanced.util.REGISTER_TEMPLATE_REPLACEMENT import app.revanced.util.getTargetIndexOrThrow import app.revanced.util.getTargetIndexReversedOrThrow @@ -73,6 +74,7 @@ object PlayerComponentsPatch : BaseBytecodePatch( SharedResourceIdPatch::class, SpeedOverlayPatch::class, SuggestedVideoEndScreenPatch::class, + VideoInformationPatch::class ), compatiblePackages = COMPATIBLE_PACKAGE, fingerprints = setOf( @@ -172,6 +174,12 @@ object PlayerComponentsPatch : BaseBytecodePatch( // endregion + // region patch for disable auto switch mix playlists + + VideoInformationPatch.hook("$PLAYER_CLASS_DESCRIPTOR->disableAutoSwitchMixPlaylists(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JZ)V") + + // endregion + // region patch for hide channel watermark WatermarkFingerprint.resolve( diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/information/VideoInformationPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/video/information/VideoInformationPatch.kt index df1eaa5c1..95dee191b 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/video/information/VideoInformationPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/video/information/VideoInformationPatch.kt @@ -361,7 +361,7 @@ object VideoInformationPatch : BytecodePatch( // Call before any other video id hooks, // so they can use VideoInformation and check if the video id is for a Short. PlayerResponseMethodHookPatch += PlayerResponseMethodHookPatch.Hook.PlayerParameterBeforeVideoId( - "$INTEGRATIONS_CLASS_DESCRIPTOR->newPlayerResponseParameter(Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/String;" + "$INTEGRATIONS_CLASS_DESCRIPTOR->newPlayerResponseParameter(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/String;" ) /** diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/playerresponse/PlayerResponseMethodHookPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/video/playerresponse/PlayerResponseMethodHookPatch.kt index f003075cc..68beae36b 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/video/playerresponse/PlayerResponseMethodHookPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/video/playerresponse/PlayerResponseMethodHookPatch.kt @@ -18,12 +18,14 @@ object PlayerResponseMethodHookPatch : // Parameter numbers of the patched method. private var PARAMETER_VIDEO_ID = 1 private var PARAMETER_PLAYER_PARAMETER = 3 + private var PARAMETER_PLAYLIST_ID = 4 private var PARAMETER_IS_SHORT_AND_OPENING_OR_PLAYING by Delegates.notNull() // Registers used to pass the parameters to integrations. private var playerResponseMethodCopyRegisters = false private lateinit var REGISTER_VIDEO_ID: String private lateinit var REGISTER_PLAYER_PARAMETER: String + private lateinit var REGISTER_PLAYLIST_ID: String private lateinit var REGISTER_IS_SHORT_AND_OPENING_OR_PLAYING: String private lateinit var playerResponseMethod: MutableMethod @@ -46,10 +48,12 @@ object PlayerResponseMethodHookPatch : if (playerResponseMethodCopyRegisters) { REGISTER_VIDEO_ID = "v0" REGISTER_PLAYER_PARAMETER = "v1" - REGISTER_IS_SHORT_AND_OPENING_OR_PLAYING = "v2" + REGISTER_PLAYLIST_ID = "v2" + REGISTER_IS_SHORT_AND_OPENING_OR_PLAYING = "v3" } else { REGISTER_VIDEO_ID = "p$PARAMETER_VIDEO_ID" REGISTER_PLAYER_PARAMETER = "p$PARAMETER_PLAYER_PARAMETER" + REGISTER_PLAYLIST_ID = "p$PARAMETER_PLAYLIST_ID" REGISTER_IS_SHORT_AND_OPENING_OR_PLAYING = "p$PARAMETER_IS_SHORT_AND_OPENING_OR_PLAYING" } } @@ -66,7 +70,7 @@ object PlayerResponseMethodHookPatch : fun hookPlayerParameter(hook: Hook) { playerResponseMethod.addInstructions( 0, """ - invoke-static {$REGISTER_VIDEO_ID, $REGISTER_PLAYER_PARAMETER, $REGISTER_IS_SHORT_AND_OPENING_OR_PLAYING}, $hook + invoke-static {$REGISTER_VIDEO_ID, $REGISTER_PLAYER_PARAMETER, $REGISTER_PLAYLIST_ID, $REGISTER_IS_SHORT_AND_OPENING_OR_PLAYING}, $hook move-result-object $REGISTER_PLAYER_PARAMETER """ ) @@ -90,11 +94,12 @@ object PlayerResponseMethodHookPatch : """ move-object/from16 $REGISTER_VIDEO_ID, p$PARAMETER_VIDEO_ID move-object/from16 $REGISTER_PLAYER_PARAMETER, p$PARAMETER_PLAYER_PARAMETER + move-object/from16 $REGISTER_PLAYLIST_ID, p$PARAMETER_PLAYLIST_ID move/from16 $REGISTER_IS_SHORT_AND_OPENING_OR_PLAYING, p$PARAMETER_IS_SHORT_AND_OPENING_OR_PLAYING """, ) - numberOfInstructionsAdded += 3 + numberOfInstructionsAdded += 4 // Move the modified register back. addInstruction( diff --git a/src/main/resources/youtube/settings/xml/revanced_prefs.xml b/src/main/resources/youtube/settings/xml/revanced_prefs.xml index 8a82f5e5d..642dce0aa 100644 --- a/src/main/resources/youtube/settings/xml/revanced_prefs.xml +++ b/src/main/resources/youtube/settings/xml/revanced_prefs.xml @@ -446,6 +446,7 @@ + + SETTINGS: OVERLAY_BUTTONS --> From 88cc7a9e3c8d12852751f3f8d3f9970621213928 Mon Sep 17 00:00:00 2001 From: Aaron Veil <70171475+anddea@users.noreply.github.com> Date: Mon, 9 Sep 2024 10:09:28 +0300 Subject: [PATCH 30/63] chore(Translations): Update translations --- .../music/settings/host/values/strings.xml | 4 +- .../translations/bg-rBG/missing_strings.xml | 4 +- .../music/translations/bn/missing_strings.xml | 4 +- .../translations/cs-rCZ/missing_strings.xml | 4 +- .../translations/el-rGR/missing_strings.xml | 2 - .../music/translations/el-rGR/strings.xml | 6 ++- .../translations/es-rES/missing_strings.xml | 2 + .../music/translations/es-rES/strings.xml | 2 - .../translations/fr-rFR/missing_strings.xml | 4 +- .../music/translations/fr-rFR/strings.xml | 4 +- .../translations/hu-rHU/missing_strings.xml | 2 + .../music/translations/hu-rHU/strings.xml | 2 - .../translations/id-rID/missing_strings.xml | 2 + .../music/translations/id-rID/strings.xml | 2 - .../music/translations/in/missing_strings.xml | 2 + .../music/translations/in/strings.xml | 2 - .../translations/it-rIT/missing_strings.xml | 4 +- .../translations/ja-rJP/missing_strings.xml | 2 + .../music/translations/ja-rJP/strings.xml | 2 - .../music/translations/ko-rKR/strings.xml | 4 +- .../translations/nl-rNL/missing_strings.xml | 4 +- .../translations/pl-rPL/missing_strings.xml | 2 - .../music/translations/pl-rPL/strings.xml | 10 ++-- .../translations/pt-rBR/missing_strings.xml | 4 +- .../music/translations/pt-rBR/strings.xml | 10 ++-- .../translations/ro-rRO/missing_strings.xml | 4 +- .../translations/ru-rRU/missing_strings.xml | 2 + .../music/translations/ru-rRU/strings.xml | 2 - .../translations/tr-rTR/missing_strings.xml | 2 + .../music/translations/tr-rTR/strings.xml | 2 - .../translations/uk-rUA/missing_strings.xml | 4 +- .../music/translations/uk-rUA/strings.xml | 4 +- .../translations/vi-rVN/missing_strings.xml | 2 - .../music/translations/vi-rVN/strings.xml | 6 ++- .../translations/zh-rCN/missing_strings.xml | 4 +- .../translations/zh-rTW/missing_strings.xml | 4 +- .../youtube/settings/host/values/strings.xml | 6 ++- .../translations/ar/missing_strings.xml | 20 +------ .../youtube/translations/ar/strings.xml | 28 ++++++++-- .../translations/bg-rBG/missing_strings.xml | 20 +------ .../youtube/translations/bg-rBG/strings.xml | 21 +++++++- .../translations/bn/missing_strings.xml | 4 ++ .../translations/de-rDE/missing_strings.xml | 4 ++ .../translations/el-rGR/missing_strings.xml | 20 +------ .../youtube/translations/el-rGR/strings.xml | 34 +++++++++--- .../translations/es-rES/missing_strings.xml | 20 +------ .../youtube/translations/es-rES/strings.xml | 20 +++++++ .../translations/fi-rFI/missing_strings.xml | 4 ++ .../translations/fr-rFR/missing_strings.xml | 20 +------ .../youtube/translations/fr-rFR/strings.xml | 28 ++++++++-- .../translations/hu-rHU/missing_strings.xml | 4 ++ .../translations/id-rID/missing_strings.xml | 4 ++ .../translations/in/missing_strings.xml | 4 ++ .../translations/it-rIT/missing_strings.xml | 20 +------ .../youtube/translations/it-rIT/strings.xml | 34 +++++++++--- .../translations/ja-rJP/missing_strings.xml | 5 +- .../youtube/translations/ja-rJP/strings.xml | 23 ++++---- .../translations/ko-rKR/missing_strings.xml | 2 + .../youtube/translations/ko-rKR/strings.xml | 16 +++--- .../translations/pl-rPL/missing_strings.xml | 5 ++ .../youtube/translations/pl-rPL/strings.xml | 22 ++++---- .../translations/pt-rBR/missing_strings.xml | 8 +-- .../youtube/translations/pt-rBR/strings.xml | 8 +++ .../translations/ru-rRU/missing_strings.xml | 20 +------ .../youtube/translations/ru-rRU/strings.xml | 21 ++++++++ .../translations/tr-rTR/missing_strings.xml | 4 ++ .../translations/uk-rUA/missing_strings.xml | 5 ++ .../youtube/translations/uk-rUA/strings.xml | 4 +- .../translations/vi-rVN/missing_strings.xml | 20 +------ .../youtube/translations/vi-rVN/strings.xml | 54 ++++++++++++------- .../translations/zh-rCN/missing_strings.xml | 2 + .../youtube/translations/zh-rCN/strings.xml | 2 + .../translations/zh-rTW/missing_strings.xml | 20 +------ .../youtube/translations/zh-rTW/strings.xml | 20 +++++++ 74 files changed, 394 insertions(+), 308 deletions(-) create mode 100644 src/main/resources/youtube/translations/pl-rPL/missing_strings.xml create mode 100644 src/main/resources/youtube/translations/uk-rUA/missing_strings.xml diff --git a/src/main/resources/music/settings/host/values/strings.xml b/src/main/resources/music/settings/host/values/strings.xml index 7a2a5ae62..b32e1eb4a 100644 --- a/src/main/resources/music/settings/host/values/strings.xml +++ b/src/main/resources/music/settings/host/values/strings.xml @@ -37,6 +37,8 @@ Tap on the continue button and disable battery optimizations." Edit custom playback speeds Disables captions from being automatically enabled. Disable forced auto captions + Disables Cairo splash animation when the app starts up. + Disable Cairo splash animation Disables redirection to the next track when clicking the Dislike button. Disable dislike redirection Disable swipe to change tracks in the miniplayer. @@ -47,8 +49,6 @@ Tap on the continue button and disable battery optimizations." Enable black navigation bar Changes the player background color to black. Enable black player background - Enables Cairo splash animation when the app starts up. - Enable Cairo splash animation Matches the color of the miniplayer to the fullscreen player. Enable color match player "Enables the compact flyout menu on phones. diff --git a/src/main/resources/music/translations/bg-rBG/missing_strings.xml b/src/main/resources/music/translations/bg-rBG/missing_strings.xml index af70286a6..4333d26db 100644 --- a/src/main/resources/music/translations/bg-rBG/missing_strings.xml +++ b/src/main/resources/music/translations/bg-rBG/missing_strings.xml @@ -20,14 +20,14 @@ Tap on the continue button and disable battery optimizations." Change from in-app share sheet to system share sheet. Change share sheet Invalid custom playback speeds. Using default values. + Disables Cairo splash animation when the app starts up. + Disable Cairo splash animation Disable swipe to change tracks in the miniplayer. Disable miniplayer gesture Disable swipe to change tracks in the player. Disable player gesture Changes the player background color to black. Enable black player background - Enables Cairo splash animation when the app starts up. - Enable Cairo splash animation Includes the buffer in the debug log. Enable debug buffer logging Prints the debug log. diff --git a/src/main/resources/music/translations/bn/missing_strings.xml b/src/main/resources/music/translations/bn/missing_strings.xml index 0a7526045..72f01671e 100644 --- a/src/main/resources/music/translations/bn/missing_strings.xml +++ b/src/main/resources/music/translations/bn/missing_strings.xml @@ -28,6 +28,8 @@ Tap on the continue button and disable battery optimizations." Change start page Invalid custom filter: %s. Invalid custom playback speeds. Using default values. + Disables Cairo splash animation when the app starts up. + Disable Cairo splash animation Disables redirection to the next track when clicking the Dislike button. Disable dislike redirection Disable swipe to change tracks in the miniplayer. @@ -36,8 +38,6 @@ Tap on the continue button and disable battery optimizations." Disable player gesture Changes the player background color to black. Enable black player background - Enables Cairo splash animation when the app starts up. - Enable Cairo splash animation "Enables the compact flyout menu on phones. Limitations: diff --git a/src/main/resources/music/translations/cs-rCZ/missing_strings.xml b/src/main/resources/music/translations/cs-rCZ/missing_strings.xml index d4d1669d4..1c25db85e 100644 --- a/src/main/resources/music/translations/cs-rCZ/missing_strings.xml +++ b/src/main/resources/music/translations/cs-rCZ/missing_strings.xml @@ -32,6 +32,8 @@ Tap on the continue button and disable battery optimizations." Invalid custom playback speeds. Using default values. Add or change available playback speeds. Edit custom playback speeds + Disables Cairo splash animation when the app starts up. + Disable Cairo splash animation Disables redirection to the next track when clicking the Dislike button. Disable dislike redirection Disable swipe to change tracks in the miniplayer. @@ -40,8 +42,6 @@ Tap on the continue button and disable battery optimizations." Disable player gesture Changes the player background color to black. Enable black player background - Enables Cairo splash animation when the app starts up. - Enable Cairo splash animation "Enables the compact flyout menu on phones. Limitations: diff --git a/src/main/resources/music/translations/el-rGR/missing_strings.xml b/src/main/resources/music/translations/el-rGR/missing_strings.xml index b0d1db62d..acebd7abf 100644 --- a/src/main/resources/music/translations/el-rGR/missing_strings.xml +++ b/src/main/resources/music/translations/el-rGR/missing_strings.xml @@ -3,6 +3,4 @@ Don\'t show again Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore - Hides the promotion alert banner. - Hide promotion alert banner diff --git a/src/main/resources/music/translations/el-rGR/strings.xml b/src/main/resources/music/translations/el-rGR/strings.xml index 2c58d1629..a8636e097 100644 --- a/src/main/resources/music/translations/el-rGR/strings.xml +++ b/src/main/resources/music/translations/el-rGR/strings.xml @@ -36,6 +36,8 @@ Επεξεργασία ταχυτήτων αναπαραγωγής Απενεργοποίηση της αυτόματης ενεργοποίησης υπότιτλων. Απενεργοποίηση αυτόματων υπότιτλων + Απενεργοποίηση των εφέ θέματος Cairo κατά την εκκίνηση της εφαρμογής. + Απενεργοποίηση εφέ εκκίνησης θέματος Cairo Απενεργοποίηση της ανακατεύθυνσης στο επόμενο κομμάτι όταν πατάτε το κουμπί «Δεν μου αρέσει». Απενεργοποίηση ανακατεύθυνσης dislike Απενεργοποίηση της χειρονομίας σάρωσης για αλλαγή κομματιού στην ελαχιστοποιημένη οθόνη αναπαραγωγής. @@ -46,8 +48,6 @@ Μαύρη γραμμής πλοήγησης Αλλαγή χρώματος της οθόνης αναπαραγωγής σε μαύρο. Μαύρο φόντο οθόνης αναπαραγωγής - Ενεργοποίηση των εφέ θέματος Cairo κατά την εκκίνηση της εφαρμογής. - Εφέ εκκίνησης θέματος Cairo Να ταιριάζει το χρώμα της ελαχιστοποιημένης οθόνης αναπαραγωγής με αυτό της οθόνης αναπαραγωγής πλήρους οθόνης. Ταίριασμα χρωμάτων οθόνων αναπαραγωγής "Χρήση μικρότερου στυλ για το αναδυόμενο μενού. @@ -223,6 +223,8 @@ Απόκρυψη παραθύρων προώθησης Premium Απόκρυψη του διαφημιστικού ανανέωσης YT Premium. Απόκρυψη διαφημιστικού ανανέωσης Premium + Απόκρυψη των ετικετών προειδοποίησης προώθησης. + Απόκρυψη ετικετών προειδοποίησης προώθησης Απόκρυψη της ενότητας «Δείγματα» στη ροή. Απόκρυψη ενότητας «Δείγματα» Λίστα ονομάτων των επιλογών του μενού ρυθμίσεων για φιλτράρισμα, διαχωρισμένα με νέες γραμμές. diff --git a/src/main/resources/music/translations/es-rES/missing_strings.xml b/src/main/resources/music/translations/es-rES/missing_strings.xml index c7c1bbcc0..c26052169 100644 --- a/src/main/resources/music/translations/es-rES/missing_strings.xml +++ b/src/main/resources/music/translations/es-rES/missing_strings.xml @@ -1,6 +1,8 @@ Don\'t show again + Disables Cairo splash animation when the app starts up. + Disable Cairo splash animation Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore Fullscreen ads are blocked. (there may be side effects) diff --git a/src/main/resources/music/translations/es-rES/strings.xml b/src/main/resources/music/translations/es-rES/strings.xml index d4a6f365f..da86b55ed 100644 --- a/src/main/resources/music/translations/es-rES/strings.xml +++ b/src/main/resources/music/translations/es-rES/strings.xml @@ -46,8 +46,6 @@ Pulsa el botón de continuar y desactiva las optimizaciones de la batería."Activar barra de navegación negra Cambia el color de fondo del reproductor a negro. Activar fondo de reproductor negro - Habilita la animación de bienvenida \"Cairo\" cuando se inicia la aplicación. - Activar nueva animación de bienvenida Hace coincidir el color del reproductor a pantalla completa con el de minimizado. Activar coincidencia de color de reproductores "Activa el diálogo compacto en el teléfono. diff --git a/src/main/resources/music/translations/fr-rFR/missing_strings.xml b/src/main/resources/music/translations/fr-rFR/missing_strings.xml index b0d1db62d..f197d5e6b 100644 --- a/src/main/resources/music/translations/fr-rFR/missing_strings.xml +++ b/src/main/resources/music/translations/fr-rFR/missing_strings.xml @@ -1,8 +1,8 @@ Don\'t show again + Disables Cairo splash animation when the app starts up. + Disable Cairo splash animation Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore - Hides the promotion alert banner. - Hide promotion alert banner diff --git a/src/main/resources/music/translations/fr-rFR/strings.xml b/src/main/resources/music/translations/fr-rFR/strings.xml index dc784fa57..829268990 100644 --- a/src/main/resources/music/translations/fr-rFR/strings.xml +++ b/src/main/resources/music/translations/fr-rFR/strings.xml @@ -46,8 +46,6 @@ Cliquez sur le bouton Continuer et désactivez les optimisations de la batterie. Activer la barre de navigation en noir Change la couleur de l\'interface du lecteur en noir. Activer l\'interface du lecteur en noir - Active l\'animation Cairo lors du démarrage de l\'application. - Activer l\'animation Cairo au démarrage Harmonise les couleurs du minilecteur à celle du lecteur en plein écran. Activer l\'harmonisation des couleurs du lecteur "Active le menu déroulant compact sur téléphones. @@ -225,6 +223,8 @@ Si désactivé, Les publicités en plein écran seront bloquées. (peut avoir de Masquer les publicités pour YouTube Premium Masque la bannière \"Renouveler votre abonnement Premium\". Masquer la bannière \"Renouveler votre abonnement Premium\" + Masque la bannière d\'alerte de promotion. + Masquer la bannière d\'alerte de promotion Masque l’étagère \"Samples\" dans les flux. Masquer l’étagère \"Samples\" Liste des noms du menu paramètre à filtrer, séparé par des sauts de lignes. diff --git a/src/main/resources/music/translations/hu-rHU/missing_strings.xml b/src/main/resources/music/translations/hu-rHU/missing_strings.xml index e81b26a18..73bfca33a 100644 --- a/src/main/resources/music/translations/hu-rHU/missing_strings.xml +++ b/src/main/resources/music/translations/hu-rHU/missing_strings.xml @@ -1,6 +1,8 @@ Don\'t show again + Disables Cairo splash animation when the app starts up. + Disable Cairo splash animation Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore Hides the promotion alert banner. diff --git a/src/main/resources/music/translations/hu-rHU/strings.xml b/src/main/resources/music/translations/hu-rHU/strings.xml index dc63fb88d..ae7624d68 100644 --- a/src/main/resources/music/translations/hu-rHU/strings.xml +++ b/src/main/resources/music/translations/hu-rHU/strings.xml @@ -46,8 +46,6 @@ Nyomd meg a folytatás gombot, és tiltsd le az akkumulátor-optimalizálásokat Fekete navigációs sor engedélyezése Megváltoztatja a lejátszó háttér színét feketére. Fekete hátterű lejátszó engedélyezése - Engedélyezi a betöltési animációt amikor az app indul. - Betöltési animáció engedélyezése Egyező színe lesz a kis lejátszónak, mint a teljes képernyősnek. Megegyező színű lejátszó bekapcsolása "Engedélyezi a telefonokon a kompakt felugró menüt. diff --git a/src/main/resources/music/translations/id-rID/missing_strings.xml b/src/main/resources/music/translations/id-rID/missing_strings.xml index b0d1db62d..34e49809f 100644 --- a/src/main/resources/music/translations/id-rID/missing_strings.xml +++ b/src/main/resources/music/translations/id-rID/missing_strings.xml @@ -1,6 +1,8 @@ Don\'t show again + Disables Cairo splash animation when the app starts up. + Disable Cairo splash animation Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore Hides the promotion alert banner. diff --git a/src/main/resources/music/translations/id-rID/strings.xml b/src/main/resources/music/translations/id-rID/strings.xml index d8d8fa23c..9f901981b 100644 --- a/src/main/resources/music/translations/id-rID/strings.xml +++ b/src/main/resources/music/translations/id-rID/strings.xml @@ -46,8 +46,6 @@ Tap on the continue button and disable battery optimizations." Aktifkan bilah navigasi hitam Changes the player background color to black. Enable black player background - Mengaktifkan Animasi splash Cairo ketika app dibuka. - Aktifkan animasi splash Cairo Mencocokkan warna pemutar layar penuh dengan yang diperkecil. Aktifkan pencocokan warna pemutar "Aktifkan dialog ringkas di ponsel. diff --git a/src/main/resources/music/translations/in/missing_strings.xml b/src/main/resources/music/translations/in/missing_strings.xml index b0d1db62d..34e49809f 100644 --- a/src/main/resources/music/translations/in/missing_strings.xml +++ b/src/main/resources/music/translations/in/missing_strings.xml @@ -1,6 +1,8 @@ Don\'t show again + Disables Cairo splash animation when the app starts up. + Disable Cairo splash animation Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore Hides the promotion alert banner. diff --git a/src/main/resources/music/translations/in/strings.xml b/src/main/resources/music/translations/in/strings.xml index d8d8fa23c..9f901981b 100644 --- a/src/main/resources/music/translations/in/strings.xml +++ b/src/main/resources/music/translations/in/strings.xml @@ -46,8 +46,6 @@ Tap on the continue button and disable battery optimizations." Aktifkan bilah navigasi hitam Changes the player background color to black. Enable black player background - Mengaktifkan Animasi splash Cairo ketika app dibuka. - Aktifkan animasi splash Cairo Mencocokkan warna pemutar layar penuh dengan yang diperkecil. Aktifkan pencocokan warna pemutar "Aktifkan dialog ringkas di ponsel. diff --git a/src/main/resources/music/translations/it-rIT/missing_strings.xml b/src/main/resources/music/translations/it-rIT/missing_strings.xml index 376db1a62..c7374e1d6 100644 --- a/src/main/resources/music/translations/it-rIT/missing_strings.xml +++ b/src/main/resources/music/translations/it-rIT/missing_strings.xml @@ -28,6 +28,8 @@ Tap on the continue button and disable battery optimizations." Change start page Invalid custom filter: %s. Invalid custom playback speeds. Using default values. + Disables Cairo splash animation when the app starts up. + Disable Cairo splash animation Disables redirection to the next track when clicking the Dislike button. Disable dislike redirection Disable swipe to change tracks in the miniplayer. @@ -36,8 +38,6 @@ Tap on the continue button and disable battery optimizations." Disable player gesture Changes the player background color to black. Enable black player background - Enables Cairo splash animation when the app starts up. - Enable Cairo splash animation "Enables the compact flyout menu on phones. Limitations: diff --git a/src/main/resources/music/translations/ja-rJP/missing_strings.xml b/src/main/resources/music/translations/ja-rJP/missing_strings.xml index d7c8414ff..bdbc26d06 100644 --- a/src/main/resources/music/translations/ja-rJP/missing_strings.xml +++ b/src/main/resources/music/translations/ja-rJP/missing_strings.xml @@ -1,5 +1,7 @@ + Disables Cairo splash animation when the app starts up. + Disable Cairo splash animation Hides the promotion alert banner. Hide promotion alert banner diff --git a/src/main/resources/music/translations/ja-rJP/strings.xml b/src/main/resources/music/translations/ja-rJP/strings.xml index 5d611b114..50cfde82f 100644 --- a/src/main/resources/music/translations/ja-rJP/strings.xml +++ b/src/main/resources/music/translations/ja-rJP/strings.xml @@ -43,8 +43,6 @@ 黒いナビゲーションバーを有効化 プレイヤーの背景の色を黒に固定します。 黒のプレイヤー背景を有効化 - アプリ起動時にCairo のスプラッシュアニメーションを有効にします。 - Cairo のスプラッシュアニメーションを有効化 ミニプレーヤーと全画面プレーヤーの色を統一します。 カラーマッチプレーヤーを有効化 "コンパクトなダイアログを有効にします。 diff --git a/src/main/resources/music/translations/ko-rKR/strings.xml b/src/main/resources/music/translations/ko-rKR/strings.xml index 5b797ad7c..993b7aa9f 100644 --- a/src/main/resources/music/translations/ko-rKR/strings.xml +++ b/src/main/resources/music/translations/ko-rKR/strings.xml @@ -37,6 +37,8 @@ 사용자 정의 재생 속도 편집 자막 사용이 강제된 동영상에서 자막을 비활성화합니다. 자동 자막 비활성화 + 앱을 시작할 때, Cairo 스플래시 애니메이션을 비활성화합니다. + Cairo 스플래시 애니메이션 비활성화 \'싫어요 버튼을 누르면 다음 트랙으로 리다이렉션\'을 비활성화합니다. 싫어요 리다이렉션 비활성화 미니 플레이어에서 \'스와이프 제스처로 트랙 변경\'을 비활성화합니다. @@ -47,8 +49,6 @@ 검정 하단바 활성화 플레이어 배경 색상을 검정으로 설정합니다. 검정 플레이어 배경 활성화 - 앱을 시작할 때, Cairo 스플래시 애니메이션을 활성화합니다. - Cairo 스플래시 애니메이션 활성화 최소화 상태의 플레이어와 전체 화면 플레이어의 색상을 통일시킵니다. 색상 일치 플레이어 활성화 "휴대폰에서 소형 메뉴 구성요소를 활성화합니다. diff --git a/src/main/resources/music/translations/nl-rNL/missing_strings.xml b/src/main/resources/music/translations/nl-rNL/missing_strings.xml index 2774ef307..6236e49a6 100644 --- a/src/main/resources/music/translations/nl-rNL/missing_strings.xml +++ b/src/main/resources/music/translations/nl-rNL/missing_strings.xml @@ -28,6 +28,8 @@ Tap on the continue button and disable battery optimizations." Change start page Invalid custom filter: %s. Invalid custom playback speeds. Using default values. + Disables Cairo splash animation when the app starts up. + Disable Cairo splash animation Disables redirection to the next track when clicking the Dislike button. Disable dislike redirection Disable swipe to change tracks in the miniplayer. @@ -36,8 +38,6 @@ Tap on the continue button and disable battery optimizations." Disable player gesture Changes the player background color to black. Enable black player background - Enables Cairo splash animation when the app starts up. - Enable Cairo splash animation Includes the buffer in the debug log. Enable debug buffer logging Reset diff --git a/src/main/resources/music/translations/pl-rPL/missing_strings.xml b/src/main/resources/music/translations/pl-rPL/missing_strings.xml index b0d1db62d..acebd7abf 100644 --- a/src/main/resources/music/translations/pl-rPL/missing_strings.xml +++ b/src/main/resources/music/translations/pl-rPL/missing_strings.xml @@ -3,6 +3,4 @@ Don\'t show again Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore - Hides the promotion alert banner. - Hide promotion alert banner diff --git a/src/main/resources/music/translations/pl-rPL/strings.xml b/src/main/resources/music/translations/pl-rPL/strings.xml index 12be93f9d..4d3e04b57 100644 --- a/src/main/resources/music/translations/pl-rPL/strings.xml +++ b/src/main/resources/music/translations/pl-rPL/strings.xml @@ -36,6 +36,8 @@ Kontynuuj i wyłącz optymalizację baterii." Edytuj niestandardowe prędkości odtwarzania Wyłącza automatycznie włączane napisy w odtwarzaczu filmów. Wyłącz automatyczne napisy + Wyłącza animację ładowania aplikacji związaną z motywem Cairo podczas otwierania aplikacji. + Wyłącz animację uruchamiania aplikacji Wyłącza przenoszenie do następnego utworu po kliknięciu łapki w dół. Wyłącz pomijanie nielubianych piosenek Wyłącza gest przesuwania, aby zmienić utwór w miniodtwarzaczu. @@ -46,8 +48,6 @@ Kontynuuj i wyłącz optymalizację baterii." Włącz czarny pasek nawigacji Zmienia tło odtwarzacza na czarne. Włącz czarne tło odtwarzacza - Włącza animację ładowania aplikacji związaną z motywem Cairo podczas otwierania aplikacji. - Włącz animację uruchamiania aplikacji Dopasowuje kolor miniodtwarzacza do otwarzacza pełnoekranowego. Włącz pasujące kolory odtwarzaczy "Włącza kompaktowe menu ustawień utworu na telefonie. @@ -225,6 +225,8 @@ Jeśli opcja jest wyłączona, pełnoekranowe reklamy są blokowane (mogą wyst Ukryj wyskakujące okienka promocyjne Premium Ukrywa baner odnawiania Premium. Ukryj baner odnawiania Premium + Ukrywa banery z alertami promocyjnymi. + Ukryj banery z alertami promocyjnymi Ukrywa półke z samplami na stronie głównej. Ukryj półkę z samplami Lista menu ustawień do filtrowania, która musi być oddzielona nowymi liniami. @@ -262,8 +264,8 @@ Działa nie tylko na elementy menu ustawień YT Music, lecz także ReVanced Exte Zapamiętaj stan odtwarzania losowego Zapisuje ostatnią wybraną jakość teledysku. Zapamiętuj zmiany jakości teledysku - Komunikaty będą wyświetlane po zmianie domyślnej jakości filmów. - Komunikaty o zmianie domyślnej jakości filmów + Komunikaty będą wyświetlane po zmianie domyślnej jakości teledysków. + Komunikaty o zmianie domyślnej jakości teledysków Zmieniono domyślną jakość podczas używania sieci mobilnej na %s. Jakość nie została ustawiona. Zmieniono domyślną jakość podczas używania Wi-Fi na %s. diff --git a/src/main/resources/music/translations/pt-rBR/missing_strings.xml b/src/main/resources/music/translations/pt-rBR/missing_strings.xml index b0d1db62d..f197d5e6b 100644 --- a/src/main/resources/music/translations/pt-rBR/missing_strings.xml +++ b/src/main/resources/music/translations/pt-rBR/missing_strings.xml @@ -1,8 +1,8 @@ Don\'t show again + Disables Cairo splash animation when the app starts up. + Disable Cairo splash animation Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore - Hides the promotion alert banner. - Hide promotion alert banner diff --git a/src/main/resources/music/translations/pt-rBR/strings.xml b/src/main/resources/music/translations/pt-rBR/strings.xml index 400f02486..2c4cfb088 100644 --- a/src/main/resources/music/translations/pt-rBR/strings.xml +++ b/src/main/resources/music/translations/pt-rBR/strings.xml @@ -46,8 +46,6 @@ Toque no botão continuar e desative as otimizações da bateria." Ativar barra de navegação preta Altera a cor de fundo do reprodutor para preto. Ativar fundo do reprodutor preto - Ativa a animação inicial do Cairo quando o aplicativo é iniciado. - Ativar animação inicial do Cairo Corresponde à cor do mini reprodutor para o reprodutor em tela cheia. Ativar combinação de cores do reprodutor "Ativa o menu flutuante compacto em telefones. @@ -225,6 +223,8 @@ Se estiver desativado, os anúncios em tela cheia serão bloqueados. (pode haver Ocultar pop-ups de promoção premium Oculta o banner de renovação premium. Ocultar banner de renovação premium + Oculta o banner de alerta de promoção. + Ocultar banner de alerta de promoção Oculta o painel Descobertas no feed. Ocultar painel Descobertas Lista de nomes do menu de configurações para filtrar, separados por novas linhas. @@ -254,7 +254,7 @@ Isso oculta não apenas o menu de configurações do YT Music, mas também o men Lembra a última velocidade de reprodução selecionada. Lembrar mudança na velocidade de reprodução Exibir uma notificação flutuante quando alterar a velocidade padrão de reprodução. - Mostrar uma notificação flutuante + Exibir uma notificação flutuante Alterando a velocidade padrão para %s. Lembra o estado da alternância de repetição. Lembrar estado de repetição @@ -263,7 +263,7 @@ Isso oculta não apenas o menu de configurações do YT Music, mas também o men Lembra a última qualidade de vídeo selecionada. Lembrar mudança na qualidade do vídeo Exibir uma notificação flutuante quando alterar a qualidade padrão do vídeo. - Mostrar uma notificação flutuante + Exibir uma notificação flutuante Alterando a qualidade padrão de dados móveis para %s. Falha ao definir qualidade. Alterando a qualidade padrão do Wi-Fi para %s. @@ -357,7 +357,7 @@ Alguns recursos podem não funcionar corretamente no layout antigo do reprodutor O SponsorBlock está temporariamente indisponível (status %d). O SponsorBlock está temporariamente indisponível (API expirou). Exibir uma notificação flutuante se a API não estiver disponível - Mostra uma notificação flutuante se a API SponsorBlock não estiver disponível. + Exibe uma notificação flutuante se a API SponsorBlock não estiver disponível. Exibir uma notificação flutuante quando pular automaticamente Uma notificação flutuante é exibida quando um segmento é ignorado automaticamente. Configurações copiadas para área de transferência. diff --git a/src/main/resources/music/translations/ro-rRO/missing_strings.xml b/src/main/resources/music/translations/ro-rRO/missing_strings.xml index 1636ab9e1..e5907715b 100644 --- a/src/main/resources/music/translations/ro-rRO/missing_strings.xml +++ b/src/main/resources/music/translations/ro-rRO/missing_strings.xml @@ -28,6 +28,8 @@ Tap on the continue button and disable battery optimizations." Change start page Invalid custom filter: %s. Invalid custom playback speeds. Using default values. + Disables Cairo splash animation when the app starts up. + Disable Cairo splash animation Disables redirection to the next track when clicking the Dislike button. Disable dislike redirection Disable swipe to change tracks in the miniplayer. @@ -36,8 +38,6 @@ Tap on the continue button and disable battery optimizations." Disable player gesture Changes the player background color to black. Enable black player background - Enables Cairo splash animation when the app starts up. - Enable Cairo splash animation Includes the buffer in the debug log. Enable debug buffer logging Adds a next track button to the miniplayer. diff --git a/src/main/resources/music/translations/ru-rRU/missing_strings.xml b/src/main/resources/music/translations/ru-rRU/missing_strings.xml index b0d1db62d..34e49809f 100644 --- a/src/main/resources/music/translations/ru-rRU/missing_strings.xml +++ b/src/main/resources/music/translations/ru-rRU/missing_strings.xml @@ -1,6 +1,8 @@ Don\'t show again + Disables Cairo splash animation when the app starts up. + Disable Cairo splash animation Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore Hides the promotion alert banner. diff --git a/src/main/resources/music/translations/ru-rRU/strings.xml b/src/main/resources/music/translations/ru-rRU/strings.xml index b9ab034a6..ce57fdcc0 100644 --- a/src/main/resources/music/translations/ru-rRU/strings.xml +++ b/src/main/resources/music/translations/ru-rRU/strings.xml @@ -46,8 +46,6 @@ Чёрная панель навигации Меняет адаптивный цвет фона плеера на черный. Включить черный фон плеера - Включает анимацию заставки Каир при запуске приложения. - Анимация заставки Каир Цвет мини-проигрывателя соответствует цвету полноэкранного проигрывателя. Цветовое соответствие проигрывателей "Включает компактное всплывающее меню на телефонах. diff --git a/src/main/resources/music/translations/tr-rTR/missing_strings.xml b/src/main/resources/music/translations/tr-rTR/missing_strings.xml index 048d1f1a1..b778a884c 100644 --- a/src/main/resources/music/translations/tr-rTR/missing_strings.xml +++ b/src/main/resources/music/translations/tr-rTR/missing_strings.xml @@ -3,6 +3,8 @@ Don\'t show again Change from in-app share sheet to system share sheet. Change share sheet + Disables Cairo splash animation when the app starts up. + Disable Cairo splash animation Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore Hides the promotion alert banner. diff --git a/src/main/resources/music/translations/tr-rTR/strings.xml b/src/main/resources/music/translations/tr-rTR/strings.xml index 66244f048..98f0c7604 100644 --- a/src/main/resources/music/translations/tr-rTR/strings.xml +++ b/src/main/resources/music/translations/tr-rTR/strings.xml @@ -44,8 +44,6 @@ Devam düğmesine dokunun ve pil optimizasyonlarını devre dışı bırakın."< Siyah gezinme çubuğunu etkinleştir Oynatıcının arka plan rengini siyaha değiştirir. Siyah oynatıcı arka planını etkinleştir - Uyuklama başlangıcında kahire açılış animasyonunu etkinleştirir. - Kahire açılış animasyonunu etkinleştir Küçültülmüş oynatıcının rengi ile tam ekran oynatıcının rengini eşler. Oynatıcı renk eşlemesini etkinleştir "Telefonda kompakt iletişim kutusunu etkinleştirin. diff --git a/src/main/resources/music/translations/uk-rUA/missing_strings.xml b/src/main/resources/music/translations/uk-rUA/missing_strings.xml index b0d1db62d..f197d5e6b 100644 --- a/src/main/resources/music/translations/uk-rUA/missing_strings.xml +++ b/src/main/resources/music/translations/uk-rUA/missing_strings.xml @@ -1,8 +1,8 @@ Don\'t show again + Disables Cairo splash animation when the app starts up. + Disable Cairo splash animation Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore - Hides the promotion alert banner. - Hide promotion alert banner diff --git a/src/main/resources/music/translations/uk-rUA/strings.xml b/src/main/resources/music/translations/uk-rUA/strings.xml index 573c78ff2..e3f841024 100644 --- a/src/main/resources/music/translations/uk-rUA/strings.xml +++ b/src/main/resources/music/translations/uk-rUA/strings.xml @@ -46,8 +46,6 @@ Увімкнути чорну панель навігації Змінює адаптивний колір фона плеєра на чорний. Увімкнути чорний фон плеєра - Вмикає сплеш анімацію Каїр під час запуску програми. - Увімкнути сплеш анімацію Каїр Колір мініплеєра повторює колір повноекранного плеєра. Увімкнути колірну відповідність плеєрів "Вмикає компактне спливаюче вікно на телефонах. @@ -225,6 +223,8 @@ Приховати спливаючу рекламу Premium Приховує банер поновлення підписки Music Premium. Приховати банер поновлення Premium + Приховує банер рекламних сповіщень. + Приховати рекламні сповіщення Приховує полицю \"Семпли\" у стрічці. Приховати полицю \"Семпли\" Список назв меню налаштувань для фільтрування, розділених новим рядком. diff --git a/src/main/resources/music/translations/vi-rVN/missing_strings.xml b/src/main/resources/music/translations/vi-rVN/missing_strings.xml index b0d1db62d..acebd7abf 100644 --- a/src/main/resources/music/translations/vi-rVN/missing_strings.xml +++ b/src/main/resources/music/translations/vi-rVN/missing_strings.xml @@ -3,6 +3,4 @@ Don\'t show again Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore - Hides the promotion alert banner. - Hide promotion alert banner diff --git a/src/main/resources/music/translations/vi-rVN/strings.xml b/src/main/resources/music/translations/vi-rVN/strings.xml index e1d5b11ac..892f85556 100644 --- a/src/main/resources/music/translations/vi-rVN/strings.xml +++ b/src/main/resources/music/translations/vi-rVN/strings.xml @@ -34,6 +34,8 @@ Làm theo hướng dẫn 'Don't kill my app!' cho thiết bị của bạn và Chỉnh sửa tốc độ phát Tắt tự động hiển thị phụ đề khi phát video nhạc có phụ đề. Tắt tự động hiển thị phụ đề + Vô hiệu hóa hoạt ảnh Cairo khi ứng dụng khởi chạy. + Vô hiệu hóa hoạt ảnh Cairo Vô hiệu hóa chuyển hướng đến bài hát tiếp theo khi nhấp vào nút Không thích. Vô hiệu hoá chuyển hướng khi ấn nút không thích Tắt vuốt để chuyển bài hát trong trình phát thu nhỏ. @@ -44,8 +46,6 @@ Làm theo hướng dẫn 'Don't kill my app!' cho thiết bị của bạn và Thanh điều hướng màu đen Thay đổi màu nền trình phát sang màu đen. Sử dụng nền trình phát màu đen - Sử dụng hoạt ảnh kiểu Cairo khi khởi động ứng dụng. - Sử dụng hoạt ảnh kiểu Cairo Đồng bộ màu của trình phát thu nhỏ với màu của trình phát. Trình phát thu nhỏ khớp màu "Bật trình đơn tuỳ chọn dạng hộp thoại. @@ -219,6 +219,8 @@ Nếu tính năng này tắt, quảng cáo toàn màn hình sẽ bị chặn (c Ẩn quảng cáo bật lên Ẩn quảng cáo biểu ngữ mua Music Premium. Ẩn quảng cáo biểu ngữ + Ẩn biểu ngữ thông báo khuyến mãi. + Ẩn biểu ngữ thông báo khuyến mãi Ẩn thẻ Đoạn nhạc trong bảng feed. Ẩn thẻ Đoạn nhạc Danh sách tên menu Cài đặt cần lọc, cách nhau từng dòng một. diff --git a/src/main/resources/music/translations/zh-rCN/missing_strings.xml b/src/main/resources/music/translations/zh-rCN/missing_strings.xml index 039b63471..7c2f73738 100644 --- a/src/main/resources/music/translations/zh-rCN/missing_strings.xml +++ b/src/main/resources/music/translations/zh-rCN/missing_strings.xml @@ -20,12 +20,12 @@ Tap on the continue button and disable battery optimizations." Change from in-app share sheet to system share sheet. Change share sheet Invalid custom playback speeds. Using default values. + Disables Cairo splash animation when the app starts up. + Disable Cairo splash animation Disable swipe to change tracks in the miniplayer. Disable miniplayer gesture Disable swipe to change tracks in the player. Disable player gesture - Enables Cairo splash animation when the app starts up. - Enable Cairo splash animation Includes the buffer in the debug log. Enable debug buffer logging Reset diff --git a/src/main/resources/music/translations/zh-rTW/missing_strings.xml b/src/main/resources/music/translations/zh-rTW/missing_strings.xml index cb951700e..95faaafae 100644 --- a/src/main/resources/music/translations/zh-rTW/missing_strings.xml +++ b/src/main/resources/music/translations/zh-rTW/missing_strings.xml @@ -19,12 +19,12 @@ Tap on the continue button and disable battery optimizations." Bypass image region restrictions Change from in-app share sheet to system share sheet. Change share sheet + Disables Cairo splash animation when the app starts up. + Disable Cairo splash animation Disable swipe to change tracks in the miniplayer. Disable miniplayer gesture Disable swipe to change tracks in the player. Disable player gesture - Enables Cairo splash animation when the app starts up. - Enable Cairo splash animation Includes the buffer in the debug log. Enable debug buffer logging Reset diff --git a/src/main/resources/youtube/settings/host/values/strings.xml b/src/main/resources/youtube/settings/host/values/strings.xml index 66fdfffb1..0fff85b2d 100644 --- a/src/main/resources/youtube/settings/host/values/strings.xml +++ b/src/main/resources/youtube/settings/host/values/strings.xml @@ -327,10 +327,10 @@ Please download %2$s from the website." %s is not installed. Please install it. Package name of your installed external downloader app, such as YTDLnis. Playlist downloader package name - Package name of your installed external downloader app, such as NewPipe or YTDLnis. - Video downloader package name Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. Long press video downloader package name + Package name of your installed external downloader app, such as NewPipe or YTDLnis. + Video downloader package name "Videos will be switched to fullscreen in the following situations: • When a video is started. @@ -661,6 +661,8 @@ Words with uppercase letters in the middle must be entered with the casing (ie: Report menu is shown. Report menu is hidden. Hide Report menu + Sleep timer menu is shown. + Sleep timer menu is hidden. Hide Sleep timer menu Stable volume menu is shown. Stable volume menu is hidden. diff --git a/src/main/resources/youtube/translations/ar/missing_strings.xml b/src/main/resources/youtube/translations/ar/missing_strings.xml index c16e60392..f0eaa3ea4 100644 --- a/src/main/resources/youtube/translations/ar/missing_strings.xml +++ b/src/main/resources/youtube/translations/ar/missing_strings.xml @@ -3,27 +3,11 @@ Don\'t show again Courses / Learning Playables - "Auto switch mix playlists is enabled when autoplay is turned on. - -Autoplay can be changed in YouTube settings: -Settings → Autoplay → Autoplay next video" - Auto switch mix playlists is disabled. - Disable switch mix playlists - Enabling this feature will disable automatic switching to YouTube Mix when playing music while autoplay is turned on. - Default playback speed is enabled for music. - "Default playback speed is disabled for music. - -Limitation: This setting may not apply to videos that do not include the 'Listen on YouTube Music' banner." - Disable playback speed for music + Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. + Long press video downloader package name Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore Match full word - Ambient mode menu is shown. - Ambient mode menu is hidden. - Hide Ambient mode menu - Promotion alert banner is shown. - Promotion alert banner is hidden. - Hide promotion alert banner MMT Blue MMT Green MMT Yellow diff --git a/src/main/resources/youtube/translations/ar/strings.xml b/src/main/resources/youtube/translations/ar/strings.xml index 7cc8475d3..91965563f 100644 --- a/src/main/resources/youtube/translations/ar/strings.xml +++ b/src/main/resources/youtube/translations/ar/strings.xml @@ -126,9 +126,7 @@ تم تعطيل وضع الإضاءة السينمائية. تعطيل وضع الإضاءة السينمائية تم تمكين المقطع الصوتي التلقائي المفروض. - تم تعطيل المقطع الصوتي التلقائي المفروض. - -التقييد: لا ينطبق هذا الإعداد على فيديوهات Shorts. + تم تعطيل المقطع الصوتي التلقائي المفروض. تعطيل المقطع الصوتي التلقائي المفروض تم تمكين التَّرْجَمَة التلقائية المفروضة. تم تعطيل التَّرْجَمَة التلقائية المفروضة. @@ -136,9 +134,21 @@ تم تمكين لوحات المشغل المنبثقة تلقائيًا. تم تعطيل لوحات المشغل المنبثقة تلقائيًا. تعطيل لوحات المشغل المنبثقة + "تم تمكين التبديل التلقائي لقوائم تشغيل التشكيلة عند تمكين التشغيل التلقائي. + +يمكن تغيير التشغيل التلقائي في إعدادات YouTube: +الإعدادات ← التشغيل التلقائي ← تشغيل الفيديو التالي تلقائيًا" + تم تعطيل التبديل التلقائي لقوائم تشغيل التشكيلة. + تعطيل تبديل قوائم تشغيل التشكيلة + سيؤدي تمكين هذه الميزة إلى تعطيل التبديل التلقائي إلى YouTube Mix عند تشغيل الموسيقى أثناء تمكين التشغيل التلقائي. تم تمكين سرعة التشغيل الافتراضية للبث المباشر. تم تعطيل سرعة التشغيل الافتراضية للبث المباشر. تعطيل سرعة التشغيل للبث المباشر + تم تمكين سرعة التشغيل الافتراضية للموسيقى. + "تم تعطيل سرعة التشغيل الافتراضية للموسيقى. + +التقييد: قد لا ينطبق هذا الإعداد على مقاطع الفيديو التي لا تتضمن لافتة \"الاستماع على YouTube Music\"." + تعطيل سرعة التشغيل للموسيقى تم تمكين لوحة المشاركة. تم تعطيل لوحة المشاركة. تعطيل لوحة المشاركة @@ -598,6 +608,9 @@ يتم عرض زر الطَيّ. تم إخفاء زر الطَيّ. إخفاء زر الطَيّ + يتم عرض قائمة الإضاءة السينمائية. + تم إخفاء قائمة الإضاءة السينمائية. + إخفاء قائمة الإضاءة السينمائية يتم عرض قائمة المقطع الصوتي. تم إخفاء قائمة المقطع الصوتي. إخفاء قائمة المقطع الصوتي @@ -640,6 +653,8 @@ يتم عرض قائمة الإبلاغ. تم إخفاء قائمة الإبلاغ. إخفاء قائمة الإبلاغ + يتم عرض قائمة مؤقت النوم. + تم إخفاء قائمة مؤقت النوم. إخفاء قائمة مؤقت النوم يتم عرض قائمة مستوى الصوت الثابت. تم إخفاء قائمة مستوى الصوت الثابت. @@ -671,6 +686,9 @@ يؤدي هذا إلى تغيير حجم قسم التعليقات، لذلك من المستحيل فتح إعادة تشغيل الدردشة المباشرة في قسم التعليقات. لا يغير هذا حجم قسم التعليقات، لذلك من الممكن فتح إعادة الدردشة المباشرة في قسم التعليقات. إخفاء نوع معاينة التعليق + يتم عرض لافتة تنبيه الترقية. + تم إخفاء لافتة تنبيه الترقية. + إخفاء لافتة تنبيه الترقية يتم عرض زر التعليقات. تم إخفاء زر التعليقات. إخفاء زر التعليقات @@ -1014,8 +1032,8 @@ \"انقر لفتح مربع حوار القائمة البيضاء. انقر مع الاستمرار لفتح مربع حوار إعداد القائمة البيضاء. عرض زر القائمة البيضاء - يفتح زر تنزيل قائمة التشغيل الأصلية أداة التنزيل الأصلية داخل التطبيق. - يفتح زر تنزيل قائمة التشغيل الأصلية أداة التنزيل الخارجية. + إذا تم عرضه، فإن زر تنزيل قائمة التشغيل الأصلية يفتح أداة التنزيل الأصلية داخل التطبيق. + يتم دائمًا عرض زر تنزيل قائمة التشغيل الأصلية، وفي قوائم التشغيل العامة، يتم فتح أداة التنزيل الخارجية لديك. تجاوز زر تنزيل قائمة التشغيل يفتح زر تنزيل الفيديو أداة التنزيل الأصلية داخل التطبيق. يفتح زر تنزيل الفيديو الأصلي أداة التنزيل الخارجية. diff --git a/src/main/resources/youtube/translations/bg-rBG/missing_strings.xml b/src/main/resources/youtube/translations/bg-rBG/missing_strings.xml index 0cce2bab7..3dc30869d 100644 --- a/src/main/resources/youtube/translations/bg-rBG/missing_strings.xml +++ b/src/main/resources/youtube/translations/bg-rBG/missing_strings.xml @@ -5,27 +5,11 @@ Alternative domain Courses / Learning Playables - "Auto switch mix playlists is enabled when autoplay is turned on. - -Autoplay can be changed in YouTube settings: -Settings → Autoplay → Autoplay next video" - Auto switch mix playlists is disabled. - Disable switch mix playlists - Enabling this feature will disable automatic switching to YouTube Mix when playing music while autoplay is turned on. - Default playback speed is enabled for music. - "Default playback speed is disabled for music. - -Limitation: This setting may not apply to videos that do not include the 'Listen on YouTube Music' banner." - Disable playback speed for music + Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. + Long press video downloader package name Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore Match full word - Ambient mode menu is shown. - Ambient mode menu is hidden. - Hide Ambient mode menu - Promotion alert banner is shown. - Promotion alert banner is hidden. - Hide promotion alert banner Disabled comments button or with label \"0\" is shown. Disabled comments button or with label \"0\" is hidden. Hide disabled comments button diff --git a/src/main/resources/youtube/translations/bg-rBG/strings.xml b/src/main/resources/youtube/translations/bg-rBG/strings.xml index 2c59db1a3..9a4b8b028 100644 --- a/src/main/resources/youtube/translations/bg-rBG/strings.xml +++ b/src/main/resources/youtube/translations/bg-rBG/strings.xml @@ -125,9 +125,20 @@ Изскачащите панели на плейъра са активирани. Изскачащите панели на плейъра са деактивирани. Изскачащи прозорци на плейъра + "Автоматичното превключване на миксирани плейлисти е активирано, когато автоматичното пускане е включено. +Автоматичното пускане може да се промени в настройките на YouTube: +Настройки → Автоматично пускане → Автоматично пускане на следващия видеоклип" + Автоматичното превключване на миксирани плейлисти е изключено. + Деактивирайте превключването на микс плейлисти + Активирането на тази функция ще деактивира автоматичното превключване към YouTube Mix при възпроизвеждане на музика, докато автоматичното пускане е включено. Скоростта на възпроизвеждане по подразбиране е активирана за потоци на живо. Скоростта на възпроизвеждане по подразбиране е деактивирана за потоци на живо. Деактивирайте скоростта на възпроизвеждане за потоци на живо + Скоростта на възпроизвеждане по подразбиране е активирана за музика. + "Скоростта на възпроизвеждане по подразбиране не се прилага за музикални видеоклипове + + Тази настройка може да не се прилага за видеоклипове, които не включват функцията „Слушане с YouTube Music“." + Деактивирайте скоростта на възпроизвеждане за музика Панелът за взаимодействие е активиран. Панелът за взаимодействие е деактивиран. Панел за взаимодействие @@ -582,6 +593,9 @@ Бутон за минимизиране се показва. Бутон за минимизиране е скрит. Бутон за минимизиране + Менюто за подсветка около видеото се показва. + Менюто за подсветка около видеото е скрито. + Подсветка около видеото Менюто “Audio Track” се показва. Менюто “Audio Track” е скрито. Меню на аудио @@ -624,6 +638,8 @@ Менюто за докладване се показва. Менюто за докладване е скрито. Скрий Меню за докладване + Менюто на таймера за заспиване се показва. + Менюто на таймера за заспиване е скрито. Скрийте менюто „Изчакване на заспиване“ Стабилно ниво на звука се показва. Постоянно ниво на звука е скрито. @@ -655,6 +671,9 @@ Това преоразмерява секцията за коментари, така че е невъзможно да се отвори повторението на чата на живо в секцията за коментари. Това не променя размера на секцията за коментари, така че е възможно да отворите повторението на чата на живо в секцията за коментари. Скриване на типа коментар за визуализация + Банерът за известия за промоциите се показва. + Банерът за известия за промоциите е скрит. + Скриване на банери с известия за промоция Бутона за коментиране се показва. Бутон за коментари е скрит. Скриване на бутона за коментари @@ -1124,7 +1143,7 @@ Note: Докоснете и задръжте, за да отворите настройките на RVX." "Докоснете, за да отворите настройките на RVX. Докоснете и задръжте, за да отворите настройките на YouTube." - Action à attribuer au bouton + Тип действие за назначаване на бутона Миниатюрите се показват в режим на цял екран. Над лентата за възпроизвеждане се появяват миниатюри. Стари миниатюри на времевата линия diff --git a/src/main/resources/youtube/translations/bn/missing_strings.xml b/src/main/resources/youtube/translations/bn/missing_strings.xml index fb884abd2..e6c923cdc 100644 --- a/src/main/resources/youtube/translations/bn/missing_strings.xml +++ b/src/main/resources/youtube/translations/bn/missing_strings.xml @@ -67,6 +67,8 @@ Limitations: Search %s Package name of your installed external downloader app, such as YTDLnis. Playlist downloader package name + Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. + Long press video downloader package name Package name of your installed external downloader app, such as NewPipe or YTDLnis. Video downloader package name Displays the optimization dialog for GMSCore at each application startup. @@ -114,6 +116,8 @@ Side effect: Community post images may be blocked in fullscreen." Quality menu header is shown. Quality menu header is hidden. Hide quality menu header + Sleep timer menu is shown. + Sleep timer menu is hidden. Hide Sleep timer menu Promotion alert banner is shown. Promotion alert banner is hidden. diff --git a/src/main/resources/youtube/translations/de-rDE/missing_strings.xml b/src/main/resources/youtube/translations/de-rDE/missing_strings.xml index 0fb76dc62..1e4668b2b 100644 --- a/src/main/resources/youtube/translations/de-rDE/missing_strings.xml +++ b/src/main/resources/youtube/translations/de-rDE/missing_strings.xml @@ -23,6 +23,8 @@ Limitation: This setting may not apply to videos that do not include the 'Listen Enable save and restore brightness Package name of your installed external downloader app, such as YTDLnis. Playlist downloader package name + Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. + Long press video downloader package name Package name of your installed external downloader app, such as NewPipe or YTDLnis. Video downloader package name Displays the optimization dialog for GMSCore at each application startup. @@ -39,6 +41,8 @@ Limitation: This setting may not apply to videos that do not include the 'Listen Ambient mode menu is shown. Ambient mode menu is hidden. Hide Ambient mode menu + Sleep timer menu is shown. + Sleep timer menu is hidden. Hide Sleep timer menu Promotion alert banner is shown. Promotion alert banner is hidden. diff --git a/src/main/resources/youtube/translations/el-rGR/missing_strings.xml b/src/main/resources/youtube/translations/el-rGR/missing_strings.xml index c16e60392..f0eaa3ea4 100644 --- a/src/main/resources/youtube/translations/el-rGR/missing_strings.xml +++ b/src/main/resources/youtube/translations/el-rGR/missing_strings.xml @@ -3,27 +3,11 @@ Don\'t show again Courses / Learning Playables - "Auto switch mix playlists is enabled when autoplay is turned on. - -Autoplay can be changed in YouTube settings: -Settings → Autoplay → Autoplay next video" - Auto switch mix playlists is disabled. - Disable switch mix playlists - Enabling this feature will disable automatic switching to YouTube Mix when playing music while autoplay is turned on. - Default playback speed is enabled for music. - "Default playback speed is disabled for music. - -Limitation: This setting may not apply to videos that do not include the 'Listen on YouTube Music' banner." - Disable playback speed for music + Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. + Long press video downloader package name Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore Match full word - Ambient mode menu is shown. - Ambient mode menu is hidden. - Hide Ambient mode menu - Promotion alert banner is shown. - Promotion alert banner is hidden. - Hide promotion alert banner MMT Blue MMT Green MMT Yellow diff --git a/src/main/resources/youtube/translations/el-rGR/strings.xml b/src/main/resources/youtube/translations/el-rGR/strings.xml index a4ab15b4d..478ac8be7 100644 --- a/src/main/resources/youtube/translations/el-rGR/strings.xml +++ b/src/main/resources/youtube/translations/el-rGR/strings.xml @@ -124,9 +124,7 @@ Η λειτουργία περιβάλλοντος είναι απενεργοποιημένη. Απενεργοποίηση λειτουργίας περιβάλλοντος Τα υποχρεωτικά κομμάτια ήχου είναι ενεργοποιημένα. - Τα υποχρεωτικά κομμάτια ήχου είναι απενεργοποιημένα. - -Περιορισμός: Αυτή η λειτουργία δεν ισχύει για τα Shorts. + Τα υποχρεωτικά κομμάτια ήχου είναι απενεργοποιημένα. Απενεργοποίηση υποχρεωτικών κομματιών ήχου Οι υποχρεωτικοί αυτόματοι υπότιτλοι εμφανίζονται. Οι υποχρεωτικοί αυτόματοι υπότιτλοι είναι απενεργοποιημένοι. @@ -134,9 +132,21 @@ Εμφανίζονται. Κρυμμένα. Αναδυόμενα παράθυρα του αναπαραγωγέα + "Η αυτόματη εναλλαγή λιστών αναπαραγωγής μίξης είναι ενεργοποιημένη όταν η αυτόματη αναπαραγωγή είναι επίσης ενεργοποιημένη. + +Η αυτόματη αναπαραγωγή μπορεί να αλλαχτεί στις ρυθμίσεις YouTube: +Ρυθμίσεις → Αυτόματη αναπαραγωγή → Αυτόματη αναπαραγωγή επόμενου βίντεο" + Η αυτόματη εναλλαγή λιστών αναπαραγωγής μίξης είναι απενεργοποιημένη. + Απενεργοποίηση εναλλαγής λιστών αναπαραγωγής μίξης + Η ενεργοποίηση αυτής της ρύθμισης θα απενεργοποιήσει την αυτόματη εναλλαγή σε YouTube Mix κατά την αναπαραγωγή μουσικής ενώ η αυτόματη αναπαραγωγή είναι ενεργοποιημένη. Η προεπιλεγμένη ταχύτητα αναπαραγωγής εφαρμόζεται σε ζωντανές μεταδόσεις. Η προεπιλεγμένη ταχύτητα αναπαραγωγής δεν εφαρμόζεται σε ζωντανές μεταδόσεις. Αποτροπή αλλαγής ταχύτητας σε ζωντανές μεταδόσεις + Η προεπιλεγμένη ταχύτητα εφαρμόζεται σε βίντεο μουσικής. + "Η προεπιλεγμένη ταχύτητα αναπαραγωγής δεν εφαρμόζεται για τα βίντεο μουσικής. + +Περιορισμός: Αυτή η ρύθμιση ενδέχεται να μην ισχύει για τα βίντεο που δεν περιλαμβάνουν την λειτουργία «Ακρόαση με YouTube Music»." + Αποτροπή αλλαγής ταχύτητας για μουσική Το πάνελ εμπλοκών είναι ενεργοποιημένο. Το πάνελ εμπλοκών είναι απενεργοποιημένο. Απενεργοποίηση πάνελ εμπλοκών @@ -211,9 +221,9 @@ Η καταγραφή εντοπισμού σφαλμάτων είναι απενεργοποιημένη. Η καταγραφή εντοπισμού σφαλμάτων είναι ενεργοποιημένη. Καταγραφή εντοπισμού σφαλμάτων - Η προεπιλεγμένη ταχύτητα αναπαραγωγής δεν ισχύει για τα Shorts. - Η προεπιλεγμένη ταχύτητα αναπαραγωγής ισχύει για τα Shorts. - Εφαρμογή της ταχύτητας σε Shorts + Η προεπιλεγμένη ταχύτητα αναπαραγωγής δεν εφαρμόζεται στα Shorts. + Η προεπιλεγμένη ταχύτητα αναπαραγωγής εφαρμόζεται στα Shorts. + Αλλαγή προεπιλεγμένης ταχύτητας Shorts Οι συνδέσμοι ανοίγουν εσωτερικά στην εφαρμογή. Οι συνδέσμοι ανοίγουν σε εξωτερικό πρόγραμμα περιήγησης. Εξωτερικό πρόγραμμα περιήγησης @@ -606,6 +616,9 @@ Playlists Εμφανίζεται. Κρυμμένο. Κουμπί ελαχιστοποίησης + Εμφανίζεται. + Κρυμμένο. + Μενού «Λειτουργία περιβάλλοντος» Εμφανίζεται. Κρυμμένο. Μενού «Κομμάτι ήχου» @@ -648,6 +661,8 @@ Playlists Εμφανίζεται. Κρυμμένο. Μενού «Αναφορά» + Εμφανίζεται. + Κρυμμένο. Μενού «Χρονόμετρο ύπνου» Εμφανίζεται. Κρυμμένο. @@ -679,6 +694,9 @@ Playlists Αυτό αλλάζει το μέγεθος της ενότητας σχολίων, οπότε είναι αδύνατο να ανοιχτεί η επανάληψη ζωντανής συνομιλίας στην ενότητα σχολίων. Αυτό δεν αλλάζει το μέγεθος της ενότητας σχολίων, οπότε μπορεί να ανοιχτεί η επανάληψη ζωντανής συνομιλίας στην ενότητα σχολίων. Τύπος απόκρυψης προεπισκόπησης σχολίου + Εμφανίζονται. + Κρυμμένες. + Ετικέτες προειδοποίησης προώθησης Εμφανίζεται. Κρυμμένο. Κουμπί σχολίων @@ -1039,8 +1057,8 @@ Playlists Πατήστε για να ανοίξετε το παράθυρο λίστας επιτρεπόμενων. Πατήστε παρατεταμένα για να ανοίξετε το παράθυρο ρυθμίσεων λίστας επιτρεπόμενων. Λίστα επιτρεπόμενων - Το κουμπί λήψης του YouTube ανοίγει το εγγενές πρόγραμμα λήψης της εφαρμογής. - Το κουμπί λήψης του YouTube ανοίγει το εξωτερικό πρόγραμμα λήψης σας. + Αν εμφανίζεται, το κουμπί λήψης λίστας αναπαραγωγής ανοίγει το εγγενές πρόγραμμα λήψης του YouTube. + Το κουμπί λήψης λίστας αναπαραγωγής εμφανίζεται πάντα, και σε δημόσιες λίστες αναπαραγωγής ανοίγει το εξωτερικό πρόγραμμα λήψης σας. Μετατροπή κουμπιού λήψης playlist Το κουμπί λήψης του YouTube ανοίγει το εγγενές πρόγραμμα λήψης της εφαρμογής. Το κουμπί λήψης του YouTube ανοίγει το εξωτερικό πρόγραμμα λήψης σας. diff --git a/src/main/resources/youtube/translations/es-rES/missing_strings.xml b/src/main/resources/youtube/translations/es-rES/missing_strings.xml index a9da68854..bfab0557f 100644 --- a/src/main/resources/youtube/translations/es-rES/missing_strings.xml +++ b/src/main/resources/youtube/translations/es-rES/missing_strings.xml @@ -3,27 +3,11 @@ Don\'t show again Courses / Learning Playables - "Auto switch mix playlists is enabled when autoplay is turned on. - -Autoplay can be changed in YouTube settings: -Settings → Autoplay → Autoplay next video" - Auto switch mix playlists is disabled. - Disable switch mix playlists - Enabling this feature will disable automatic switching to YouTube Mix when playing music while autoplay is turned on. - Default playback speed is enabled for music. - "Default playback speed is disabled for music. - -Limitation: This setting may not apply to videos that do not include the 'Listen on YouTube Music' banner." - Disable playback speed for music + Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. + Long press video downloader package name Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore Match full word - Ambient mode menu is shown. - Ambient mode menu is hidden. - Hide Ambient mode menu - Promotion alert banner is shown. - Promotion alert banner is hidden. - Hide promotion alert banner Disabled comments button or with label \"0\" is shown. Disabled comments button or with label \"0\" is hidden. Hide disabled comments button diff --git a/src/main/resources/youtube/translations/es-rES/strings.xml b/src/main/resources/youtube/translations/es-rES/strings.xml index 3ed0bde0b..8760a7988 100644 --- a/src/main/resources/youtube/translations/es-rES/strings.xml +++ b/src/main/resources/youtube/translations/es-rES/strings.xml @@ -134,9 +134,21 @@ Pulsa aquí para saber más sobre DeArrow." Los paneles emergentes del reproductor automático están desactivados. Los paneles emergentes del reproductor automático están activados. Desactivar paneles emergentes del reproductor + "El cambio automático de listas de reproducción Mix está activado cuando la reproducción automática está activada. + +La reproducción automática se puede cambiar en la configuración de YouTube: +Configuración → Reproducción automática → Reproducción automática del siguiente vídeo" + El cambio automático de listas de reproducción Mix está desactivado. + Desactivar cambio de listas de reproducción Mix + Al activar esta función, se desactivará el cambio automático a YouTube Mix al reproducir música con la reproducción automática activada. La velocidad predeterminada de reproducción está activada en directo. La velocidad predeterminada de reproducción está desactivada en directo. Desactivar la velocidad de reproducción en directo + La velocidad predeterminada de reproducción está activada para la música. + "La velocidad predeterminada de reproducción está desactivada para la música. + +Limitación: Es posible que este ajuste no se aplique a los vídeos que no incluyan el banner \"Escuchar en YouTube Music\"." + Desactivar velocidad de reproducción para música El panel de interacción está activado. El panel de interacción está desactivado. Desactivar panel de interacción @@ -594,6 +606,9 @@ Las palabras con letras mayúsculas en el medio deben introducirse con las mayú El botón de contraer está visible. El botón de contraer está oculto. Ocultar botón de contraer + El menú del modo ambiente está visible. + El menú del modo ambiente está oculto. + Ocultar menú del modo ambiente El menú de pista de audio está visible. El menú de pista de audio está oculto. Ocultar menú de pista de audio @@ -636,6 +651,8 @@ Las palabras con letras mayúsculas en el medio deben introducirse con las mayú El menú de denunciar está visible. El menú de denunciar está oculto. Ocultar menú de denunciar + El menú del temporizador está visible. + El menú del temporizador está oculto. Ocultar menú de temporizador El menú de regular volumen está visible. El menú de regular volumen está oculto. @@ -667,6 +684,9 @@ Las palabras con letras mayúsculas en el medio deben introducirse con las mayú Esto cambia el tamaño de la sección de comentarios, por lo que es imposible abrir una repetición del chat en directo en la sección de comentarios. Esto no cambia el tamaño de la sección de comentarios, por lo que es posible abrir la repetición del chat en directo en la sección de comentarios. Ocultar vista previa de tipo de comentarios + El banner de alerta de promoción está visible. + El banner de alerta de promoción está oculto. + Ocultar banner de alerta de promoción El botón de comentarios está visible. El botón de comentarios está oculto. Ocultar botón de comentarios diff --git a/src/main/resources/youtube/translations/fi-rFI/missing_strings.xml b/src/main/resources/youtube/translations/fi-rFI/missing_strings.xml index fb884abd2..e6c923cdc 100644 --- a/src/main/resources/youtube/translations/fi-rFI/missing_strings.xml +++ b/src/main/resources/youtube/translations/fi-rFI/missing_strings.xml @@ -67,6 +67,8 @@ Limitations: Search %s Package name of your installed external downloader app, such as YTDLnis. Playlist downloader package name + Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. + Long press video downloader package name Package name of your installed external downloader app, such as NewPipe or YTDLnis. Video downloader package name Displays the optimization dialog for GMSCore at each application startup. @@ -114,6 +116,8 @@ Side effect: Community post images may be blocked in fullscreen." Quality menu header is shown. Quality menu header is hidden. Hide quality menu header + Sleep timer menu is shown. + Sleep timer menu is hidden. Hide Sleep timer menu Promotion alert banner is shown. Promotion alert banner is hidden. diff --git a/src/main/resources/youtube/translations/fr-rFR/missing_strings.xml b/src/main/resources/youtube/translations/fr-rFR/missing_strings.xml index a9da68854..bfab0557f 100644 --- a/src/main/resources/youtube/translations/fr-rFR/missing_strings.xml +++ b/src/main/resources/youtube/translations/fr-rFR/missing_strings.xml @@ -3,27 +3,11 @@ Don\'t show again Courses / Learning Playables - "Auto switch mix playlists is enabled when autoplay is turned on. - -Autoplay can be changed in YouTube settings: -Settings → Autoplay → Autoplay next video" - Auto switch mix playlists is disabled. - Disable switch mix playlists - Enabling this feature will disable automatic switching to YouTube Mix when playing music while autoplay is turned on. - Default playback speed is enabled for music. - "Default playback speed is disabled for music. - -Limitation: This setting may not apply to videos that do not include the 'Listen on YouTube Music' banner." - Disable playback speed for music + Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. + Long press video downloader package name Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore Match full word - Ambient mode menu is shown. - Ambient mode menu is hidden. - Hide Ambient mode menu - Promotion alert banner is shown. - Promotion alert banner is hidden. - Hide promotion alert banner Disabled comments button or with label \"0\" is shown. Disabled comments button or with label \"0\" is hidden. Hide disabled comments button diff --git a/src/main/resources/youtube/translations/fr-rFR/strings.xml b/src/main/resources/youtube/translations/fr-rFR/strings.xml index b7b32f098..f4332e382 100644 --- a/src/main/resources/youtube/translations/fr-rFR/strings.xml +++ b/src/main/resources/youtube/translations/fr-rFR/strings.xml @@ -126,9 +126,7 @@ Cliquez ici pour en savoir plus sur DeArrow." Le mode ambiant est désactivé. Désactiver le Mode ambiant Les pistes audio automatiques forcées sont activés. - Les pistes audio automatiques forcées sont désactivé. - -Limitation : Ce paramètre ne s\'applique pas pour les Shorts. + Les pistes audio automatiques forcées sont désactivé. Désact. les pistes audio forcés Les sous-titres automatiques forcés sont activés. Les sous-titres automatiques forcés sont désactivés. @@ -136,9 +134,21 @@ Limitation : Ce paramètre ne s\'applique pas pour les Shorts. Les fenêtres pop-up du lecteur automatique sont activés. Les fenêtres pop-up du lecteur automatique sont désactivées. Fenêtres pop-up du lecteur automatique + "Le mélange auto des playlists est activé lorsque la lecture automatique est activé. + +La lecture automatique peut être modifiée dans les paramètres de YouTube : +Paramètres → Lecture automatique → Lecture automatique de la vidéo suivante" + Le mélange auto des playlists est désactivé. + Désactiver le mélange des playlists mix + Activer cette fonction désactivera le passage automatique à YouTube Mix lors de la lecture de musique lorsque la lecture automatique est activée. La vitesse de lecture par défaut est activée pour les diffusions en direct. La vitesse de lecture par défaut est désactivée pour les diffusions en direct. Desact. vitesse lecture des diffusions en direct + La vitesse de lecture par défaut est activée pour la musique. + "La vitesse de lecture par défaut est désactivée pour la musique. + +Limitation : Ce paramètre peut ne pas s'appliquer aux vidéos qui n'incluent pas la bannière \"Écouter sur YouTube Music\"." + Désactiver la vitesse de lecture pour la musique La description en plein écran est activée. La description en plein écran est désactivée. Désactiver description en plein écran @@ -598,6 +608,9 @@ Les mots comportant des majuscules au milieu doivent être saisis de la même fa Le bouton \"Réduire\" est affiché. Le bouton \"Réduire\" est masqué. Masquer le bouton \"Réduire\" + Le menu \"Mode Ambiant\" est affiché. + Le menu \"Mode Ambiant\" est masqué. + Masquer le menu \"Mode Ambiant\" Le menu \"Piste audio\" est affiché. Le menu \"Piste audio\" est masqué. Masquer le menu \"Piste audio\" @@ -640,6 +653,8 @@ Les mots comportant des majuscules au milieu doivent être saisis de la même fa Le menu \"Signaler\" est affiché. Le menu \"Signaler\" est masqué. Masquer le menu \"Signaler\" + Le menu \"Délai de mise en veille\" est affiché. + Le menu \"Délai de mise en veille\" est masqué. Masquer le menu \"Délai de mise en veille\" Le menu \"Volume stable\" est affiché. Le menu \"Volume stable\" est masqué. @@ -671,6 +686,9 @@ Les mots comportant des majuscules au milieu doivent être saisis de la même fa Cela modifie la taille de la section commentaires, il est donc impossible d\'ouvrir la section \"Rediffusion du chat en direct\" dans la section commentaires. Cela ne modifie pas la taille de la section commentaires, il est donc possible d\'ouvrir la section \"Rediffusion du chat en direct\" dans la section commentaires. Masquer le type d\'aperçu des commentaires + La bannière d\'alerte de promotion est affichée. + La bannière d\'alerte de promotion est masquée. + Masquer la bannière d\'alerte de promotion La section des commentaires est affichée. La section des commentaires est masquée. Masquer le bouton \"Commentaire\" @@ -1008,8 +1026,8 @@ Appuyez longuement pour annuler." Appuyez pour ouvrir la liste blanche. Appuyez longuement pour ouvrir les paramètres de la liste blanche. Afficher le bouton \"Liste blanche\" - Le bouton \"Télécharger\" natif de la playlist ouvre votre téléchargeur de l\'appli. - Le bouton \"Télécharger\" natif de la playlist ouvre votre téléchargeur externe. + Si affiché, le bouton \"Télécharger\" natif de la playlist ouvre le téléchargeur natif de l\'appli. + Le bouton de téléchargement natif de la playlist est toujours affiché, tandis que les playlists publiques utilisera votre téléchargeur externe. Remplacer le bouton de téléchargement de la playlist Le bouton \"Télécharger\" natif ouvre le téléchargeur de l\'appli. Le bouton \"Télécharger\" natif ouvre votre téléchargeur externe. diff --git a/src/main/resources/youtube/translations/hu-rHU/missing_strings.xml b/src/main/resources/youtube/translations/hu-rHU/missing_strings.xml index dde12d3b6..e3550ea69 100644 --- a/src/main/resources/youtube/translations/hu-rHU/missing_strings.xml +++ b/src/main/resources/youtube/translations/hu-rHU/missing_strings.xml @@ -15,6 +15,8 @@ Settings → Autoplay → Autoplay next video" Limitation: This setting may not apply to videos that do not include the 'Listen on YouTube Music' banner." Disable playback speed for music + Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. + Long press video downloader package name Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore Surrounding a keyword/phrase with double-quotes will prevent partial matches of video titles and channel names.<br><br>For example,<br><b>\"ai\"</b> will hide the video: <b>How does AI work?</b><br>but will not hide: <b>What does fair use mean?</b> @@ -26,6 +28,8 @@ Limitation: This setting may not apply to videos that do not include the 'Listen Ambient mode menu is shown. Ambient mode menu is hidden. Hide Ambient mode menu + Sleep timer menu is shown. + Sleep timer menu is hidden. Hide Sleep timer menu Promotion alert banner is shown. Promotion alert banner is hidden. diff --git a/src/main/resources/youtube/translations/id-rID/missing_strings.xml b/src/main/resources/youtube/translations/id-rID/missing_strings.xml index fb884abd2..e6c923cdc 100644 --- a/src/main/resources/youtube/translations/id-rID/missing_strings.xml +++ b/src/main/resources/youtube/translations/id-rID/missing_strings.xml @@ -67,6 +67,8 @@ Limitations: Search %s Package name of your installed external downloader app, such as YTDLnis. Playlist downloader package name + Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. + Long press video downloader package name Package name of your installed external downloader app, such as NewPipe or YTDLnis. Video downloader package name Displays the optimization dialog for GMSCore at each application startup. @@ -114,6 +116,8 @@ Side effect: Community post images may be blocked in fullscreen." Quality menu header is shown. Quality menu header is hidden. Hide quality menu header + Sleep timer menu is shown. + Sleep timer menu is hidden. Hide Sleep timer menu Promotion alert banner is shown. Promotion alert banner is hidden. diff --git a/src/main/resources/youtube/translations/in/missing_strings.xml b/src/main/resources/youtube/translations/in/missing_strings.xml index fb884abd2..e6c923cdc 100644 --- a/src/main/resources/youtube/translations/in/missing_strings.xml +++ b/src/main/resources/youtube/translations/in/missing_strings.xml @@ -67,6 +67,8 @@ Limitations: Search %s Package name of your installed external downloader app, such as YTDLnis. Playlist downloader package name + Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. + Long press video downloader package name Package name of your installed external downloader app, such as NewPipe or YTDLnis. Video downloader package name Displays the optimization dialog for GMSCore at each application startup. @@ -114,6 +116,8 @@ Side effect: Community post images may be blocked in fullscreen." Quality menu header is shown. Quality menu header is hidden. Hide quality menu header + Sleep timer menu is shown. + Sleep timer menu is hidden. Hide Sleep timer menu Promotion alert banner is shown. Promotion alert banner is hidden. diff --git a/src/main/resources/youtube/translations/it-rIT/missing_strings.xml b/src/main/resources/youtube/translations/it-rIT/missing_strings.xml index c31ecf88c..62688cae7 100644 --- a/src/main/resources/youtube/translations/it-rIT/missing_strings.xml +++ b/src/main/resources/youtube/translations/it-rIT/missing_strings.xml @@ -1,21 +1,5 @@ - "Auto switch mix playlists is enabled when autoplay is turned on. - -Autoplay can be changed in YouTube settings: -Settings → Autoplay → Autoplay next video" - Auto switch mix playlists is disabled. - Disable switch mix playlists - Enabling this feature will disable automatic switching to YouTube Mix when playing music while autoplay is turned on. - Default playback speed is enabled for music. - "Default playback speed is disabled for music. - -Limitation: This setting may not apply to videos that do not include the 'Listen on YouTube Music' banner." - Disable playback speed for music - Ambient mode menu is shown. - Ambient mode menu is hidden. - Hide Ambient mode menu - Promotion alert banner is shown. - Promotion alert banner is hidden. - Hide promotion alert banner + Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. + Long press video downloader package name diff --git a/src/main/resources/youtube/translations/it-rIT/strings.xml b/src/main/resources/youtube/translations/it-rIT/strings.xml index 60b5093a1..2541e61f2 100644 --- a/src/main/resources/youtube/translations/it-rIT/strings.xml +++ b/src/main/resources/youtube/translations/it-rIT/strings.xml @@ -82,7 +82,7 @@ Tocca qui per saperne di più su DeArrow." Corsi / Istruzione Predefinita Esplora - Gaming + Giochi Cronologia Libreria Video piaciuti @@ -141,9 +141,21 @@ Tocca qui per saperne di più su DeArrow." I pannelli popup del riproduttore automatico sono abilitati. I pannelli popup del riproduttore automatico sono disabilitati. Disabilita i pannelli popup del riproduttore + "L'interruttore automatico delle playlist miste è abilitato quando la riproduzione automatica è attivato. + +La riproduzione automatica può essere modificato nelle impostazioni di YouTube: +Impostazioni → riproduzione automatica→ riproduzione automatica video successivo" + L\'interruttore automatico delle playlist miste è disabilitato. + Disabilita interruttori delle playlist miste + Abilitando questa funzionalità si disabiliterà l\'interruttore automatico a YouTube Misto quando si riproduce musica mentre la riproduzione automatica è attivata. La velocità di riproduzione predefinita nei video dal vivo è attivata La velocità di riproduzione predefinita nei video dal vivo è disattivata Disattiva la velocità di riproduzione predefinita nei video dal vivo + La velocità di riproduzione predefinita è abilitata per la musica. + "La velocità di riproduzione predefinita è disabilitata per la musica. + +Limitazione: Questa impostazione potrebbe non applicarsi ai video che non includono il banner 'Ascolta su YouTube Music'." + Disabilita la velocità di riproduzione per la musica Il pannello di coinvolgimento è abilitato. Il pannello di coinvolgimento è disabilitato. Disabilita pannello di coinvolgimento @@ -188,7 +200,7 @@ Nota: • Disattivando la funzione di sovrimpressione della velocità, si ripristina il comportamento del 'Trascina per scorrere il video' del vecchio layout. • Disattivando questa impostazione non si abilita forzatamente la sovrimpressione della velocità." Disattiva la sovrapposizione della velocità quando tieni premuto - L\'animazione di avvio è abilitata. + L\'animazione di avvio è attivata. L\'animazione di avvio è disabilitata. Disabilita l\'animazione all\'avvio "Disabilita le seguenti interazioni quando la descrizione del video viene espansa: @@ -578,7 +590,7 @@ Parole con lettere maiuscole all'interno devono essere inserite con il maiuscolo Nascondi il pulsante Shorts Il pulsante Iscrizioni è visibile. Il pulsante Iscrizioni è nascosto. - Nascondi la pagina Iscrizioni + Nascondi il pulsante Iscrizioni Il pulsante Avvisami è visibile. Il pulsante Avvisami è nascosto. Nascondi il pulsante Avvisami @@ -600,6 +612,9 @@ Parole con lettere maiuscole all'interno devono essere inserite con il maiuscolo Il pulsante Comprimi è mostrato. Il pulsante Comprimi è nascosto. Nascondi il pulsante Comprimi + Il menu Modalità Ambient è mostrato. + Il menu Modalità Ambient è nascosto. + Nascondi il menu Modalità Ambient Il menu Traccia audio è visibile. Il menu Traccia audio è nascosto. Nascondi il menu Traccia audio @@ -642,6 +657,8 @@ Parole con lettere maiuscole all'interno devono essere inserite con il maiuscolo Il menu Segnala è visibile. Il menu Segnala è nascosto. Nascondi il menu Segnala + Il menu del timer del sonno è mostrato. + Il menu del timer del sonno è nascosto. Nascondi il menu Timer del sonno Il menu Volume stabile è visibile. Il menu Volume stabile è nascosto. @@ -673,6 +690,9 @@ Parole con lettere maiuscole all'interno devono essere inserite con il maiuscolo Questo cambia la dimensione della sezione Commenti, quindi è impossibile aprire \"Riproduci Chat dal Vivo\". Questo non cambia la dimensione della sezione Commenti, quindi è possibile aprire \"Riproduci Chat dal Vivo\". Nascondi il tipo di commento di anteprima + Il banner di avviso promozionale è visibile. + Il banner di avviso promozionale è nascosto. + Nascondi banner di avviso promozionale Il pulsante Commenti è mostrato. Il pulsante Commenti è nascosto. Nascondi il pulsante Commenti @@ -1024,12 +1044,12 @@ Tocca e tieni premuto per annullare." \"Tocca per aprire la finestra della whitelist. Tocca e tieni premuto per aprire la finestra delle impostazioni della whitelist. Mostra il pulsante whitelist - Il pulsante nativo per scaricare una playlist apre lo scaricatore nativo. - Il pulsante nativo per scaricare una playlist apre il tuo scaricatore esterno. - Sovrascrivi il pulsante per scaricare una playlist + Se visualizzato, il pulsante nativo di download della playlist apre lo scaricatore nativo. + Il pulsante nativo di download della playlist è sempre visualizzato, e nelle playlist pubbliche, apre il tuo scaricatore esterno. + Sovrascrivi il pulsante per scaricare le playlist Il pulsante nativo per scaricare il video apre lo scaricatore nativo. Il pulsante nativo per scaricare il video apre il tuo scaricatore esterno. - Sovrascrivi il pulsante di download video + Sovrascrivi il pulsante per scaricare i video Escluso Incluso Normale diff --git a/src/main/resources/youtube/translations/ja-rJP/missing_strings.xml b/src/main/resources/youtube/translations/ja-rJP/missing_strings.xml index cde3a88c1..62688cae7 100644 --- a/src/main/resources/youtube/translations/ja-rJP/missing_strings.xml +++ b/src/main/resources/youtube/translations/ja-rJP/missing_strings.xml @@ -1,6 +1,5 @@ - Promotion alert banner is shown. - Promotion alert banner is hidden. - Hide promotion alert banner + Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. + Long press video downloader package name diff --git a/src/main/resources/youtube/translations/ja-rJP/strings.xml b/src/main/resources/youtube/translations/ja-rJP/strings.xml index 00ca1935f..bf4a0f218 100644 --- a/src/main/resources/youtube/translations/ja-rJP/strings.xml +++ b/src/main/resources/youtube/translations/ja-rJP/strings.xml @@ -139,18 +139,18 @@ DeArrowの詳細については、ここをタップしてください。"再生リストとライブチャットのパネルが自動で開くのを無効化します。 再生リストとライブチャットのパネルが自動で開くのを無効化します。 プレーヤーのポップアップパネルを無効化 - "自動再生がオフの場合、ミックスプレイリストの自動再生を無効化できます。\n\n自動再生は YouTube の設定で変更できます: 「設定 → 自動再生 → 次の動画を自動再生」" - 自動再生がオフの場合、ミックスプレイリストの自動再生を無効化できます。\n\n自動再生は YouTube の設定で変更できます: 「設定 → 自動再生 → 次の動画を自動再生」 + "自動再生がオフの場合、音楽を再生した際にミックスプレイリストへの自動切り替えを無効化できます。\n\n自動再生は YouTube の設定で変更できます: 「設定 → 自動再生 → 次の動画を自動再生」" + 自動再生がオフの場合、音楽を再生した際に自動的にミックスプレイリストに切り替わるのを無効化できます。\n\n自動再生は YouTube の設定で変更できます: 「設定 → 自動再生 → 次の動画を自動再生」 ミックスプレイリストの切り替えを無効化 - この設定をオンにした場合、自動再生がオフになっているときに音楽を再生すると、ミックスプレイリストの自動再生が無効になります。 + 自動再生がオフの場合、音楽を再生した際にミックスプレイリストへの自動切り替えを無効化できます。\n\n自動再生は YouTube の設定で変更できます: 「設定 → 自動再生 → 次の動画を自動再生」 ライブ配信ではデフォルトに設定された再生速度を無効化します。 ライブ配信ではデフォルトに設定された再生速度を無効化します。 ライブ配信でデフォルトの再生速度を無効化 - 音楽でデフォルトの再生速度を無効化します。\n\n注意: この設定は、「YouTube Musicで聴く」バナーが表示されている動画にのみ適用されます。 - "音楽でデフォルトの再生速度を無効化します。 + 音楽を再生する際に、「デフォルトの再生速度」で設定した再生速度を無効化します。\n\n注意: この設定は、「YouTube Music で聴く」バナーが表示されている動画にのみ適用されます。 + "音楽を再生する際に、「デフォルトの再生速度」で設定した再生速度を無効化します。 -注意: この設定は、「YouTube Musicで聴く」バナーが表示されている動画にのみ適用されます。" - 音楽でデフォルトの再生速度を無効化 +注意: この設定は、「YouTube Music で聴く」バナーが表示されている動画にのみ適用されます。" + 音楽再生時にデフォルトの再生速度を無効化 エンゲージメントパネルを無効化します。 エンゲージメントパネルを無効化します。 エンゲージメントパネルを無効化 @@ -655,7 +655,9 @@ DeArrowの詳細については、ここをタップしてください。"「報告」メニューを非表示にします。 「報告」メニューを非表示にします。 「報告」を非表示 - スリープタイマーメニューを非表示 + 「スリープタイマー」メニューを非表示にします。 + 「スリープタイマー」メニューを非表示にします。 + 「スリープタイマー」を非表示 「一定音量」メニューを非表示にします。 「一定音量」メニューを非表示にします。 「一定音量」を非表示 @@ -686,6 +688,9 @@ DeArrowの詳細については、ここをタップしてください。"現在の設定: コメント欄のサイズをコンパクトに変更します。\n\n注意: コメント欄からライブチャットのリプレイを開くことができなくなります。 現在の設定: コメント欄を元のサイズに変更します。 コメントのプレビューを非表示にする方法を設定 + YouTube Premium の価格の値上げなどのプロモーションバナーを非表示にします。 + YouTube Premium の価格の値上げなどのプロモーションバナーを非表示にします。 + プロモーションバナーを非表示 「コメント」ボタンを非表示にします。 「コメント」ボタンを非表示にします。 コメントボタンを非表示 @@ -876,7 +881,7 @@ DeArrowの詳細については、ここをタップしてください。"「トレンド」ボタンを非表示 「テンプレートを使用する」ボタンを非表示にします。 「テンプレートを使用する」ボタンを非表示にします。 - 「テンプレートを使用する」ボタンを非表示 + 「テンプレートを使用する」を非表示 ショートで楽曲ボタンを押した際に表示される「このサウンドを使用する」ボタンを非表示にします。 ショートで楽曲ボタンを押した際に表示される「このサウンドを使用する」ボタンを非表示にします。 「このサウンドを使用する」を非表示 diff --git a/src/main/resources/youtube/translations/ko-rKR/missing_strings.xml b/src/main/resources/youtube/translations/ko-rKR/missing_strings.xml index bb97e8f33..dcf3889e8 100644 --- a/src/main/resources/youtube/translations/ko-rKR/missing_strings.xml +++ b/src/main/resources/youtube/translations/ko-rKR/missing_strings.xml @@ -1,4 +1,6 @@ + Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. + Long press video downloader package name Xisr Yellow diff --git a/src/main/resources/youtube/translations/ko-rKR/strings.xml b/src/main/resources/youtube/translations/ko-rKR/strings.xml index 4a79ef0bf..ed7b0fee3 100644 --- a/src/main/resources/youtube/translations/ko-rKR/strings.xml +++ b/src/main/resources/youtube/translations/ko-rKR/strings.xml @@ -147,11 +147,11 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요." 실시간 스트림에서 기본 동영상 재생 속도를 활성화합니다. 실시간 스트림에서 기본 동영상 재생 속도를 비활성화합니다. 실시간 스트림에서 기본 동영상 재생 속도 비활성화하기 - 음악에 기본 동영상 재생 속도를 활성화합니다. - "음악에 기본 동영상 재생 속도를 비활성화합니다. + 음악 동영상에서 기본 동영상 재생 속도를 활성화합니다. + "음악 동영상에서 기본 동영상 재생 속도를 비활성화합니다. 알려진 문제점: 이 설정은 'YouTube Music에서 감상하기' 배너가 포함되지 않은 동영상에는 적용되지 않을 수 있습니다." - 음악 재생 속도 비활성화하기 + 음악에서 기본 동영상 재생 속도 비활성화하기 참여 패널을 활성화합니다. 참여 패널을 비활성화합니다. 참여 패널 비활성화하기 @@ -226,9 +226,9 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요." 디버그 로그를 출력하지 않습니다. 디버그 로그를 출력합니다. 디버그 로깅 활성화하기 - Shorts에 기본 동영상 재생 속도를 적용하지 않습니다. - Shorts에 기본 동영상 재생 속도를 적용합니다. - Shorts 기본 동영상 재생 속도 활성화하기 + Shorts에서 기본 동영상 재생 속도를 비활성화합니다. + Shorts에서 기본 동영상 재생 속도를 활성화합니다. + Shorts에서 기본 동영상 재생 속도 활성화하기 앱 내에서 외부 링크를 열 때, 내부 브라우저를 사용합니다. 앱 내에서 외부 링크를 열 때, 외부 브라우저를 사용합니다. 외부 브라우저 사용하기 @@ -666,6 +666,8 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요." 신고 메뉴가 표시됩니다. 신고 메뉴가 숨겨집니다. 신고 메뉴 숨기기 + 취침 타이머 메뉴가 표시됩니다. + 취침 타이머 메뉴가 숨겨집니다. 취침 타이머 메뉴 숨기기 안정적인 볼륨 메뉴가 표시됩니다. 안정적인 볼륨 메뉴가 숨겨집니다. @@ -1456,7 +1458,7 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요." "기기 크기 정보를 최대값으로 변경합니다. 높은 기기 크기 정보가 필요한 일부 동영상에서는 고화질 동영상 값이 잠금 해제될 수 있지만 모든 동영상에는 적용되지 않습니다." 기기 크기 정보 변경하기 - iOS 동영상 코덱을 AVC (H.264), VP9 또는 AV1으로 활성화합니다.\n\n• 예전에 업로드된 동영상을 재생했는데 VP9 코덱 응답을 받는 경우, 일부 화질 값들이 누락되어 있거나 화질 메뉴를 선택할 수 없을 수 있습니다. + iOS 동영상 코덱을 AVC (H.264), VP9 또는 AV1으로 활성화합니다.\n\n• 예전에 업로드된 동영상을 재생했는데 VP9 코덱 응답을 받았을 경우, 일부 화질 값들이 누락되어 있거나 화질 메뉴를 선택할 수 없을 수 있습니다. iOS 동영상 코덱을 AVC (H.264)로 활성화합니다.\n\n• \'일부 VP9 코덱 동영상에서 누락되었던 화질 값들\'이 표시될 수 있습니다.\n• 최대 화질 값이 1080p이므로 초고화질 동영상을 재생할 수 없습니다.\n• HDR 동영상을 재생할 수 없습니다. iOS AVC (H.264) 강제로 활성화하기 "이 설정을 활성화하면 배터리 수명이 향상되고 재생 끊김 현상이 해결될 수 있습니다. diff --git a/src/main/resources/youtube/translations/pl-rPL/missing_strings.xml b/src/main/resources/youtube/translations/pl-rPL/missing_strings.xml new file mode 100644 index 000000000..62688cae7 --- /dev/null +++ b/src/main/resources/youtube/translations/pl-rPL/missing_strings.xml @@ -0,0 +1,5 @@ + + + Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. + Long press video downloader package name + diff --git a/src/main/resources/youtube/translations/pl-rPL/strings.xml b/src/main/resources/youtube/translations/pl-rPL/strings.xml index 1cbfb970f..3e842f598 100644 --- a/src/main/resources/youtube/translations/pl-rPL/strings.xml +++ b/src/main/resources/youtube/translations/pl-rPL/strings.xml @@ -127,9 +127,7 @@ Stuknij tutaj, aby dowiedzieć się więcej o DeArrow." Wyłączone Oświetlenie kinowe Włączone - Wyłączone - -Ograniczenie: ustawienie nie działa na Shortsy. + Wyłączone Wymuszone ścieżki dźwiękowe Włączone Wyłączone @@ -137,15 +135,21 @@ Ograniczenie: ustawienie nie działa na Shortsy. Ukryte Widoczne Wyskakujące panele w odtwarzaczu - Wyłączone "Włączone, gdy autoodtwarzanie jest włączone. Autoodtwarzanie może być zmienione w ustawieniach YouTube: Ustawienia → Autoodtwarzanie → Autoodtwarzanie następnego filmu" - Automatyczne zmienianie playlist mix + Wyłączone + Automatyczne przełączanie na playlisty mix + Włączenie tej funkcji wyłączy automatyczne zmienianie na YouTube Mix, podczas odtwarzania muzyki z włączonym autoodtwarzaniem. Włączona Wyłączona Domyślna prędkość odtwarzania podczas transmisji na żywo + Włączona + "Wyłączona + +Ograniczenie: To ustawienie może nie działać dla filmów bez baneru 'Słuchaj w YouTube Music'." + Domyślna prędkość odtwarzania dla muzyki Widoczny Ukryty Panel zaangażowania @@ -189,7 +193,6 @@ Ustawienia → Autoodtwarzanie → Autoodtwarzanie następnego filmu" Notki: • Wyłączenie nakładki prędkości odtwarzania przywraca zachowanie 'Przesuń, by przewinąć' ze starego układu • Wyłączenie tego ustawienia nie powoduje wymuszonego włączenia nakładki prędkości odtwarzania" - Włączenie tej funkcji wyłączy automatyczne zmienianie na YouTube Mix, podczas odtwarzania muzyki z włączonym autoodtwarzaniem. Wyłącz nakładkę prędkości odtwarzania Włączona Wyłączona @@ -221,10 +224,6 @@ Efekt uboczny: motyw Cairo powiązany m.in. z paskiem postępu filmu, nakłada s Logi do debugowania Wyłączona Włączona - "Wyłączona - -Ograniczenie: To ustawienie może nie działać dla filmów bez baneru 'Słuchaj w YouTube Music'." - Włączona Domyślna prędkość odtwarzania w Shortsach Wyłączona Włączona @@ -658,6 +657,8 @@ Słowa z wielkimi literami w środku muszą być wpisane z odpowiednią wielkoś Widoczne Ukryte Menu od zgłaszania + Widoczne + Ukryte Menu od wyłącznika czasowego Widoczne Ukryte @@ -1173,7 +1174,6 @@ Stuknij i przytrzymaj, by otworzyć ustawienia YouTube." Podgląd filmu pojawia się nad paskiem postępu filmów Stary wygląd podglądu filmów Niewidoczne - Domyślna prędkość odtwarzania dla muzyki Widoczne Stare menu od jakości filmu O integracji diff --git a/src/main/resources/youtube/translations/pt-rBR/missing_strings.xml b/src/main/resources/youtube/translations/pt-rBR/missing_strings.xml index c16e60392..fe7a0397b 100644 --- a/src/main/resources/youtube/translations/pt-rBR/missing_strings.xml +++ b/src/main/resources/youtube/translations/pt-rBR/missing_strings.xml @@ -15,15 +15,11 @@ Settings → Autoplay → Autoplay next video" Limitation: This setting may not apply to videos that do not include the 'Listen on YouTube Music' banner." Disable playback speed for music + Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. + Long press video downloader package name Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore Match full word - Ambient mode menu is shown. - Ambient mode menu is hidden. - Hide Ambient mode menu - Promotion alert banner is shown. - Promotion alert banner is hidden. - Hide promotion alert banner MMT Blue MMT Green MMT Yellow diff --git a/src/main/resources/youtube/translations/pt-rBR/strings.xml b/src/main/resources/youtube/translations/pt-rBR/strings.xml index 22c5304e4..6d40c989f 100644 --- a/src/main/resources/youtube/translations/pt-rBR/strings.xml +++ b/src/main/resources/youtube/translations/pt-rBR/strings.xml @@ -592,6 +592,9 @@ Palavras com letras maiúsculas no meio devem ser inseridas com maiúsculas (ou O botão minimizar será exibido. O botão minimizar está oculto. Ocultar botão minimizar + O menu modo ambiente será exibido. + O menu modo ambiente está oculto. + Ocultar menu do Modo Ambiente O menu faixa de áudio será exibido. O menu faixa de áudio está oculto. Ocultar menu faixa de áudio @@ -634,6 +637,8 @@ Palavras com letras maiúsculas no meio devem ser inseridas com maiúsculas (ou O menu denunciar será exibido. O menu denunciar está oculto. Ocultar menu denunciar + O menu Timer de suspensão será exibido. + O menu Timer de suspensão está oculto. Ocultar menu de Timer de suspensão O menu volume estável será exibido. O menu volume estável está oculto. @@ -665,6 +670,9 @@ Palavras com letras maiúsculas no meio devem ser inseridas com maiúsculas (ou Isto altera o tamanho da seção de comentários, por isso é impossível abrir um replay ao vivo do chat na seção de comentários. Isto não altera o tamanho da seção de comentários, por isso é possível abrir o replay do chat ao vivo na seção de comentários. Ocultar tipo de comentário de visualização + O banner de alerta de promoção será exibido. + O banner de alerta de promoção está oculto. + Ocultar banner de alerta de promoção O botão comentários será exibido. O botão comentários está oculto. Ocultar botão comentários diff --git a/src/main/resources/youtube/translations/ru-rRU/missing_strings.xml b/src/main/resources/youtube/translations/ru-rRU/missing_strings.xml index e6e75c299..6e2793cbe 100644 --- a/src/main/resources/youtube/translations/ru-rRU/missing_strings.xml +++ b/src/main/resources/youtube/translations/ru-rRU/missing_strings.xml @@ -1,23 +1,7 @@ - "Auto switch mix playlists is enabled when autoplay is turned on. - -Autoplay can be changed in YouTube settings: -Settings → Autoplay → Autoplay next video" - Auto switch mix playlists is disabled. - Disable switch mix playlists - Enabling this feature will disable automatic switching to YouTube Mix when playing music while autoplay is turned on. - Default playback speed is enabled for music. - "Default playback speed is disabled for music. - -Limitation: This setting may not apply to videos that do not include the 'Listen on YouTube Music' banner." - Disable playback speed for music - Ambient mode menu is shown. - Ambient mode menu is hidden. - Hide Ambient mode menu - Promotion alert banner is shown. - Promotion alert banner is hidden. - Hide promotion alert banner + Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. + Long press video downloader package name Xisr Yellow Adjust: Mark Start and End Time for segment Verify the Segment diff --git a/src/main/resources/youtube/translations/ru-rRU/strings.xml b/src/main/resources/youtube/translations/ru-rRU/strings.xml index 86a907329..f899db192 100644 --- a/src/main/resources/youtube/translations/ru-rRU/strings.xml +++ b/src/main/resources/youtube/translations/ru-rRU/strings.xml @@ -138,9 +138,22 @@ Всплывающие панели плеера включены. Всплывающие панели плеера отключены. Всплывающие панели плеера + "Авто-переключение списков \"Джем\", при активном автовоспроизведении, включено. + +Автовоспроизведение настраивается в: +Настройки YouTube → Автовоспроизведение → Автовоспроизведение следующего видео" + Авто-переключатель списков \"Джем\" отключен. + Переключатель списков \"Джем\" + Авто-переключение списков \"Джем\", при активном автовоспроизведении, отключено. Скорость воспроизведения в трансляциях включена. Скорость воспроизведения в трансляциях отключена. Скорость воспроизведения в трансляциях + Скорость воспроизведения по умолчанию для музыки включена. + "Скорость воспроизведения по умолчанию для музыки отключена. + +Ограничение: +Этот параметр не может применяться к видео, которые не содержат баннер 'Слушать в YouTube Music'." + Скорость воспроизведения для музыки Панель взаимодействия включена. Панель взаимодействия отключена. Панель взаимодействия @@ -603,6 +616,9 @@ Shorts Кнопка \"Свернуть\" отображена. Кнопка \"Свернуть\" скрыта. Кнопка \"Свернуть\" + Меню отображено. + Меню скрыто. + Меню режима окружающей подсветки Меню \"Звуковая дорожка\" отображено. Меню \"Звуковая дорожка\" скрыто. Меню \"Звуковая дорожка\" @@ -645,6 +661,8 @@ Shorts Меню \"Пожаловаться\" отображено. Меню \"Пожаловаться\" скрыто. Меню \"Пожаловаться\" + Меню таймера сна отображено. + Меню таймера сна скрыто. Меню таймера сна Меню \"Постоянный уровень громкости\" отображено. Меню \"Постоянный уровень громкости\" скрыто. @@ -676,6 +694,9 @@ Shorts Изменяет размер секции комментариев, повтор онлайн чата будет недоступен. Не изменяет размер секции комментариев, повтор онлайн чата будет доступен. Тип скрытия предпросмотра комментария + Баннер отображен. + Баннер скрыт. + Баннер оповещения о промо акциях Кнопка \"Комментарии\" отображена. Кнопка \"Комментарии\" скрыта. Кнопка \"Комментарии\" diff --git a/src/main/resources/youtube/translations/tr-rTR/missing_strings.xml b/src/main/resources/youtube/translations/tr-rTR/missing_strings.xml index 3a2d4e593..ac7a03fe4 100644 --- a/src/main/resources/youtube/translations/tr-rTR/missing_strings.xml +++ b/src/main/resources/youtube/translations/tr-rTR/missing_strings.xml @@ -20,6 +20,8 @@ Limitation: This setting may not apply to videos that do not include the 'Listen Disable playback speed for music Package name of your installed external downloader app, such as YTDLnis. Playlist downloader package name + Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. + Long press video downloader package name Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore Surrounding a keyword/phrase with double-quotes will prevent partial matches of video titles and channel names.<br><br>For example,<br><b>\"ai\"</b> will hide the video: <b>How does AI work?</b><br>but will not hide: <b>What does fair use mean?</b> @@ -31,6 +33,8 @@ Limitation: This setting may not apply to videos that do not include the 'Listen Ambient mode menu is shown. Ambient mode menu is hidden. Hide Ambient mode menu + Sleep timer menu is shown. + Sleep timer menu is hidden. Hide Sleep timer menu Promotion alert banner is shown. Promotion alert banner is hidden. diff --git a/src/main/resources/youtube/translations/uk-rUA/missing_strings.xml b/src/main/resources/youtube/translations/uk-rUA/missing_strings.xml new file mode 100644 index 000000000..62688cae7 --- /dev/null +++ b/src/main/resources/youtube/translations/uk-rUA/missing_strings.xml @@ -0,0 +1,5 @@ + + + Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. + Long press video downloader package name + diff --git a/src/main/resources/youtube/translations/uk-rUA/strings.xml b/src/main/resources/youtube/translations/uk-rUA/strings.xml index 3ef436d29..b3daf64f5 100644 --- a/src/main/resources/youtube/translations/uk-rUA/strings.xml +++ b/src/main/resources/youtube/translations/uk-rUA/strings.xml @@ -142,7 +142,7 @@ Типову швидкість відтворення увімкнено для музики. "Типову швидкість відтворення вимкнено для музики. -Застереження: Це налаштування застосовується лише до відео, які містять напис 'Слухати через YouTube Music'." +Застереження: Це налаштування може не застосовуватись до відео, які не містять напис 'Слухати через YouTube Music'." Вимкнути швидкість відтворення для музики Панель залучення увімкнено. Панель залучення вимкнено. @@ -652,6 +652,8 @@ Меню Поскаржитися показується. Меню Поскаржитися приховано. Приховати меню Поскаржитися + Меню Таймер сну показується. + Меню Таймер сну приховано. Приховати меню Таймер сну Меню стабілізації гучності показується. Меню стабілізації гучності приховано. diff --git a/src/main/resources/youtube/translations/vi-rVN/missing_strings.xml b/src/main/resources/youtube/translations/vi-rVN/missing_strings.xml index c16e60392..f0eaa3ea4 100644 --- a/src/main/resources/youtube/translations/vi-rVN/missing_strings.xml +++ b/src/main/resources/youtube/translations/vi-rVN/missing_strings.xml @@ -3,27 +3,11 @@ Don\'t show again Courses / Learning Playables - "Auto switch mix playlists is enabled when autoplay is turned on. - -Autoplay can be changed in YouTube settings: -Settings → Autoplay → Autoplay next video" - Auto switch mix playlists is disabled. - Disable switch mix playlists - Enabling this feature will disable automatic switching to YouTube Mix when playing music while autoplay is turned on. - Default playback speed is enabled for music. - "Default playback speed is disabled for music. - -Limitation: This setting may not apply to videos that do not include the 'Listen on YouTube Music' banner." - Disable playback speed for music + Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. + Long press video downloader package name Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore Match full word - Ambient mode menu is shown. - Ambient mode menu is hidden. - Hide Ambient mode menu - Promotion alert banner is shown. - Promotion alert banner is hidden. - Hide promotion alert banner MMT Blue MMT Green MMT Yellow diff --git a/src/main/resources/youtube/translations/vi-rVN/strings.xml b/src/main/resources/youtube/translations/vi-rVN/strings.xml index 1d0c8b0af..911d9e80b 100644 --- a/src/main/resources/youtube/translations/vi-rVN/strings.xml +++ b/src/main/resources/youtube/translations/vi-rVN/strings.xml @@ -126,9 +126,7 @@ Nhấn vào đây để tìm hiểu thêm về DeArrow." Chế độ môi trường xung quanh đã được vô hiệu hoá. Tắt chế độ môi trường xung quanh Buộc tự động phát bản âm thanh đã được bật. - Buộc tự động phát bản âm thanh đã bị tắt. - -Hạn chế: Tính năng này hiện chưa áp dụng cho trình Shorts. + Buộc tự động phát bản âm thanh đã bị tắt. Tắt buộc tự động phát bản âm thanh Tự động hiển thị phụ đề khi phát video có phụ đề đã bật. Tự động hiển thị phụ đề khi phát video có phụ đề đã tắt. @@ -136,9 +134,21 @@ Hạn chế: Tính năng này hiện chưa áp dụng cho trình Shorts.Bảng tự động bật lên khi phát video (Danh sách phát, Trò chuyện trực tiếp,...) đã bật. Bảng tự động bật lên khi phát video (Danh sách phát, Trò chuyện trực tiếp,...) đã tắt. Tắt bảng tự động bật lên khi phát + "Tự động chuyển sang danh sách phát kết hợp đã được kích hoạt khi bật tính năng Tự động phát. + +Tính năng Tự động phát có thể thay đổi trong Cài đặt YouTube: +Cài đặt → Tự động phát → Tự động phát video tiếp theo" + Tự động chuyển sang danh sách phát kết hợp đã bị vô hiệu hóa. + Tắt chuyển đổi danh sách phát kết hợp + Việc bật tính năng này sẽ vô hiệu hóa việc tự động chuyển sang YouTube Mix khi phát nhạc đồng thời chế độ phát tự động cũng được bật. Tốc độ phát mặc định được bật khi xem sự kiện trực tiếp và buổi công chiếu. Tốc độ phát mặc định bị tắt khi xem sự kiện trực tiếp và buổi công chiếu. Tắt tùy chọn tốc độ phát khi xem trực tiếp + Tốc độ phát mặc định đã được kích hoạt khi phát nhạc. + "Tốc độ phát mặc định đã bị vô hiệu hoá khi phát nhạc. + +Hạn chế: Cài đặt này có thể sẽ không áp dụng cho các video không bao gồm biểu ngữ 'Nghe nhạc trên YouTube Music'." + Tắt tùy chọn tốc độ phát khi phát nhạc Bảng điều khiển tương tác đã được bật. Bảng tương tác đã vô hiệu hóa. Vô hiệu hóa bảng tương tác @@ -597,6 +607,9 @@ Bộ lọc có phân biệt chữ hoa chữ thường, vì vậy bạn cần nh Nút Thu gọn được hiển thị. Nút Thu gọn đã ẩn. Ẩn nút Thu gọn + Mục Chế độ môi trường xung quanh được hiển thị. + Mục Chế độ môi trường xung quanh đã ẩn. + Ẩn mục Chế độ môi trường xung quanh Mục Bản âm thanh được hiển thị. Mục Bản âm thanh đã ẩn. Ẩn mục Bản âm thanh @@ -639,6 +652,8 @@ Bộ lọc có phân biệt chữ hoa chữ thường, vì vậy bạn cần nh Mục Báo vi phạm được hiển thị. Mục Báo vi phạm đã ẩn. Ẩn mục Báo cáo + Mục Hẹn giờ đi ngủ đã hiển thị. + Mục Hẹn giờ đi ngủ đã ẩn. Ẩn mục Hẹn giờ đi ngủ Mục Âm lượng ổn định được hiển thị. Mục Âm lượng ổn định đã ẩn. @@ -670,6 +685,9 @@ Bộ lọc có phân biệt chữ hoa chữ thường, vì vậy bạn cần nh Tuỳ chọn này thay đổi kích thước của phần bình luận, khiến bạn không thể mở Phát lại trò chuyện trực tiếp trong phần bình luận. Tuỳ chọn này không thay đổi kích thước của phần bình luận, vì vậy có thể mở Phát lại trò chuyện trực tiếp trong phần bình luận. Ẩn nội dung bình luận + Biểu ngữ thông báo khuyến mãi đã hiển thị. + Biểu ngữ thông báo khuyến mãi đã ẩn. + Ẩn biểu ngữ thông báo khuyến mãi Nút bình luận được hiển thị. Nút bình luận đã ẩn. Ẩn nút Bình luận @@ -814,9 +832,9 @@ Phụ đề" Nút Chia sẻ được hiển thị. Nút Chia sẻ đã ẩn . Ẩn nút Chia sẻ - Hiển thị trong phần Lịch sử xem. - Ẩn trong phần Lịch sử xem. - Ẩn trong phần Lịch sử xem + Hiển thị trong phần Nhật ký xem. + Ẩn trong phần Nhật ký xem. + Ẩn trong phần Nhật ký xem Hiển thị trong thẻ Trang chủ và các video có liên quan. Ẩn trên thẻ Trang chủ và các video liên quan. Ẩn trên thẻ Trang chủ và các video liên quan @@ -1013,8 +1031,8 @@ Nhấn và giữ để hoàn tác." \"Nhấn để mở hộp thoại Danh sách trắng. Nhấn và giữ để mở hộp thoại cài đặt Danh sách trắng. Hiển thị nút Danh sách trắng - Nút tải xuống danh sách phát sẽ mở trình tải xuống gốc trong ứng dụng. - Nút tải xuống danh sách phát sẽ mở trình tải xuống bên ngoài của bạn. + Nếu được hiển thị, nút tải xuống danh sách phát sẽ mở trình tải xuống gốc trong ứng dụng. + Nút tải xuống danh sách phát sẽ luôn được hiển thị, và khi thao tác sẽ mở trình tải xuống bên ngoài đối với các danh sách phát công khai. Ghi đè nút tải xuống danh sách phát Nút tải xuống video sẽ mở trình tải xuống gốc trong ứng dụng. Nút tải xuống video sẽ mở trình tải xuống bên ngoài của bạn. @@ -1100,8 +1118,8 @@ Nhấn và giữ để mở hộp thoại cài đặt Danh sách trắng.Ẩn video theo từ khoá hoặc lượt xem. Bộ lọc video Video - Thay đổi cài đặt liên quan đến Lịch sử xem. - Lịch sử xem + Thay đổi cài đặt liên quan đến Nhật ký xem. + Nhật ký xem Lề trên bảng nút thao tác nhanh phải nằm trong khoảng 0 - 32. Đã đặt lại về mặc định. Giá trị khoảng cách từ thanh tiến trình đến bảng nút thao tác nhanh trong khoảng từ 0 đến 32. Lề trên bảng nút thao tác nhanh @@ -1462,17 +1480,17 @@ AVC (H.264) có độ phân giải tối đa 1080p, và phát video sẽ dùng n • Tắt tuỳ chọn này có thể hiển thị quảng cáo dạng video." Hoán đổi nút Tạo và nút Thông báo Nguyên gốc - • Lịch sử xem bị chặn. - "• Tuân theo cài đặt lịch sử xem của tài khoản Google. -• Lịch sử xem có thể không hoạt động do DNS hoặc VPN." - • Tuân theo cài đặt Lịch sử xem của tài khoản Google. - Trạng thái của Lịch sử xem - Nhấn để mở mục quản lý Lịch sử xem trên YouTube. + • Nhật ký xem bị chặn. + "• Tuân theo cài đặt Nhật ký xem của tài khoản Google. +• Nhật ký xem có thể không hoạt động do DNS hoặc VPN." + • Tuân theo cài đặt Nhật ký xem của tài khoản Google. + Trạng thái + Nhấn để mở mục quản lý Nhật ký xem trên YouTube. Quản lý toàn bộ lịch sử Gốc Thay thế miền - Chặn Lịch sử xem - Kiểu Lịch sử xem + Chặn Nhật ký xem + Kiểu nhật ký Không thể thêm kênh \'%1$s\' vào Danh sách trắng %2$s. Kênh \'%1$s\' đã được thêm vào Danh sách trắng %2$s. Không có kênh nào nằm trong Danh sách trắng. diff --git a/src/main/resources/youtube/translations/zh-rCN/missing_strings.xml b/src/main/resources/youtube/translations/zh-rCN/missing_strings.xml index c31ecf88c..0ae3cf346 100644 --- a/src/main/resources/youtube/translations/zh-rCN/missing_strings.xml +++ b/src/main/resources/youtube/translations/zh-rCN/missing_strings.xml @@ -12,6 +12,8 @@ Settings → Autoplay → Autoplay next video" Limitation: This setting may not apply to videos that do not include the 'Listen on YouTube Music' banner." Disable playback speed for music + Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. + Long press video downloader package name Ambient mode menu is shown. Ambient mode menu is hidden. Hide Ambient mode menu diff --git a/src/main/resources/youtube/translations/zh-rCN/strings.xml b/src/main/resources/youtube/translations/zh-rCN/strings.xml index 63f0ef4c7..9e86d08d4 100644 --- a/src/main/resources/youtube/translations/zh-rCN/strings.xml +++ b/src/main/resources/youtube/translations/zh-rCN/strings.xml @@ -639,6 +639,8 @@ 举报菜单已显示 举报菜单已隐藏 隐藏举报菜单 + 睡眠计时器已显示 + 睡眠计时器已隐藏 隐藏睡眠计时器菜单 稳定音量菜单已显示 稳定音量菜单已隐藏 diff --git a/src/main/resources/youtube/translations/zh-rTW/missing_strings.xml b/src/main/resources/youtube/translations/zh-rTW/missing_strings.xml index f5d167ae1..7582f3f14 100644 --- a/src/main/resources/youtube/translations/zh-rTW/missing_strings.xml +++ b/src/main/resources/youtube/translations/zh-rTW/missing_strings.xml @@ -1,24 +1,8 @@ - "Auto switch mix playlists is enabled when autoplay is turned on. - -Autoplay can be changed in YouTube settings: -Settings → Autoplay → Autoplay next video" - Auto switch mix playlists is disabled. - Disable switch mix playlists - Enabling this feature will disable automatic switching to YouTube Mix when playing music while autoplay is turned on. - Default playback speed is enabled for music. - "Default playback speed is disabled for music. - -Limitation: This setting may not apply to videos that do not include the 'Listen on YouTube Music' banner." - Disable playback speed for music + Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. + Long press video downloader package name Match full word - Ambient mode menu is shown. - Ambient mode menu is hidden. - Hide Ambient mode menu - Promotion alert banner is shown. - Promotion alert banner is hidden. - Hide promotion alert banner Xisr Yellow Adjust: Mark Start and End Time for segment Verify the Segment diff --git a/src/main/resources/youtube/translations/zh-rTW/strings.xml b/src/main/resources/youtube/translations/zh-rTW/strings.xml index 938fe0fb2..b0a233e03 100644 --- a/src/main/resources/youtube/translations/zh-rTW/strings.xml +++ b/src/main/resources/youtube/translations/zh-rTW/strings.xml @@ -138,9 +138,21 @@ 自動播放器彈出面板已停用 自動播放器彈出面板已啟用 停用播放器彈出面板 + "自動播放開啟時會啟用自動切換混合播放清單。 + +可以在 YouTube 設定中變更自動播放: +設定 → 自動播放 → 自動播放下一個影片" + 自動切換混合播放清單已停用。 + 停用切換混合播放列表 + 啟用此功能將禁止在自動播放開啟時播放音樂時自動切換到 YouTube Mix。 直播預設播放速度已啟用 直播預設播放速度已停用 在直播中停用預設播放速度 + 音樂的預設播放速度已啟用。 + "音樂的預設播放速度被停用。 + +限制:此設定可能不適用於不包含「在 YouTube 音樂上收聽」橫幅影片。" + 停用音樂的播放速度 啟用互動面板 停用互動面板 停用互動面板 @@ -594,6 +606,9 @@ 折疊按鈕已顯示 折疊按鈕已隱藏 隱藏折疊按鈕 + 微光模式選單已顯示。 + 微光模式選單已隱藏。 + 隱藏微光模式選單 音軌選單已顯示 音軌選單已隱藏 隱藏音軌選單 @@ -636,6 +651,8 @@ 舉報選單已顯示 舉報選單已隱藏 隱藏舉報選單 + 顯示睡眠定時器選單。 + 睡眠定時器選單已隱藏。 隱藏睡眠定時器選單 穩定音量選單已顯示 穩定音量選單已隱藏 @@ -667,6 +684,9 @@ 這會改變評論區的大小,因此無法在評論區打開直播聊天重播。 這不會改變評論區的大小,因此可以在評論區打開直播聊天重播。 預覽評論類型 + 顯示促銷警報橫幅。 + 促銷警報橫幅已隱藏。 + 隱藏促銷警報橫幅 評論按鈕已顯示 評論按鈕已隱藏 隱藏評論按鈕 From 346b3a543838e19c8bdec145b9d478d2b839acd1 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Mon, 9 Sep 2024 10:47:26 +0000 Subject: [PATCH 31/63] chore(release): 2.229.0-dev.4 [skip ci] # [2.229.0-dev.4](https://github.com/anddea/revanced-patches/compare/v2.229.0-dev.3...v2.229.0-dev.4) (2024-09-09) ### Features * **YouTube - Overlay buttons:** Add an option to select a different downloader on long press ([6f47b80](https://github.com/anddea/revanced-patches/commit/6f47b80d89abf9ce4b786a9eb7fa3f8db7257edc)) * **YouTube Music - Custom branding icon:** Add patch option `RestoreOldSplashIcon` ([e272302](https://github.com/anddea/revanced-patches/commit/e27230246fdf82a35fe035f57a3cc02c16b75664)) * **YouTube Music:** Rename `Enable Cairo splash animation` to `Disable Cairo splash animation` ([37373c9](https://github.com/anddea/revanced-patches/commit/37373c95f571545e220f125ea8645ade3459e045)) --- CHANGELOG.md | 9 +++++++++ README.md | 2 +- gradle.properties | 2 +- patches.json | 2 +- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f5be06abf..7439e018a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +# [2.229.0-dev.4](https://github.com/anddea/revanced-patches/compare/v2.229.0-dev.3...v2.229.0-dev.4) (2024-09-09) + + +### Features + +* **YouTube - Overlay buttons:** Add an option to select a different downloader on long press ([6f47b80](https://github.com/anddea/revanced-patches/commit/6f47b80d89abf9ce4b786a9eb7fa3f8db7257edc)) +* **YouTube Music - Custom branding icon:** Add patch option `RestoreOldSplashIcon` ([e272302](https://github.com/anddea/revanced-patches/commit/e27230246fdf82a35fe035f57a3cc02c16b75664)) +* **YouTube Music:** Rename `Enable Cairo splash animation` to `Disable Cairo splash animation` ([37373c9](https://github.com/anddea/revanced-patches/commit/37373c95f571545e220f125ea8645ade3459e045)) + # [2.229.0-dev.3](https://github.com/anddea/revanced-patches/compare/v2.229.0-dev.2...v2.229.0-dev.3) (2024-09-06) diff --git a/README.md b/README.md index 5930abf14..0ef9336f6 100644 --- a/README.md +++ b/README.md @@ -88,9 +88,9 @@ Check the [wiki](https://github.com/anddea/revanced-patches/wiki) for resources | `Custom branding icon for YouTube Music` | Changes the YouTube Music app icon to the icon specified in options.json. | 6.29.58 ~ 7.17.51 | | `Custom branding name for YouTube Music` | Renames the YouTube Music app to the name specified in options.json. | 6.29.58 ~ 7.17.51 | | `Custom header for YouTube Music` | Applies a custom header in the top left corner within the app. | 6.29.58 ~ 7.17.51 | +| `Disable Cairo splash animation` | Adds an option to disable Cairo splash animation. | 7.06.54 ~ 7.17.51 | | `Disable auto captions` | Adds an option to disable captions from being automatically enabled. | 6.29.58 ~ 7.17.51 | | `Disable dislike redirection` | Adds an option to disable redirection to the next track when clicking the Dislike button. | 6.29.58 ~ 7.17.51 | -| `Enable Cairo splash animation` | Adds an option to enable Cairo splash animation. | 7.08.54 ~ 7.17.51 | | `Enable OPUS codec` | Adds an option to use the OPUS audio codec instead of the MP4A audio codec. | 6.29.58 ~ 7.17.51 | | `Enable debug logging` | Adds an option to enable debug logging. | 6.29.58 ~ 7.17.51 | | `Enable landscape mode` | Adds an option to enable landscape mode when rotating the screen on phones. | 6.29.58 ~ 7.17.51 | diff --git a/gradle.properties b/gradle.properties index c126c99e4..b9dc9a56e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.parallel = true org.gradle.caching = true kotlin.code.style = official -version = 2.229.0-dev.3 +version = 2.229.0-dev.4 diff --git a/patches.json b/patches.json index 395b061eb..868b5b060 100644 --- a/patches.json +++ b/patches.json @@ -1 +1 @@ -[{"name":"Alternative thumbnails","description":"Adds options to replace video thumbnails using the DeArrow API or image captures from the video.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Ambient mode control","description":"Adds options to disable Ambient mode and to bypass Ambient mode restrictions.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Amoled","description":"Applies a pure black theme to some components.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Bitrate default value","description":"Sets the audio quality to \u0027Always High\u0027 when you first install the app.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Bypass image region restrictions","description":"Adds an option to use a different host for static images, so that images blocked in some countries can be received.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Bypass image region restrictions","description":"Adds an option to use a different host for static images, so that images blocked in some countries can be received.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Certificate spoof","description":"Enables YouTube Music to work with Android Auto by spoofing the YouTube Music certificate.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change package name","description":"Changes the package name for Reddit to the name specified in options.json.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"PackageNameReddit","default":"com.reddit.frontpage","values":{"Clone":"com.reddit.frontpage.revanced","Default":"com.reddit.frontpage.rvx","Original":"com.reddit.frontpage"},"title":"Package name of Reddit","description":"The name of the package to rename the app to.","required":true}]},{"name":"Change player flyout menu toggles","description":"Adds an option to use text toggles instead of switch toggles within the additional settings menu.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change share sheet","description":"Add option to change from in-app share sheet to system share sheet.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change share sheet","description":"Add option to change from in-app share sheet to system share sheet.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change start page","description":"Adds an option to set which page the app opens in instead of the homepage.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change start page","description":"Adds an option to set which page the app opens in instead of the homepage.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change version code","description":"Changes the version code of the app to the value specified in options.json. Except when mounting, this can prevent app stores from updating the app and allow the app to be installed over an existing installation that has a higher version code. By default, the highest version code is set.","compatiblePackages":null,"use":false,"requiresIntegrations":false,"options":[{"key":"ChangeVersionCode","default":false,"values":null,"title":"Change version code","description":"Changes the version code of the app.","required":true},{"key":"VersionCode","default":"2147483647","values":null,"title":"Version code","description":"The version code to use. (1 ~ 2147483647)","required":true}]},{"name":"Custom Shorts action buttons","description":"Changes, at compile time, the icon of the action buttons of the Shorts player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"IconType","default":"round","values":{"Outline":"outline","OutlineCircle":"outlinecircle","Round":"round","YouTube":"youtube","YouTubeOutline":"youtubeoutline"},"title":"Shorts icon style ","description":"The style of the icons for the action buttons in the Shorts player.","required":true}]},{"name":"Custom branding icon for YouTube","description":"Changes the YouTube app icon to the icon specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppIcon","default":"Xisr Yellow","values":{"AFN Blue":"afn_blue","AFN Red":"afn_red","MMT":"mmt","MMT Blue":"mmt_blue","MMT Green":"mmt_green","MMT Yellow":"mmt_yellow","Revancify Blue":"revancify_blue","Revancify Red":"revancify_red","Vanced Black":"vanced_black","Vanced Light":"vanced_light","Xisr Yellow":"xisr_yellow","YouTube":"youtube"},"title":"App icon","description":"The icon to apply to the app.\n\nIf a path to a folder is provided, the folder must contain the following folders:\n\n- mipmap-xxxhdpi\n- mipmap-xxhdpi\n- mipmap-xhdpi\n- mipmap-hdpi\n- mipmap-mdpi\n\nEach of these folders must contain the following files:\n\n- adaptiveproduct_youtube_background_color_108.png\n- adaptiveproduct_youtube_foreground_color_108.png\n- ic_launcher.png\n- ic_launcher_round.png","required":true},{"key":"ChangeHeader","default":true,"values":null,"title":"Change header","description":"Apply the custom branding icon to the header.","required":true},{"key":"CustomHeader","default":"","values":null,"title":"Custom header","description":"The header to apply to the app.\n\nIf a path to a folder is provided, the folder must contain one or more of the following folders, depending on the DPI of the device:\n\n- drawable-xxxhdpi\n- drawable-xxhdpi\n- drawable-xhdpi\n- drawable-hdpi\n- drawable-mdpi\n\nEach of the folders must contain all of the following files:\n\n- yt_premium_wordmark_header_dark.png\n- yt_premium_wordmark_header_light.png\n- yt_wordmark_header_dark.png\n- yt_wordmark_header_light.png\n\nThe image dimensions must be as follows:\n- drawable-xxxhdpi: 512px x 192px\n- drawable-xxhdpi: 387px x 144px\n- drawable-xhdpi: 258px x 96px\n- drawable-hdpi: 194px x 72px\n- drawable-mdpi: 129px x 48px","required":true},{"key":"ChangeSplashIcon","default":true,"values":null,"title":"Change splash icons","description":"Apply the custom branding icon to the splash screen.","required":true},{"key":"RestoreOldSplashAnimation","default":true,"values":null,"title":"Restore old splash animation","description":"Restore the old style splash animation.","required":true}]},{"name":"Custom branding icon for YouTube Music","description":"Changes the YouTube Music app icon to the icon specified in options.json.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppIcon","default":"Xisr Yellow","values":{"AFN Blue":"afn_blue","AFN Red":"afn_red","MMT":"mmt","MMT Blue":"mmt_blue","MMT Green":"mmt_green","MMT Yellow":"mmt_yellow","Revancify Blue":"revancify_blue","Revancify Red":"revancify_red","Vanced Black":"vanced_black","Vanced Light":"vanced_light","Xisr Yellow":"xisr_yellow","YouTube Music":"youtube_music"},"title":"App icon","description":"The icon to apply to the app.\n\nIf a path to a folder is provided, the folder must contain the following folders:\n\n- mipmap-xxxhdpi\n- mipmap-xxhdpi\n- mipmap-xhdpi\n- mipmap-hdpi\n- mipmap-mdpi\n\nEach of these folders must contain the following files:\n\n- adaptiveproduct_youtube_music_background_color_108.png\n- adaptiveproduct_youtube_music_foreground_color_108.png\n- ic_launcher_release.png","required":true},{"key":"ChangeHeader","default":true,"values":null,"title":"Change header","description":"Apply the custom branding icon to the header.","required":true},{"key":"ChangeSplashIcon","default":true,"values":null,"title":"Change splash icons","description":"Apply the custom branding icon to the splash screen.","required":true}]},{"name":"Custom branding name for Reddit","description":"Renames the Reddit app to the name specified in options.json.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppName","default":"Reddit","values":{"Default":"RVX Reddit","Original":"Reddit"},"title":"App name","description":"The name of the app.","required":true}]},{"name":"Custom branding name for YouTube","description":"Renames the YouTube app to the name specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppName","default":"RVX","values":{"ReVanced Extended":"ReVanced Extended","RVX":"RVX","YouTube RVX":"YouTube RVX","YouTube":"YouTube"},"title":"App name","description":"The name of the app.","required":true}]},{"name":"Custom branding name for YouTube Music","description":"Renames the YouTube Music app to the name specified in options.json.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppNameNotification","default":"RVX Music","values":{"ReVanced Extended Music":"ReVanced Extended Music","RVX Music":"RVX Music","YouTube Music":"YouTube Music","YT Music":"YT Music"},"title":"App name in notification panel","description":"The name of the app as it appears in the notification panel.","required":true},{"key":"AppNameLauncher","default":"RVX Music","values":{"ReVanced Extended Music":"ReVanced Extended Music","RVX Music":"RVX Music","YouTube Music":"YouTube Music","YT Music":"YT Music"},"title":"App name in launcher","description":"The name of the app as it appears in the launcher.","required":true}]},{"name":"Custom double tap length","description":"Adds Double-tap to seek values that are specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"DoubleTapLengthArrays","default":"3, 5, 10, 15, 20, 30, 60, 120, 180","values":null,"title":"Double-tap to seek values","description":"A list of custom Double-tap to seek lengths to be added, separated by commas.","required":true}]},{"name":"Custom header for YouTube Music","description":"Applies a custom header in the top left corner within the app.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"CustomHeader","default":"custom_branding_icon","values":{"Custom branding icon":"custom_branding_icon"},"title":"Custom header","description":"The header to apply to the app.\n\nPatch option \u0027Custom branding icon\u0027 applies only when:\n\n1. Patch \u0027Custom branding icon for YouTube Music\u0027 is included.\n2. Patch option for \u0027Custom branding icon for YouTube Music\u0027 is selected from the preset.\n\nIf a path to a folder is provided, the folder must contain one or more of the following folders, depending on the DPI of the device:\n\n- drawable-xxxhdpi\n- drawable-xxhdpi\n- drawable-xhdpi\n- drawable-hdpi\n- drawable-mdpi\n\nEach of the folders must contain all of the following files:\n\n- action_bar_logo.png\n- logo_music.png\n- ytm_logo.png\n\nThe image \u0027action_bar_logo.png\u0027 dimensions must be as follows:\n\n- drawable-xxxhdpi: 320px x 96px\n- drawable-xxhdpi: 240px x 72px\n- drawable-xhdpi: 160px x 48px\n- drawable-hdpi: 121px x 36px\n- drawable-mdpi: 80px x 24px\n\nThe image \u0027logo_music.png\u0027 dimensions must be as follows:\n\n- drawable-xxxhdpi: 576px x 200px\n- drawable-xxhdpi: 432px x 150px\n- drawable-xhdpi: 288px x 100px\n- drawable-hdpi: 217px x 76px\n- drawable-mdpi: 144px x 50px\n\nThe image \u0027ytm_logo.png\u0027 dimensions must be as follows:\n\n- drawable-xxxhdpi: 412px x 144px\n- drawable-xxhdpi: 309px x 108px\n- drawable-xhdpi: 206px x 72px\n- drawable-hdpi: 155px x 54px\n- drawable-mdpi: 103px x 36px","required":true}]},{"name":"Description components","description":"Adds options to hide and disable description components.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable QUIC protocol","description":"Adds an option to disable CronetEngine\u0027s QUIC protocol.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable auto audio tracks","description":"Adds an option to disable audio tracks from being automatically enabled.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable auto captions","description":"Adds an option to disable captions from being automatically enabled.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable auto captions","description":"Adds an option to disable captions from being automatically enabled.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable dislike redirection","description":"Adds an option to disable redirection to the next track when clicking the Dislike button.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable haptic feedback","description":"Adds options to disable haptic feedback when swiping in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable resuming Shorts on startup","description":"Adds an option to disable the Shorts player from resuming on app startup when Shorts were last being watched.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable screenshot popup","description":"Adds an option to disable the popup that appears when taking a screenshot.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable splash animation","description":"Adds an option to disable the splash animation on app startup.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable Cairo splash animation","description":"Adds an option to enable Cairo splash animation.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["7.08.54","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable OPUS codec","description":"Adds an option to use the OPUS audio codec instead of the MP4A audio codec.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable OPUS codec","description":"Adds an options to enable the OPUS audio codec if the player response includes.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable debug logging","description":"Adds an option to enable debug logging.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable debug logging","description":"Adds an option to enable debug logging.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable external browser","description":"Adds an option to always open links in your browser instead of in the in-app-browser.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable gradient loading screen","description":"Adds an option to enable the gradient loading screen.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable landscape mode","description":"Adds an option to enable landscape mode when rotating the screen on phones.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable open links directly","description":"Adds an option to skip over redirection URLs in external links.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Flyout menu components","description":"Adds options to hide or change flyout menu components.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Force player buttons background","description":"Changes, at compile time, the dark background surrounding the video player controls.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"BackgroundColor","default":"?ytOverlayBackgroundMediumLight","values":{"Default":"?ytOverlayBackgroundMediumLight","Transparent":"@android:color/transparent","Opacity10":"#1a000000","Opacity20":"#33000000","Opacity30":"#4d000000","Opacity40":"#66000000","Opacity50":"#80000000","Opacity60":"#99000000","Opacity70":"#b3000000","Opacity80":"#cc000000","Opacity90":"#e6000000","Opacity100":"#ff000000"},"title":"Background color","description":"Specify a background color for player buttons using a hex color code. The first two symbols of the hex code represent the alpha channel, which is used to change the opacity.","required":false}]},{"name":"Force snackbar theme","description":"Force snackbar background color to match selected theme.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"CornerRadius","default":"8.0dip","values":null,"title":"Corner radius","description":"Specify a corner radius for the snackbar.","required":false},{"key":"BackgroundColor","default":"?ytChipBackground","values":{"Chip":"?ytChipBackground","Base":"?ytBaseBackground"},"title":"Background color","description":"Specify a background color for the snackbar. You can specify hex color.","required":false},{"key":"StrokeColor","default":"none","values":{"None":"none","Accent":"?attr/colorAccent","Inverted":"?attr/ytInvertedBackground"},"title":"Stroke color","description":"Specify a stroke color for the snackbar. You can specify hex color.","required":false}]},{"name":"Fullscreen components","description":"Adds options to hide or change components related to fullscreen.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"GmsCore support","description":"Allows patched Google apps to run without root and under a different package name by using GmsCore instead of Google Play Services.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"GmsCoreVendorGroupId","default":"app.revanced","values":{"ReVanced":"app.revanced"},"title":"GmsCore vendor group ID","description":"The vendor\u0027s group ID for GmsCore.","required":true},{"key":"CheckGmsCore","default":true,"values":null,"title":"Check GmsCore","description":"Check if GmsCore is installed on the device and has battery optimizations disabled when the app starts. \n\nIf GmsCore is not installed the app will not work, so disabling this is not recommended.","required":true},{"key":"PackageNameYouTube","default":"anddea.youtube","values":{"Clone":"bill.youtube","Default":"anddea.youtube"},"title":"Package name of YouTube","description":"The name of the package to use in GmsCore support.","required":true},{"key":"PackageNameYouTubeMusic","default":"anddea.youtube.music","values":{"Clone":"bill.youtube.music","Default":"anddea.youtube.music"},"title":"Package name of YouTube Music","description":"The name of the package to use in GmsCore support.","required":true}]},{"name":"GmsCore support","description":"Allows patched Google apps to run without root and under a different package name by using GmsCore instead of Google Play Services.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"GmsCoreVendorGroupId","default":"app.revanced","values":{"ReVanced":"app.revanced"},"title":"GmsCore vendor group ID","description":"The vendor\u0027s group ID for GmsCore.","required":true},{"key":"CheckGmsCore","default":true,"values":null,"title":"Check GmsCore","description":"Check if GmsCore is installed on the device and has battery optimizations disabled when the app starts. \n\nIf GmsCore is not installed the app will not work, so disabling this is not recommended.","required":true},{"key":"PackageNameYouTube","default":"anddea.youtube","values":{"Clone":"bill.youtube","Default":"anddea.youtube"},"title":"Package name of YouTube","description":"The name of the package to use in GmsCore support.","required":true},{"key":"PackageNameYouTubeMusic","default":"anddea.youtube.music","values":{"Clone":"bill.youtube.music","Default":"anddea.youtube.music"},"title":"Package name of YouTube Music","description":"The name of the package to use in GmsCore support.","required":true}]},{"name":"Hide Recently Visited shelf","description":"Adds an option to hide the Recently Visited shelf in the sidebar.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide Shorts dimming","description":"Removes, at compile time, the dimming effect at the top and bottom of Shorts videos.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide account components","description":"Adds options to hide components related to the account menu.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide action bar components","description":"Adds options to hide action bar components and replace the offline download button with an external download button.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide action buttons","description":"Adds options to hide action buttons under videos.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide ads","description":"Adds options to hide ads.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":true,"options":[]},{"name":"Hide ads","description":"Adds options to hide ads.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide ads","description":"Adds options to hide ads.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide comments components","description":"Adds options to hide components related to comments.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide feed components","description":"Adds options to hide components related to feeds.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide feed flyout menu","description":"Adds the ability to hide feed flyout menu components using a custom filter.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide layout components","description":"Adds options to hide general layout components.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide layout components","description":"Adds options to hide general layout components.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide navigation buttons","description":"Adds options to hide buttons in the navigation bar.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide overlay filter","description":"Removes, at compile time, the dark overlay that appears when player flyout menus are open.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide player buttons","description":"Adds options to hide buttons in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide player flyout menu","description":"Adds options to hide player flyout menu components.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide player overlay filter","description":"Removes, at compile time, the dark overlay that appears when single-tapping in the player.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide recommended communities shelf","description":"Adds an option to hide the recommended communities shelves in subreddits.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hook download actions","description":"Adds support to download videos with an external downloader app using the in-app download button.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Layout switch","description":"Adds an option to spoof the dpi in order to use a tablet or phone layout.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"MaterialYou","description":"Applies the MaterialYou theme for Android 12+ devices.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Miniplayer","description":"Adds options to change the in app minimized player, and if patching target 19.16+ adds options to use modern miniplayers.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Navigation bar components","description":"Adds options to hide or change components related to the navigation bar.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Navigation bar components","description":"Adds options to hide or change components related to the navigation bar.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Open links directly","description":"Adds an option to skip over redirection URLs in external links.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Open links externally","description":"Adds an option to always open links in your browser instead of in the in-app-browser.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Overlay buttons","description":"Adds options to display overlay buttons in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"IconType","default":"rounded","values":{"Bold":"bold","Rounded":"rounded","Thin":"thin"},"title":"Icon type","description":"The icon type.","required":true},{"key":"BottomMargin","default":"5.0dip","values":{"Wider":"10.0dip","Default":"5.0dip"},"title":"Bottom margin","description":"The bottom margin for the overlay buttons and timestamp.","required":true},{"key":"ChangeTopButtons","default":false,"values":null,"title":"Change top buttons","description":"Change the icons at the top of the player.","required":true}]},{"name":"Player components","description":"Adds options to hide or change components related to the player.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Player components","description":"Adds options to hide or change components related to the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Premium icon","description":"Unlocks premium app icons.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove background playback restrictions","description":"Removes restrictions on background playback, including for kids videos.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove background playback restrictions","description":"Removes restrictions on background playback, including for music and kids videos.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove subreddit dialog","description":"Adds options to remove the NSFW community warning and notifications suggestion dialogs by dismissing them automatically.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove viewer discretion dialog","description":"Adds an option to remove the dialog that appears when opening a video that has been age-restricted by accepting it automatically. This does not bypass the age restriction.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove viewer discretion dialog","description":"Adds an option to remove the dialog that appears when opening a video that has been age-restricted by accepting it automatically. This does not bypass the age restriction.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Restore old style library shelf","description":"Adds an option to return the Library tab to the old style.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Return YouTube Dislike","description":"Adds an option to show the dislike count of songs using the Return YouTube Dislike API.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Return YouTube Dislike","description":"Adds an option to show the dislike count of videos using the Return YouTube Dislike API.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Sanitize sharing links","description":"Adds an option to remove tracking query parameters from URLs when sharing links.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Sanitize sharing links","description":"Adds an option to remove tracking query parameters from URLs when sharing links.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Sanitize sharing links","description":"Adds an option to remove tracking query parameters from URLs when sharing links.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Seekbar components","description":"Adds options to hide or change components related to the seekbar.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Settings for Reddit","description":"Applies mandatory patches to implement ReVanced Extended settings into the application.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"RVXSettingsMenuName","default":"ReVanced Extended","values":null,"title":"RVX settings menu name","description":"The name of the RVX settings menu.","required":true}]},{"name":"Settings for YouTube","description":"Applies mandatory patches to implement ReVanced Extended settings into the application.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"InsertPosition","default":"About","values":{"Parent settings":"@string/parent_tools_key","General":"@string/general_key","Account":"@string/account_switcher_key","Data saving":"@string/data_saving_settings_key","Autoplay":"@string/auto_play_key","Video quality preferences":"@string/video_quality_settings_key","Background":"@string/offline_key","Watch on TV":"@string/pair_with_tv_key","Manage all history":"@string/history_key","Your data in YouTube":"@string/your_data_key","Privacy":"@string/privacy_key","History \u0026 privacy":"@string/privacy_key","Try experimental new features":"@string/premium_early_access_browse_page_key","Purchases and memberships":"@string/subscription_product_setting_key","Billing \u0026 payments":"@string/billing_and_payment_key","Billing and payments":"@string/billing_and_payment_key","Notifications":"@string/notification_key","Connected apps":"@string/connected_accounts_browse_page_key","Live chat":"@string/live_chat_key","Captions":"@string/captions_key","Accessibility":"@string/accessibility_settings_key","About":"@string/about_key"},"title":"Insert position","description":"The settings menu name that the RVX settings menu should be above.","required":true},{"key":"RVXSettingsMenuName","default":"ReVanced Extended","values":null,"title":"RVX settings menu name","description":"The name of the RVX settings menu.","required":true}]},{"name":"Settings for YouTube Music","description":"Applies mandatory patches to implement ReVanced Extended settings into the application.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"RVXSettingsMenuName","default":"ReVanced Extended","values":null,"title":"RVX settings menu name","description":"The name of the RVX settings menu.","required":true}]},{"name":"Shorts components","description":"Adds options to hide or change components related to YouTube Shorts.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"SponsorBlock","description":"Adds options to enable and configure SponsorBlock, which can skip undesired video segments, such as non-music sections.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"SponsorBlock","description":"Adds options to enable and configure SponsorBlock, which can skip undesired video segments, such as sponsored content.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"OutlineIcon","default":true,"values":null,"title":"Outline icons","description":"Apply the outline icon.","required":true}]},{"name":"Spoof app version","description":"Adds options to spoof the YouTube Music client version. This can remove the radio mode restriction in Canadian regions or disable real-time lyrics.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Spoof app version","description":"Adds options to spoof the YouTube client version. This can be used to restore old UI elements and features.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Spoof streaming data","description":"Adds options to spoof the streaming data to allow video playback.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Spoof watch history","description":"Adds an option to change the domain of the watch history or check its status.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Swipe controls","description":"Adds options for controlling volume and brightness with swiping, and whether to enter fullscreen when swiping down below the player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Theme","description":"Changes the app\u0027s theme to the values specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"DarkThemeBackgroundColor","default":"@android:color/black","values":{"Amoled Black":"@android:color/black","Catppuccin (Mocha)":"#FF181825","Dark Pink":"#FF290025","Dark Blue":"#FF001029","Dark Green":"#FF002905","Dark Yellow":"#FF282900","Dark Orange":"#FF291800","Dark Red":"#FF290000"},"title":"Dark theme background color","description":"Can be a hex color (#AARRGGBB) or a color resource reference.","required":true},{"key":"LightThemeBackgroundColor","default":"@android:color/white","values":{"White":"@android:color/white","Catppuccin (Latte)":"#FFE6E9EF","Light Pink":"#FFFCCFF3","Light Blue":"#FFD1E0FF","Light Green":"#FFCCFFCC","Light Yellow":"#FFFDFFCC","Light Orange":"#FFFFE6CC","Light Red":"#FFFFD6D6"},"title":"Light theme background color","description":"Can be a hex color (#AARRGGBB) or a color resource reference.","required":true}]},{"name":"Toolbar components","description":"Adds options to hide or change components located on the toolbar, such as toolbar buttons, search bar, and header.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Translations","description":"Adds Crowdin translations for YouTube Music.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"CustomLanguage","default":"","values":null,"title":"Custom language file","description":"The file path to the strings.xml file.\nPlease note that applying the strings.xml file will overwrite all existing language translations.","required":false},{"key":"SelectedLanguages","default":"bg-rBG, bn, cs-rCZ, el-rGR, es-rES, fr-rFR, hu-rHU, id-rID, in, it-rIT, ja-rJP, ko-rKR, nl-rNL, pl-rPL, pt-rBR, ro-rRO, ru-rRU, tr-rTR, uk-rUA, vi-rVN, zh-rCN, zh-rTW","values":null,"title":"Selected RVX languages","description":"Selected RVX languages that will be added.","required":false},{"key":"SelectedAppLanguages","default":"af, am, ar, ar-rXB, as, az, b+es+419, b+sr+Latn, be, bg, bn, bs, ca, cs, da, de, el, en-rAU, en-rCA, en-rGB, en-rIN, en-rXA, en-rXC, es, es-rUS, et, eu, fa, fi, fr, fr-rCA, gl, gu, hi, hr, hu, hy, id, in, is, it, iw, ja, ka, kk, km, kn, ko, ky, lo, lt, lv, mk, ml, mn, mr, ms, my, nb, ne, nl, no, or, pa, pl, pt, pt-rBR, pt-rPT, ro, ru, si, sk, sl, sq, sr, sv, sw, ta, te, th, tl, tr, uk, ur, uz, vi, zh, zh-rCN, zh-rHK, zh-rTW, zu","values":null,"title":"Selected app languages","description":"Selected app languages that will be kept, languages that are not in the list will be removed from the app.","required":false}]},{"name":"Translations","description":"Add Crowdin translations for YouTube.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"CustomLanguage","default":"","values":null,"title":"Custom language file","description":"The file path to the strings.xml file.\nPlease note that applying the strings.xml file will overwrite all existing language translations.","required":false},{"key":"SelectedLanguages","default":"ar, bg-rBG, bn, de-rDE, el-rGR, es-rES, fi-rFI, fr-rFR, hu-rHU, id-rID, in, it-rIT, ja-rJP, ko-rKR, pl-rPL, pt-rBR, ru-rRU, tr-rTR, uk-rUA, vi-rVN, zh-rCN, zh-rTW","values":null,"title":"Selected RVX languages","description":"Selected RVX languages that will be added.","required":false},{"key":"SelectedAppLanguages","default":"af, am, ar, ar-rXB, as, az, b+es+419, b+sr+Latn, be, bg, bn, bs, ca, cs, da, de, el, en-rAU, en-rCA, en-rGB, en-rIN, en-rXA, en-rXC, es, es-rUS, et, eu, fa, fi, fr, fr-rCA, gl, gu, hi, hr, hu, hy, id, in, is, it, iw, ja, ka, kk, km, kn, ko, ky, lo, lt, lv, mk, ml, mn, mr, ms, my, nb, ne, nl, no, or, pa, pl, pt, pt-rBR, pt-rPT, ro, ru, si, sk, sl, sq, sr, sv, sw, ta, te, th, tl, tr, uk, ur, uz, vi, zh, zh-rCN, zh-rHK, zh-rTW, zu","values":null,"title":"Selected app languages","description":"Selected app languages that will be kept, languages that are not in the list will be removed from the app.","required":false}]},{"name":"Video playback","description":"Adds options to customize settings related to video playback, such as default video quality and playback speed.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Video playback","description":"Adds options to customize settings related to video playback, such as default video quality and playback speed.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Visual preferences icons","description":"Adds icons to specific preferences in the settings.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"ExtendedIcon","default":"Extension","values":{"Custom branding icon":"custom_branding_icon","Extension":"extension","Gear":"gear","ReVanced":"revanced","ReVanced Colored":"revanced_colored"},"title":"Extended icon","description":"Apply different icons for Extended preference.","required":false}]},{"name":"Visual preferences icons","description":"Adds icons to specific preferences in the settings.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"ExtendedIcon","default":"Extension","values":{"Custom branding icon":"custom_branding_icon","Extension":"extension","Gear":"gear","ReVanced":"revanced","ReVanced Colored":"revanced_colored"},"title":"RVX settings menu icon","description":"The icon for the RVX settings menu.","required":true}]}] \ No newline at end of file +[{"name":"Alternative thumbnails","description":"Adds options to replace video thumbnails using the DeArrow API or image captures from the video.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Ambient mode control","description":"Adds options to disable Ambient mode and to bypass Ambient mode restrictions.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Amoled","description":"Applies a pure black theme to some components.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Bitrate default value","description":"Sets the audio quality to \u0027Always High\u0027 when you first install the app.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Bypass image region restrictions","description":"Adds an option to use a different host for static images, so that images blocked in some countries can be received.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Bypass image region restrictions","description":"Adds an option to use a different host for static images, so that images blocked in some countries can be received.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Certificate spoof","description":"Enables YouTube Music to work with Android Auto by spoofing the YouTube Music certificate.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change package name","description":"Changes the package name for Reddit to the name specified in options.json.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"PackageNameReddit","default":"com.reddit.frontpage","values":{"Clone":"com.reddit.frontpage.revanced","Default":"com.reddit.frontpage.rvx","Original":"com.reddit.frontpage"},"title":"Package name of Reddit","description":"The name of the package to rename the app to.","required":true}]},{"name":"Change player flyout menu toggles","description":"Adds an option to use text toggles instead of switch toggles within the additional settings menu.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change share sheet","description":"Add option to change from in-app share sheet to system share sheet.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change share sheet","description":"Add option to change from in-app share sheet to system share sheet.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change start page","description":"Adds an option to set which page the app opens in instead of the homepage.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change start page","description":"Adds an option to set which page the app opens in instead of the homepage.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change version code","description":"Changes the version code of the app to the value specified in options.json. Except when mounting, this can prevent app stores from updating the app and allow the app to be installed over an existing installation that has a higher version code. By default, the highest version code is set.","compatiblePackages":null,"use":false,"requiresIntegrations":false,"options":[{"key":"ChangeVersionCode","default":false,"values":null,"title":"Change version code","description":"Changes the version code of the app.","required":true},{"key":"VersionCode","default":"2147483647","values":null,"title":"Version code","description":"The version code to use. (1 ~ 2147483647)","required":true}]},{"name":"Custom Shorts action buttons","description":"Changes, at compile time, the icon of the action buttons of the Shorts player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"IconType","default":"round","values":{"Outline":"outline","OutlineCircle":"outlinecircle","Round":"round","YouTube":"youtube","YouTubeOutline":"youtubeoutline"},"title":"Shorts icon style ","description":"The style of the icons for the action buttons in the Shorts player.","required":true}]},{"name":"Custom branding icon for YouTube","description":"Changes the YouTube app icon to the icon specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppIcon","default":"Xisr Yellow","values":{"AFN Blue":"afn_blue","AFN Red":"afn_red","MMT":"mmt","MMT Blue":"mmt_blue","MMT Green":"mmt_green","MMT Yellow":"mmt_yellow","Revancify Blue":"revancify_blue","Revancify Red":"revancify_red","Vanced Black":"vanced_black","Vanced Light":"vanced_light","Xisr Yellow":"xisr_yellow","YouTube":"youtube"},"title":"App icon","description":"The icon to apply to the app.\n\nIf a path to a folder is provided, the folder must contain the following folders:\n\n- mipmap-xxxhdpi\n- mipmap-xxhdpi\n- mipmap-xhdpi\n- mipmap-hdpi\n- mipmap-mdpi\n\nEach of these folders must contain the following files:\n\n- adaptiveproduct_youtube_background_color_108.png\n- adaptiveproduct_youtube_foreground_color_108.png\n- ic_launcher.png\n- ic_launcher_round.png","required":true},{"key":"ChangeHeader","default":true,"values":null,"title":"Change header","description":"Apply the custom branding icon to the header.","required":true},{"key":"CustomHeader","default":"","values":null,"title":"Custom header","description":"The header to apply to the app.\n\nIf a path to a folder is provided, the folder must contain one or more of the following folders, depending on the DPI of the device:\n\n- drawable-xxxhdpi\n- drawable-xxhdpi\n- drawable-xhdpi\n- drawable-hdpi\n- drawable-mdpi\n\nEach of the folders must contain all of the following files:\n\n- yt_premium_wordmark_header_dark.png\n- yt_premium_wordmark_header_light.png\n- yt_wordmark_header_dark.png\n- yt_wordmark_header_light.png\n\nThe image dimensions must be as follows:\n- drawable-xxxhdpi: 512px x 192px\n- drawable-xxhdpi: 387px x 144px\n- drawable-xhdpi: 258px x 96px\n- drawable-hdpi: 194px x 72px\n- drawable-mdpi: 129px x 48px","required":true},{"key":"ChangeSplashIcon","default":true,"values":null,"title":"Change splash icons","description":"Apply the custom branding icon to the splash screen.","required":true},{"key":"RestoreOldSplashAnimation","default":true,"values":null,"title":"Restore old splash animation","description":"Restore the old style splash animation.","required":true}]},{"name":"Custom branding icon for YouTube Music","description":"Changes the YouTube Music app icon to the icon specified in options.json.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppIcon","default":"Xisr Yellow","values":{"AFN Blue":"afn_blue","AFN Red":"afn_red","MMT":"mmt","MMT Blue":"mmt_blue","MMT Green":"mmt_green","MMT Yellow":"mmt_yellow","Revancify Blue":"revancify_blue","Revancify Red":"revancify_red","Vanced Black":"vanced_black","Vanced Light":"vanced_light","Xisr Yellow":"xisr_yellow","YouTube Music":"youtube_music"},"title":"App icon","description":"The icon to apply to the app.\n\nIf a path to a folder is provided, the folder must contain the following folders:\n\n- mipmap-xxxhdpi\n- mipmap-xxhdpi\n- mipmap-xhdpi\n- mipmap-hdpi\n- mipmap-mdpi\n\nEach of these folders must contain the following files:\n\n- adaptiveproduct_youtube_music_background_color_108.png\n- adaptiveproduct_youtube_music_foreground_color_108.png\n- ic_launcher_release.png","required":true},{"key":"ChangeHeader","default":true,"values":null,"title":"Change header","description":"Apply the custom branding icon to the header.","required":true},{"key":"ChangeSplashIcon","default":true,"values":null,"title":"Change splash icons","description":"Apply the custom branding icon to the splash screen.","required":true},{"key":"RestoreOldSplashIcon","default":false,"values":null,"title":"Restore old splash icon","description":"Restore the old style splash icon.\n\nIf you enable both the old style splash icon and the Cairo splash animation,\n\nOld style splash icon will appear first and then the Cairo splash animation will start.","required":true}]},{"name":"Custom branding name for Reddit","description":"Renames the Reddit app to the name specified in options.json.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppName","default":"Reddit","values":{"Default":"RVX Reddit","Original":"Reddit"},"title":"App name","description":"The name of the app.","required":true}]},{"name":"Custom branding name for YouTube","description":"Renames the YouTube app to the name specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppName","default":"RVX","values":{"ReVanced Extended":"ReVanced Extended","RVX":"RVX","YouTube RVX":"YouTube RVX","YouTube":"YouTube"},"title":"App name","description":"The name of the app.","required":true}]},{"name":"Custom branding name for YouTube Music","description":"Renames the YouTube Music app to the name specified in options.json.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppNameNotification","default":"RVX Music","values":{"ReVanced Extended Music":"ReVanced Extended Music","RVX Music":"RVX Music","YouTube Music":"YouTube Music","YT Music":"YT Music"},"title":"App name in notification panel","description":"The name of the app as it appears in the notification panel.","required":true},{"key":"AppNameLauncher","default":"RVX Music","values":{"ReVanced Extended Music":"ReVanced Extended Music","RVX Music":"RVX Music","YouTube Music":"YouTube Music","YT Music":"YT Music"},"title":"App name in launcher","description":"The name of the app as it appears in the launcher.","required":true}]},{"name":"Custom double tap length","description":"Adds Double-tap to seek values that are specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"DoubleTapLengthArrays","default":"3, 5, 10, 15, 20, 30, 60, 120, 180","values":null,"title":"Double-tap to seek values","description":"A list of custom Double-tap to seek lengths to be added, separated by commas.","required":true}]},{"name":"Custom header for YouTube Music","description":"Applies a custom header in the top left corner within the app.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"CustomHeader","default":"custom_branding_icon","values":{"Custom branding icon":"custom_branding_icon"},"title":"Custom header","description":"The header to apply to the app.\n\nPatch option \u0027Custom branding icon\u0027 applies only when:\n\n1. Patch \u0027Custom branding icon for YouTube Music\u0027 is included.\n2. Patch option for \u0027Custom branding icon for YouTube Music\u0027 is selected from the preset.\n\nIf a path to a folder is provided, the folder must contain one or more of the following folders, depending on the DPI of the device:\n\n- drawable-xxxhdpi\n- drawable-xxhdpi\n- drawable-xhdpi\n- drawable-hdpi\n- drawable-mdpi\n\nEach of the folders must contain all of the following files:\n\n- action_bar_logo.png\n- logo_music.png\n- ytm_logo.png\n\nThe image \u0027action_bar_logo.png\u0027 dimensions must be as follows:\n\n- drawable-xxxhdpi: 320px x 96px\n- drawable-xxhdpi: 240px x 72px\n- drawable-xhdpi: 160px x 48px\n- drawable-hdpi: 121px x 36px\n- drawable-mdpi: 80px x 24px\n\nThe image \u0027logo_music.png\u0027 dimensions must be as follows:\n\n- drawable-xxxhdpi: 576px x 200px\n- drawable-xxhdpi: 432px x 150px\n- drawable-xhdpi: 288px x 100px\n- drawable-hdpi: 217px x 76px\n- drawable-mdpi: 144px x 50px\n\nThe image \u0027ytm_logo.png\u0027 dimensions must be as follows:\n\n- drawable-xxxhdpi: 412px x 144px\n- drawable-xxhdpi: 309px x 108px\n- drawable-xhdpi: 206px x 72px\n- drawable-hdpi: 155px x 54px\n- drawable-mdpi: 103px x 36px","required":true}]},{"name":"Description components","description":"Adds options to hide and disable description components.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable Cairo splash animation","description":"Adds an option to disable Cairo splash animation.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["7.06.54","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable QUIC protocol","description":"Adds an option to disable CronetEngine\u0027s QUIC protocol.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable auto audio tracks","description":"Adds an option to disable audio tracks from being automatically enabled.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable auto captions","description":"Adds an option to disable captions from being automatically enabled.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable auto captions","description":"Adds an option to disable captions from being automatically enabled.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable dislike redirection","description":"Adds an option to disable redirection to the next track when clicking the Dislike button.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable haptic feedback","description":"Adds options to disable haptic feedback when swiping in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable resuming Shorts on startup","description":"Adds an option to disable the Shorts player from resuming on app startup when Shorts were last being watched.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable screenshot popup","description":"Adds an option to disable the popup that appears when taking a screenshot.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable splash animation","description":"Adds an option to disable the splash animation on app startup.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable OPUS codec","description":"Adds an option to use the OPUS audio codec instead of the MP4A audio codec.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable OPUS codec","description":"Adds an options to enable the OPUS audio codec if the player response includes.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable debug logging","description":"Adds an option to enable debug logging.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable debug logging","description":"Adds an option to enable debug logging.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable external browser","description":"Adds an option to always open links in your browser instead of in the in-app-browser.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable gradient loading screen","description":"Adds an option to enable the gradient loading screen.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable landscape mode","description":"Adds an option to enable landscape mode when rotating the screen on phones.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable open links directly","description":"Adds an option to skip over redirection URLs in external links.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Flyout menu components","description":"Adds options to hide or change flyout menu components.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Force player buttons background","description":"Changes, at compile time, the dark background surrounding the video player controls.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"BackgroundColor","default":"?ytOverlayBackgroundMediumLight","values":{"Default":"?ytOverlayBackgroundMediumLight","Transparent":"@android:color/transparent","Opacity10":"#1a000000","Opacity20":"#33000000","Opacity30":"#4d000000","Opacity40":"#66000000","Opacity50":"#80000000","Opacity60":"#99000000","Opacity70":"#b3000000","Opacity80":"#cc000000","Opacity90":"#e6000000","Opacity100":"#ff000000"},"title":"Background color","description":"Specify a background color for player buttons using a hex color code. The first two symbols of the hex code represent the alpha channel, which is used to change the opacity.","required":false}]},{"name":"Force snackbar theme","description":"Force snackbar background color to match selected theme.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"CornerRadius","default":"8.0dip","values":null,"title":"Corner radius","description":"Specify a corner radius for the snackbar.","required":false},{"key":"BackgroundColor","default":"?ytChipBackground","values":{"Chip":"?ytChipBackground","Base":"?ytBaseBackground"},"title":"Background color","description":"Specify a background color for the snackbar. You can specify hex color.","required":false},{"key":"StrokeColor","default":"none","values":{"None":"none","Accent":"?attr/colorAccent","Inverted":"?attr/ytInvertedBackground"},"title":"Stroke color","description":"Specify a stroke color for the snackbar. You can specify hex color.","required":false}]},{"name":"Fullscreen components","description":"Adds options to hide or change components related to fullscreen.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"GmsCore support","description":"Allows patched Google apps to run without root and under a different package name by using GmsCore instead of Google Play Services.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"GmsCoreVendorGroupId","default":"app.revanced","values":{"ReVanced":"app.revanced"},"title":"GmsCore vendor group ID","description":"The vendor\u0027s group ID for GmsCore.","required":true},{"key":"CheckGmsCore","default":true,"values":null,"title":"Check GmsCore","description":"Check if GmsCore is installed on the device and has battery optimizations disabled when the app starts. \n\nIf GmsCore is not installed the app will not work, so disabling this is not recommended.","required":true},{"key":"PackageNameYouTube","default":"anddea.youtube","values":{"Clone":"bill.youtube","Default":"anddea.youtube"},"title":"Package name of YouTube","description":"The name of the package to use in GmsCore support.","required":true},{"key":"PackageNameYouTubeMusic","default":"anddea.youtube.music","values":{"Clone":"bill.youtube.music","Default":"anddea.youtube.music"},"title":"Package name of YouTube Music","description":"The name of the package to use in GmsCore support.","required":true}]},{"name":"GmsCore support","description":"Allows patched Google apps to run without root and under a different package name by using GmsCore instead of Google Play Services.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"GmsCoreVendorGroupId","default":"app.revanced","values":{"ReVanced":"app.revanced"},"title":"GmsCore vendor group ID","description":"The vendor\u0027s group ID for GmsCore.","required":true},{"key":"CheckGmsCore","default":true,"values":null,"title":"Check GmsCore","description":"Check if GmsCore is installed on the device and has battery optimizations disabled when the app starts. \n\nIf GmsCore is not installed the app will not work, so disabling this is not recommended.","required":true},{"key":"PackageNameYouTube","default":"anddea.youtube","values":{"Clone":"bill.youtube","Default":"anddea.youtube"},"title":"Package name of YouTube","description":"The name of the package to use in GmsCore support.","required":true},{"key":"PackageNameYouTubeMusic","default":"anddea.youtube.music","values":{"Clone":"bill.youtube.music","Default":"anddea.youtube.music"},"title":"Package name of YouTube Music","description":"The name of the package to use in GmsCore support.","required":true}]},{"name":"Hide Recently Visited shelf","description":"Adds an option to hide the Recently Visited shelf in the sidebar.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide Shorts dimming","description":"Removes, at compile time, the dimming effect at the top and bottom of Shorts videos.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide account components","description":"Adds options to hide components related to the account menu.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide action bar components","description":"Adds options to hide action bar components and replace the offline download button with an external download button.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide action buttons","description":"Adds options to hide action buttons under videos.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide ads","description":"Adds options to hide ads.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":true,"options":[]},{"name":"Hide ads","description":"Adds options to hide ads.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide ads","description":"Adds options to hide ads.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide comments components","description":"Adds options to hide components related to comments.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide feed components","description":"Adds options to hide components related to feeds.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide feed flyout menu","description":"Adds the ability to hide feed flyout menu components using a custom filter.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide layout components","description":"Adds options to hide general layout components.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide layout components","description":"Adds options to hide general layout components.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide navigation buttons","description":"Adds options to hide buttons in the navigation bar.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide overlay filter","description":"Removes, at compile time, the dark overlay that appears when player flyout menus are open.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide player buttons","description":"Adds options to hide buttons in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide player flyout menu","description":"Adds options to hide player flyout menu components.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide player overlay filter","description":"Removes, at compile time, the dark overlay that appears when single-tapping in the player.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide recommended communities shelf","description":"Adds an option to hide the recommended communities shelves in subreddits.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hook download actions","description":"Adds support to download videos with an external downloader app using the in-app download button.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Layout switch","description":"Adds an option to spoof the dpi in order to use a tablet or phone layout.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"MaterialYou","description":"Applies the MaterialYou theme for Android 12+ devices.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Miniplayer","description":"Adds options to change the in app minimized player, and if patching target 19.16+ adds options to use modern miniplayers.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Navigation bar components","description":"Adds options to hide or change components related to the navigation bar.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Navigation bar components","description":"Adds options to hide or change components related to the navigation bar.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Open links directly","description":"Adds an option to skip over redirection URLs in external links.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Open links externally","description":"Adds an option to always open links in your browser instead of in the in-app-browser.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Overlay buttons","description":"Adds options to display overlay buttons in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"IconType","default":"rounded","values":{"Bold":"bold","Rounded":"rounded","Thin":"thin"},"title":"Icon type","description":"The icon type.","required":true},{"key":"BottomMargin","default":"5.0dip","values":{"Wider":"10.0dip","Default":"5.0dip"},"title":"Bottom margin","description":"The bottom margin for the overlay buttons and timestamp.","required":true},{"key":"ChangeTopButtons","default":false,"values":null,"title":"Change top buttons","description":"Change the icons at the top of the player.","required":true}]},{"name":"Player components","description":"Adds options to hide or change components related to the player.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Player components","description":"Adds options to hide or change components related to the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Premium icon","description":"Unlocks premium app icons.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove background playback restrictions","description":"Removes restrictions on background playback, including for kids videos.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove background playback restrictions","description":"Removes restrictions on background playback, including for music and kids videos.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove subreddit dialog","description":"Adds options to remove the NSFW community warning and notifications suggestion dialogs by dismissing them automatically.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove viewer discretion dialog","description":"Adds an option to remove the dialog that appears when opening a video that has been age-restricted by accepting it automatically. This does not bypass the age restriction.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove viewer discretion dialog","description":"Adds an option to remove the dialog that appears when opening a video that has been age-restricted by accepting it automatically. This does not bypass the age restriction.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Restore old style library shelf","description":"Adds an option to return the Library tab to the old style.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Return YouTube Dislike","description":"Adds an option to show the dislike count of songs using the Return YouTube Dislike API.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Return YouTube Dislike","description":"Adds an option to show the dislike count of videos using the Return YouTube Dislike API.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Sanitize sharing links","description":"Adds an option to remove tracking query parameters from URLs when sharing links.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Sanitize sharing links","description":"Adds an option to remove tracking query parameters from URLs when sharing links.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Sanitize sharing links","description":"Adds an option to remove tracking query parameters from URLs when sharing links.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Seekbar components","description":"Adds options to hide or change components related to the seekbar.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Settings for Reddit","description":"Applies mandatory patches to implement ReVanced Extended settings into the application.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"RVXSettingsMenuName","default":"ReVanced Extended","values":null,"title":"RVX settings menu name","description":"The name of the RVX settings menu.","required":true}]},{"name":"Settings for YouTube","description":"Applies mandatory patches to implement ReVanced Extended settings into the application.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"InsertPosition","default":"About","values":{"Parent settings":"@string/parent_tools_key","General":"@string/general_key","Account":"@string/account_switcher_key","Data saving":"@string/data_saving_settings_key","Autoplay":"@string/auto_play_key","Video quality preferences":"@string/video_quality_settings_key","Background":"@string/offline_key","Watch on TV":"@string/pair_with_tv_key","Manage all history":"@string/history_key","Your data in YouTube":"@string/your_data_key","Privacy":"@string/privacy_key","History \u0026 privacy":"@string/privacy_key","Try experimental new features":"@string/premium_early_access_browse_page_key","Purchases and memberships":"@string/subscription_product_setting_key","Billing \u0026 payments":"@string/billing_and_payment_key","Billing and payments":"@string/billing_and_payment_key","Notifications":"@string/notification_key","Connected apps":"@string/connected_accounts_browse_page_key","Live chat":"@string/live_chat_key","Captions":"@string/captions_key","Accessibility":"@string/accessibility_settings_key","About":"@string/about_key"},"title":"Insert position","description":"The settings menu name that the RVX settings menu should be above.","required":true},{"key":"RVXSettingsMenuName","default":"ReVanced Extended","values":null,"title":"RVX settings menu name","description":"The name of the RVX settings menu.","required":true}]},{"name":"Settings for YouTube Music","description":"Applies mandatory patches to implement ReVanced Extended settings into the application.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"RVXSettingsMenuName","default":"ReVanced Extended","values":null,"title":"RVX settings menu name","description":"The name of the RVX settings menu.","required":true}]},{"name":"Shorts components","description":"Adds options to hide or change components related to YouTube Shorts.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"SponsorBlock","description":"Adds options to enable and configure SponsorBlock, which can skip undesired video segments, such as non-music sections.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"SponsorBlock","description":"Adds options to enable and configure SponsorBlock, which can skip undesired video segments, such as sponsored content.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"OutlineIcon","default":true,"values":null,"title":"Outline icons","description":"Apply the outline icon.","required":true}]},{"name":"Spoof app version","description":"Adds options to spoof the YouTube Music client version. This can remove the radio mode restriction in Canadian regions or disable real-time lyrics.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Spoof app version","description":"Adds options to spoof the YouTube client version. This can be used to restore old UI elements and features.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Spoof streaming data","description":"Adds options to spoof the streaming data to allow video playback.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Spoof watch history","description":"Adds an option to change the domain of the watch history or check its status.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Swipe controls","description":"Adds options for controlling volume and brightness with swiping, and whether to enter fullscreen when swiping down below the player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Theme","description":"Changes the app\u0027s theme to the values specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"DarkThemeBackgroundColor","default":"@android:color/black","values":{"Amoled Black":"@android:color/black","Catppuccin (Mocha)":"#FF181825","Dark Pink":"#FF290025","Dark Blue":"#FF001029","Dark Green":"#FF002905","Dark Yellow":"#FF282900","Dark Orange":"#FF291800","Dark Red":"#FF290000"},"title":"Dark theme background color","description":"Can be a hex color (#AARRGGBB) or a color resource reference.","required":true},{"key":"LightThemeBackgroundColor","default":"@android:color/white","values":{"White":"@android:color/white","Catppuccin (Latte)":"#FFE6E9EF","Light Pink":"#FFFCCFF3","Light Blue":"#FFD1E0FF","Light Green":"#FFCCFFCC","Light Yellow":"#FFFDFFCC","Light Orange":"#FFFFE6CC","Light Red":"#FFFFD6D6"},"title":"Light theme background color","description":"Can be a hex color (#AARRGGBB) or a color resource reference.","required":true}]},{"name":"Toolbar components","description":"Adds options to hide or change components located on the toolbar, such as toolbar buttons, search bar, and header.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Translations","description":"Adds Crowdin translations for YouTube Music.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"CustomLanguage","default":"","values":null,"title":"Custom language file","description":"The file path to the strings.xml file.\nPlease note that applying the strings.xml file will overwrite all existing language translations.","required":false},{"key":"SelectedLanguages","default":"bg-rBG, bn, cs-rCZ, el-rGR, es-rES, fr-rFR, hu-rHU, id-rID, in, it-rIT, ja-rJP, ko-rKR, nl-rNL, pl-rPL, pt-rBR, ro-rRO, ru-rRU, tr-rTR, uk-rUA, vi-rVN, zh-rCN, zh-rTW","values":null,"title":"Selected RVX languages","description":"Selected RVX languages that will be added.","required":false},{"key":"SelectedAppLanguages","default":"af, am, ar, ar-rXB, as, az, b+es+419, b+sr+Latn, be, bg, bn, bs, ca, cs, da, de, el, en-rAU, en-rCA, en-rGB, en-rIN, en-rXA, en-rXC, es, es-rUS, et, eu, fa, fi, fr, fr-rCA, gl, gu, hi, hr, hu, hy, id, in, is, it, iw, ja, ka, kk, km, kn, ko, ky, lo, lt, lv, mk, ml, mn, mr, ms, my, nb, ne, nl, no, or, pa, pl, pt, pt-rBR, pt-rPT, ro, ru, si, sk, sl, sq, sr, sv, sw, ta, te, th, tl, tr, uk, ur, uz, vi, zh, zh-rCN, zh-rHK, zh-rTW, zu","values":null,"title":"Selected app languages","description":"Selected app languages that will be kept, languages that are not in the list will be removed from the app.","required":false}]},{"name":"Translations","description":"Add Crowdin translations for YouTube.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"CustomLanguage","default":"","values":null,"title":"Custom language file","description":"The file path to the strings.xml file.\nPlease note that applying the strings.xml file will overwrite all existing language translations.","required":false},{"key":"SelectedLanguages","default":"ar, bg-rBG, bn, de-rDE, el-rGR, es-rES, fi-rFI, fr-rFR, hu-rHU, id-rID, in, it-rIT, ja-rJP, ko-rKR, pl-rPL, pt-rBR, ru-rRU, tr-rTR, uk-rUA, vi-rVN, zh-rCN, zh-rTW","values":null,"title":"Selected RVX languages","description":"Selected RVX languages that will be added.","required":false},{"key":"SelectedAppLanguages","default":"af, am, ar, ar-rXB, as, az, b+es+419, b+sr+Latn, be, bg, bn, bs, ca, cs, da, de, el, en-rAU, en-rCA, en-rGB, en-rIN, en-rXA, en-rXC, es, es-rUS, et, eu, fa, fi, fr, fr-rCA, gl, gu, hi, hr, hu, hy, id, in, is, it, iw, ja, ka, kk, km, kn, ko, ky, lo, lt, lv, mk, ml, mn, mr, ms, my, nb, ne, nl, no, or, pa, pl, pt, pt-rBR, pt-rPT, ro, ru, si, sk, sl, sq, sr, sv, sw, ta, te, th, tl, tr, uk, ur, uz, vi, zh, zh-rCN, zh-rHK, zh-rTW, zu","values":null,"title":"Selected app languages","description":"Selected app languages that will be kept, languages that are not in the list will be removed from the app.","required":false}]},{"name":"Video playback","description":"Adds options to customize settings related to video playback, such as default video quality and playback speed.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Video playback","description":"Adds options to customize settings related to video playback, such as default video quality and playback speed.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Visual preferences icons","description":"Adds icons to specific preferences in the settings.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"ExtendedIcon","default":"Extension","values":{"Custom branding icon":"custom_branding_icon","Extension":"extension","Gear":"gear","ReVanced":"revanced","ReVanced Colored":"revanced_colored"},"title":"Extended icon","description":"Apply different icons for Extended preference.","required":false}]},{"name":"Visual preferences icons","description":"Adds icons to specific preferences in the settings.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"ExtendedIcon","default":"Extension","values":{"Custom branding icon":"custom_branding_icon","Extension":"extension","Gear":"gear","ReVanced":"revanced","ReVanced Colored":"revanced_colored"},"title":"RVX settings menu icon","description":"The icon for the RVX settings menu.","required":true}]}] \ No newline at end of file From 26e525cd9d640d97c36f78e22a5e094bcfa6919d Mon Sep 17 00:00:00 2001 From: odkate <90364108+odkate@users.noreply.github.com> Date: Mon, 9 Sep 2024 19:52:33 +0300 Subject: [PATCH 32/63] chore(YouTube - Translations): Update `Ukrainian` (#825) --- src/main/resources/youtube/translations/uk-rUA/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/resources/youtube/translations/uk-rUA/strings.xml b/src/main/resources/youtube/translations/uk-rUA/strings.xml index b3daf64f5..b6dba4655 100644 --- a/src/main/resources/youtube/translations/uk-rUA/strings.xml +++ b/src/main/resources/youtube/translations/uk-rUA/strings.xml @@ -320,6 +320,8 @@ %s не встановлено. Будь ласка, встановіть його. Ім\'я пакета встановленого зовнішнього завантажувача, наприклад YTDLnis. Ім\'я пакета завантажувача списку відтворення + Ім\'я пакета встановленого зовнішнього завантажувача, наприклад NewPipe або YTDLnis, при довгому натисканні. + Ім\'я пакета завантажувача відео при довгому натисканні Ім\'я пакета встановленого зовнішнього завантажувача, наприклад NewPipe або YTDLnis. Ім\'я пакета завантажувача відео "Відео перемикатиметься на повний екран в таких ситуаціях: From 99291a2f00a9d242c2bedfaa694f596ec154c3a9 Mon Sep 17 00:00:00 2001 From: Patriot99 <31535921+Patriot99@users.noreply.github.com> Date: Tue, 10 Sep 2024 12:54:26 +0200 Subject: [PATCH 33/63] chore(YouTube - Translations): Update `Polish` (#826) --- .../youtube/translations/pl-rPL/missing_strings.xml | 5 ----- src/main/resources/youtube/translations/pl-rPL/strings.xml | 2 ++ 2 files changed, 2 insertions(+), 5 deletions(-) delete mode 100644 src/main/resources/youtube/translations/pl-rPL/missing_strings.xml diff --git a/src/main/resources/youtube/translations/pl-rPL/missing_strings.xml b/src/main/resources/youtube/translations/pl-rPL/missing_strings.xml deleted file mode 100644 index 62688cae7..000000000 --- a/src/main/resources/youtube/translations/pl-rPL/missing_strings.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. - Long press video downloader package name - diff --git a/src/main/resources/youtube/translations/pl-rPL/strings.xml b/src/main/resources/youtube/translations/pl-rPL/strings.xml index 3e842f598..9e6762259 100644 --- a/src/main/resources/youtube/translations/pl-rPL/strings.xml +++ b/src/main/resources/youtube/translations/pl-rPL/strings.xml @@ -327,6 +327,8 @@ Pobierz %2$s ze strony internetowej." Nazwa pakietu aplikacji od pobierania (playlisty) Nazwa pakietu zainstalowanej zewnętrznej aplikacji od pobierania, takiej jak NewPipe lub YTDLnis. Nazwa pakietu aplikacji od pobierania (filmy) + Nazwa pakietu zainstalowanej zewnętrznej aplikacji od pobierania, takiej jak NewPipe lub YTDLnis przy długim przytrzymaniu. + Nazwa pakietu aplikacji od pobierania (filmy) przy długim przytrzymaniu "Filmy zostaną przełączone w tryb pełnoekranowy w następujących sytuacjach: • Po rozpoczęciu filmu From f7f89d75774bc75ed034086e02dee09c46e8306e Mon Sep 17 00:00:00 2001 From: akir45 <91464996+akir45@users.noreply.github.com> Date: Tue, 10 Sep 2024 19:55:44 +0900 Subject: [PATCH 34/63] chore(YouTube - Translations): Update `Japanese ` (#827) --- src/main/resources/youtube/translations/ja-rJP/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/resources/youtube/translations/ja-rJP/strings.xml b/src/main/resources/youtube/translations/ja-rJP/strings.xml index bf4a0f218..c4857b398 100644 --- a/src/main/resources/youtube/translations/ja-rJP/strings.xml +++ b/src/main/resources/youtube/translations/ja-rJP/strings.xml @@ -329,6 +329,8 @@ DeArrowの詳細については、ここをタップしてください。"プレイリストの外部ダウンローダーのパッケージ名 NewPipe や YTDLnis などの、インストールされている外部ダウンローダーアプリのパッケージ名です。 外部ダウンローダーのパッケージ名 + 長押し時に使用する NewPipe や YTDLnis などの、インストールされている外部ダウンローダーアプリのパッケージ名です。 + 長押し時の外部ダウンローダのパッケージ名 "以下の状況で全画面に切り替わります: • コメントのタイムスタンプをタップしたとき From 6d89cb09228a5dd30bdc00caa040361c84a48032 Mon Sep 17 00:00:00 2001 From: kitadai31 <90122968+kitadai31@users.noreply.github.com> Date: Sat, 14 Sep 2024 17:10:00 +0900 Subject: [PATCH 35/63] feat(YouTube Music): Add support version `6.20.51` --- .../ShowDialogCommandFingerprint.kt | 19 +++++++++++++++---- .../music/utils/compatibility/Constants.kt | 1 + 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/app/revanced/patches/music/ads/general/fingerprints/ShowDialogCommandFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/ads/general/fingerprints/ShowDialogCommandFingerprint.kt index fed10e5e9..b83d05c76 100644 --- a/src/main/kotlin/app/revanced/patches/music/ads/general/fingerprints/ShowDialogCommandFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/ads/general/fingerprints/ShowDialogCommandFingerprint.kt @@ -1,17 +1,28 @@ package app.revanced.patches.music.ads.general.fingerprints +import app.revanced.patcher.fingerprint.MethodFingerprint import app.revanced.patches.music.utils.resourceid.SharedResourceIdPatch.SlidingDialogAnimation -import app.revanced.util.fingerprint.LiteralValueFingerprint +import app.revanced.util.containsWideLiteralInstructionIndex import com.android.tools.smali.dexlib2.Opcode -internal object ShowDialogCommandFingerprint : LiteralValueFingerprint( +internal object ShowDialogCommandFingerprint : MethodFingerprint( returnType = "V", - parameters = listOf("[B", "L"), opcodes = listOf( Opcode.IF_EQ, Opcode.IGET_OBJECT, Opcode.INVOKE_VIRTUAL, Opcode.IGET, // get dialog code ), - literalSupplier = { SlidingDialogAnimation } + // 6.26 and earlier has a different first parameter. + // Since this fingerprint is somewhat weak, work around by checking for both method parameter signatures. + customFingerprint = custom@{ methodDef, _ -> + if (!methodDef.containsWideLiteralInstructionIndex(SlidingDialogAnimation)) { + return@custom false + } + // 6.26 and earlier parameters are: "L", "L" + // 6.27+ parameters are "[B", "L" + val parameterTypes = methodDef.parameterTypes + + parameterTypes.size == 2 && parameterTypes[1].startsWith("L") + }, ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/music/utils/compatibility/Constants.kt b/src/main/kotlin/app/revanced/patches/music/utils/compatibility/Constants.kt index 6b8abb737..b809ed169 100644 --- a/src/main/kotlin/app/revanced/patches/music/utils/compatibility/Constants.kt +++ b/src/main/kotlin/app/revanced/patches/music/utils/compatibility/Constants.kt @@ -7,6 +7,7 @@ object Constants { Patch.CompatiblePackage( "com.google.android.apps.youtube.music", setOf( + "6.20.51", // This is the latest version that supports Android 5.0 "6.29.58", // This is the latest version that supports the 'Restore old player layout' setting. "6.33.52", // This is the latest version with the legacy code of YouTube Music. "6.42.55", // This is the latest version that supports Android 7.0 From 88c4da1306a99d919ad3b092de937a8800d8c317 Mon Sep 17 00:00:00 2001 From: Selfmuser <109387456+selfmusing@users.noreply.github.com> Date: Sat, 14 Sep 2024 13:41:50 +0530 Subject: [PATCH 36/63] feat(YouTube Music - Custom branding icon): Update monochrome icon for `afn_red` & `afn_blue` --- .../ic_app_icons_themed_youtube_music.xml | 801 +----------------- .../ic_app_icons_themed_youtube_music.xml | 801 +----------------- 2 files changed, 28 insertions(+), 1574 deletions(-) diff --git a/src/main/resources/music/branding/afn_blue/monochrome/drawable/ic_app_icons_themed_youtube_music.xml b/src/main/resources/music/branding/afn_blue/monochrome/drawable/ic_app_icons_themed_youtube_music.xml index e88c905d5..9d5e8a28f 100644 --- a/src/main/resources/music/branding/afn_blue/monochrome/drawable/ic_app_icons_themed_youtube_music.xml +++ b/src/main/resources/music/branding/afn_blue/monochrome/drawable/ic_app_icons_themed_youtube_music.xml @@ -1,788 +1,15 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + \ No newline at end of file diff --git a/src/main/resources/music/branding/afn_red/monochrome/drawable/ic_app_icons_themed_youtube_music.xml b/src/main/resources/music/branding/afn_red/monochrome/drawable/ic_app_icons_themed_youtube_music.xml index e88c905d5..9d5e8a28f 100644 --- a/src/main/resources/music/branding/afn_red/monochrome/drawable/ic_app_icons_themed_youtube_music.xml +++ b/src/main/resources/music/branding/afn_red/monochrome/drawable/ic_app_icons_themed_youtube_music.xml @@ -1,788 +1,15 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + \ No newline at end of file From f49cd5068b6bf6827353d5c11c9b1e05eaf5f776 Mon Sep 17 00:00:00 2001 From: inotia00 <108592928+inotia00@users.noreply.github.com> Date: Sat, 14 Sep 2024 17:18:51 +0900 Subject: [PATCH 37/63] feat(YouTube Music): Drop support version `7.17.51` --- .../patches/music/misc/splash/CairoSplashAnimationPatch.kt | 2 +- .../revanced/patches/music/utils/compatibility/Constants.kt | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/app/revanced/patches/music/misc/splash/CairoSplashAnimationPatch.kt b/src/main/kotlin/app/revanced/patches/music/misc/splash/CairoSplashAnimationPatch.kt index a5df7926a..ae0465ae4 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/splash/CairoSplashAnimationPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/splash/CairoSplashAnimationPatch.kt @@ -19,7 +19,7 @@ import app.revanced.util.literalInstructionBooleanHook "com.google.android.apps.youtube.music", [ "7.06.54", - "7.17.51", + "7.16.52", ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/music/utils/compatibility/Constants.kt b/src/main/kotlin/app/revanced/patches/music/utils/compatibility/Constants.kt index b809ed169..3cccd72aa 100644 --- a/src/main/kotlin/app/revanced/patches/music/utils/compatibility/Constants.kt +++ b/src/main/kotlin/app/revanced/patches/music/utils/compatibility/Constants.kt @@ -12,8 +12,7 @@ object Constants { "6.33.52", // This is the latest version with the legacy code of YouTube Music. "6.42.55", // This is the latest version that supports Android 7.0 "6.51.53", // This is the latest version of YouTube Music 6.xx.xx - "7.16.53", // This was the latest version that was supported by the previous patch. - "7.17.51", // This is the latest version supported by the RVX patch. + "7.16.52", // This is the latest version supported by the RVX patch. ) ) ) From cb83ed9df8687d44585eff47f561bba5b5456931 Mon Sep 17 00:00:00 2001 From: inotia00 <108592928+inotia00@users.noreply.github.com> Date: Sat, 14 Sep 2024 22:33:35 +0900 Subject: [PATCH 38/63] chore(LithoFilterPatch): Add compatibility with older versions of AGP --- .../patches/shared/litho/LithoFilterPatch.kt | 260 ++++++++++-------- ...ingerprint.kt => ByteBufferFingerprint.kt} | 2 +- .../LithoFilterPatchConstructorFingerprint.kt | 14 - 3 files changed, 146 insertions(+), 130 deletions(-) rename src/main/kotlin/app/revanced/patches/shared/litho/fingerprints/{SetByteBufferFingerprint.kt => ByteBufferFingerprint.kt} (94%) delete mode 100644 src/main/kotlin/app/revanced/patches/shared/litho/fingerprints/LithoFilterPatchConstructorFingerprint.kt diff --git a/src/main/kotlin/app/revanced/patches/shared/litho/LithoFilterPatch.kt b/src/main/kotlin/app/revanced/patches/shared/litho/LithoFilterPatch.kt index f02aaa9d0..545556945 100644 --- a/src/main/kotlin/app/revanced/patches/shared/litho/LithoFilterPatch.kt +++ b/src/main/kotlin/app/revanced/patches/shared/litho/LithoFilterPatch.kt @@ -5,84 +5,112 @@ import app.revanced.patcher.extensions.InstructionExtensions.addInstruction import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels import app.revanced.patcher.extensions.InstructionExtensions.getInstruction -import app.revanced.patcher.extensions.InstructionExtensions.removeInstructions +import app.revanced.patcher.extensions.or import app.revanced.patcher.patch.BytecodePatch +import app.revanced.patcher.patch.PatchException 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.shared.integrations.Constants.COMPONENTS_PATH +import app.revanced.patches.shared.litho.fingerprints.ByteBufferFingerprint import app.revanced.patches.shared.litho.fingerprints.EmptyComponentsFingerprint -import app.revanced.patches.shared.litho.fingerprints.LithoFilterPatchConstructorFingerprint import app.revanced.patches.shared.litho.fingerprints.PathBuilderFingerprint -import app.revanced.patches.shared.litho.fingerprints.SetByteBufferFingerprint +import app.revanced.util.getReference import app.revanced.util.getStringInstructionIndex -import app.revanced.util.getTargetIndexOrThrow -import app.revanced.util.getTargetIndexReversedOrThrow -import app.revanced.util.getTargetIndexWithFieldReferenceTypeOrThrow +import app.revanced.util.indexOfFirstInstructionOrThrow +import app.revanced.util.indexOfFirstInstructionReversedOrThrow import app.revanced.util.resultOrThrow +import com.android.tools.smali.dexlib2.AccessFlags import com.android.tools.smali.dexlib2.Opcode -import com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction35c +import com.android.tools.smali.dexlib2.builder.MutableMethodImplementation +import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction +import com.android.tools.smali.dexlib2.iface.reference.FieldReference +import com.android.tools.smali.dexlib2.iface.reference.MethodReference +import com.android.tools.smali.dexlib2.immutable.ImmutableMethod +import com.android.tools.smali.dexlib2.util.MethodUtil import java.io.Closeable @Suppress("SpellCheckingInspection", "unused") object LithoFilterPatch : BytecodePatch( setOf( + ByteBufferFingerprint, EmptyComponentsFingerprint, - LithoFilterPatchConstructorFingerprint, - SetByteBufferFingerprint ) ), Closeable { private const val INTEGRATIONS_LITHO_FILER_CLASS_DESCRIPTOR = "$COMPONENTS_PATH/LithoFilterPatch;" - private const val INTEGRATIONS_FILER_CLASS_DESCRIPTOR = - "$COMPONENTS_PATH/Filter;" + private const val INTEGRATIONS_FILER_ARRAY_DESCRIPTOR = + "[$COMPONENTS_PATH/Filter;" + + private lateinit var filterArrayMethod: MutableMethod + private var filterCount = 0 internal lateinit var addFilter: (String) -> Unit private set - private lateinit var emptyComponentMethod: MutableMethod - - private lateinit var emptyComponentLabel: String - private lateinit var emptyComponentMethodName: String - - private lateinit var pathBuilderMethodCall: String - - private var filterCount = 0 - override fun execute(context: BytecodeContext) { - SetByteBufferFingerprint.resultOrThrow().let { - it.mutableMethod.apply { - val insertIndex = getTargetIndexOrThrow(Opcode.IF_EQZ) + 1 + // region Pass the buffer into Integrations. - addInstruction( - insertIndex, - "invoke-static { p2 }, $INTEGRATIONS_LITHO_FILER_CLASS_DESCRIPTOR->setProtoBuffer(Ljava/nio/ByteBuffer;)V" - ) - } - } + ByteBufferFingerprint.resultOrThrow().mutableMethod.addInstruction( + 0, + "invoke-static { p2 }, $INTEGRATIONS_LITHO_FILER_CLASS_DESCRIPTOR->setProtoBuffer(Ljava/nio/ByteBuffer;)V" + ) - EmptyComponentsFingerprint.resultOrThrow().let { - it.mutableMethod.apply { - // resolves fingerprint. + // endregion + + var (emptyComponentMethod, emptyComponentLabel) = + EmptyComponentsFingerprint.resultOrThrow().let { PathBuilderFingerprint.resolve(context, it.classDef) - emptyComponentMethod = this - emptyComponentMethodName = name + with(it.mutableMethod) { + val emptyComponentMethodIndex = it.scanResult.patternScanResult!!.startIndex + 1 + val emptyComponentMethodReference = + getInstruction(emptyComponentMethodIndex).reference + val emptyComponentFieldReference = + getInstruction(emptyComponentMethodIndex + 2).reference + + val label = """ + move-object/from16 v0, p1 + invoke-static {v0}, $emptyComponentMethodReference + move-result-object v0 + iget-object v0, v0, $emptyComponentFieldReference + return-object v0 + """ + + Pair(this, label) + } + } - val emptyComponentMethodIndex = it.scanResult.patternScanResult!!.startIndex + 1 - val emptyComponentMethodReference = - getInstruction(emptyComponentMethodIndex).reference - val emptyComponentFieldReference = - getInstruction(emptyComponentMethodIndex + 2).reference + fun checkMethodSignatureMatch(pathBuilder: MutableMethod) = emptyComponentMethod.apply { + if (!MethodUtil.methodSignaturesMatch(pathBuilder, this)) { + implementation!!.instructions + .withIndex() + .filter { (_, instruction) -> + val reference = (instruction as? ReferenceInstruction)?.reference + reference is MethodReference && + MethodUtil.methodSignaturesMatch(pathBuilder, reference) + } + .map { (index, _) -> index } + .reversed() + .forEach { + val insertRegister = + getInstruction(it + 1).registerA + val insertIndex = it + 2 + + addInstructionsWithLabels( + insertIndex, """ + if-nez v$insertRegister, :ignore + """ + emptyComponentLabel, + ExternalLabel("ignore", getInstruction(insertIndex)) + ) + } emptyComponentLabel = """ - move-object/from16 v0, p1 - invoke-static {v0}, $emptyComponentMethodReference - move-result-object v0 - iget-object v0, v0, $emptyComponentFieldReference + const/4 v0, 0x0 return-object v0 """ } @@ -90,65 +118,27 @@ object LithoFilterPatch : BytecodePatch( PathBuilderFingerprint.resultOrThrow().let { it.mutableMethod.apply { - // If the EmptyComponents Method and the PathBuilder Method are different, - // new inject way is required. - // TODO: Refactor LithoFilter patch when support for YouTube 18.29.38 ~ 19.17.41 and YT Music 6.29.58 ~ 6.51.53 is dropped. - if (emptyComponentMethodName != name) { - // In this case, the access modifier of the method that handles PathBuilder is 'AccessFlags.PRIVATE or AccessFlags.FINAL. - // Methods that handle PathBuilder are invoked by methods that handle EmptyComponents. - // 'pathBuilderMethodCall' is a reference that invokes the PathBuilder Method. - pathBuilderMethodCall = "$definingClass->$name(" - for (i in 0 until parameters.size) { - pathBuilderMethodCall += parameterTypes[i] - } - pathBuilderMethodCall += ")$returnType" - - emptyComponentMethod.apply { - // If the return value of the PathBuilder Method is null, - // it means that pathBuilder has been filtered by the LithoFilterPatch. - // (Refer comments below.) - // Returns emptyComponents. - for (index in implementation!!.instructions.size - 1 downTo 0) { - val instruction = getInstruction(index) - if ((instruction as? ReferenceInstruction)?.reference.toString() != pathBuilderMethodCall) - continue - - val insertRegister = - getInstruction(index + 1).registerA - val insertIndex = index + 2 - - addInstructionsWithLabels( - insertIndex, """ - if-nez v$insertRegister, :ignore - """ + emptyComponentLabel, - ExternalLabel("ignore", getInstruction(insertIndex)) - ) - } - } + checkMethodSignatureMatch(this) - // If the EmptyComponents Method and the PathBuilder Method are different, - // PathBuilder Method's returnType cannot cast emptyComponents. - // So just returns null value. - emptyComponentLabel = """ - const/4 v0, 0x0 - return-object v0 - """ + val stringBuilderIndex = indexOfFirstInstructionOrThrow { + opcode == Opcode.IPUT_OBJECT && + getReference()?.type == "Ljava/lang/StringBuilder;" } - - val stringBuilderIndex = - getTargetIndexWithFieldReferenceTypeOrThrow("Ljava/lang/StringBuilder;") val stringBuilderRegister = getInstruction(stringBuilderIndex).registerA val emptyStringIndex = getStringInstructionIndex("") - - val identifierIndex = - getTargetIndexReversedOrThrow(emptyStringIndex, Opcode.IPUT_OBJECT) - val identifierRegister = - getInstruction(identifierIndex).registerA - - val objectIndex = getTargetIndexOrThrow(emptyStringIndex, Opcode.INVOKE_VIRTUAL) - val objectRegister = getInstruction(objectIndex).registerC + val identifierRegister = getInstruction( + indexOfFirstInstructionReversedOrThrow(emptyStringIndex) { + opcode == Opcode.IPUT_OBJECT + && getReference()?.type == "Ljava/lang/String;" + } + ).registerA + val objectRegister = getInstruction( + indexOfFirstInstructionOrThrow(emptyStringIndex) { + opcode == Opcode.INVOKE_VIRTUAL + } + ).registerC val insertIndex = stringBuilderIndex + 1 @@ -163,29 +153,69 @@ object LithoFilterPatch : BytecodePatch( } } - LithoFilterPatchConstructorFingerprint.resultOrThrow().let { - it.mutableMethod.apply { - removeInstructions(0, 6) - - addFilter = { classDescriptor -> - addInstructions( - 0, """ - new-instance v1, $classDescriptor - invoke-direct {v1}, $classDescriptor->()V - const/16 v2, ${filterCount++} - aput-object v1, v0, v2 - """ + // Create a new method to get the filter array to avoid register conflicts. + // This fixes an issue with Integrations compiled with Android Gradle Plugin 8.3.0+. + // https://github.com/ReVanced/revanced-patches/issues/2818 + val lithoFilterMethods = context.findClass(INTEGRATIONS_LITHO_FILER_CLASS_DESCRIPTOR) + ?.mutableClass + ?.methods + ?: throw PatchException("LithoFilterPatch class not found.") + + lithoFilterMethods + .first { it.name == "" } + .apply { + val setArrayIndex = indexOfFirstInstructionOrThrow { + opcode == Opcode.SPUT_OBJECT && + getReference()?.type == INTEGRATIONS_FILER_ARRAY_DESCRIPTOR + } + val setArrayRegister = + getInstruction(setArrayIndex).registerA + val addedMethodName = "getFilterArray" + + addInstructions( + setArrayIndex, """ + invoke-static {}, $INTEGRATIONS_LITHO_FILER_CLASS_DESCRIPTOR->$addedMethodName()$INTEGRATIONS_FILER_ARRAY_DESCRIPTOR + move-result-object v$setArrayRegister + """ + ) + + filterArrayMethod = ImmutableMethod( + definingClass, + addedMethodName, + emptyList(), + INTEGRATIONS_FILER_ARRAY_DESCRIPTOR, + AccessFlags.PRIVATE or AccessFlags.STATIC, + null, + null, + MutableMethodImplementation(3), + ).toMutable().apply { + addInstruction( + 0, + "return-object v2" ) } + + lithoFilterMethods.add(filterArrayMethod) } + + addFilter = { classDescriptor -> + filterArrayMethod.addInstructions( + 0, + """ + new-instance v0, $classDescriptor + invoke-direct {v0}, $classDescriptor->()V + const/16 v1, ${filterCount++} + aput-object v0, v2, v1 + """ + ) } } - override fun close() = LithoFilterPatchConstructorFingerprint.result!! - .mutableMethod.addInstructions( - 0, """ - const/16 v0, $filterCount - new-array v0, v0, [$INTEGRATIONS_FILER_CLASS_DESCRIPTOR - """ - ) + override fun close() = filterArrayMethod.addInstructions( + 0, + """ + const/16 v0, $filterCount + new-array v2, v0, $INTEGRATIONS_FILER_ARRAY_DESCRIPTOR + """ + ) } \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/shared/litho/fingerprints/SetByteBufferFingerprint.kt b/src/main/kotlin/app/revanced/patches/shared/litho/fingerprints/ByteBufferFingerprint.kt similarity index 94% rename from src/main/kotlin/app/revanced/patches/shared/litho/fingerprints/SetByteBufferFingerprint.kt rename to src/main/kotlin/app/revanced/patches/shared/litho/fingerprints/ByteBufferFingerprint.kt index bfa2fc004..8a14c41fd 100644 --- a/src/main/kotlin/app/revanced/patches/shared/litho/fingerprints/SetByteBufferFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/shared/litho/fingerprints/ByteBufferFingerprint.kt @@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint import com.android.tools.smali.dexlib2.AccessFlags import com.android.tools.smali.dexlib2.Opcode -internal object SetByteBufferFingerprint : MethodFingerprint( +internal object ByteBufferFingerprint : MethodFingerprint( returnType = "V", accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("I", "Ljava/nio/ByteBuffer;"), diff --git a/src/main/kotlin/app/revanced/patches/shared/litho/fingerprints/LithoFilterPatchConstructorFingerprint.kt b/src/main/kotlin/app/revanced/patches/shared/litho/fingerprints/LithoFilterPatchConstructorFingerprint.kt deleted file mode 100644 index af0ce820b..000000000 --- a/src/main/kotlin/app/revanced/patches/shared/litho/fingerprints/LithoFilterPatchConstructorFingerprint.kt +++ /dev/null @@ -1,14 +0,0 @@ -package app.revanced.patches.shared.litho.fingerprints - -import app.revanced.patcher.extensions.or -import app.revanced.patcher.fingerprint.MethodFingerprint -import app.revanced.patches.shared.integrations.Constants.COMPONENTS_PATH -import com.android.tools.smali.dexlib2.AccessFlags - -internal object LithoFilterPatchConstructorFingerprint : MethodFingerprint( - returnType = "V", - accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC or AccessFlags.CONSTRUCTOR, - customFingerprint = { methodDef, _ -> - methodDef.definingClass == "$COMPONENTS_PATH/LithoFilterPatch;" - } -) \ No newline at end of file From 8aaf2d946b04065a531cef705df5390e1b9c7a6d Mon Sep 17 00:00:00 2001 From: inotia00 <108592928+inotia00@users.noreply.github.com> Date: Sun, 15 Sep 2024 11:41:16 +0900 Subject: [PATCH 39/63] chore(YouTube - Theme): Revert background color of More comments icon in live chats --- .../youtube/layout/theme/BaseThemePatch.kt | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/theme/BaseThemePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/theme/BaseThemePatch.kt index 303150dd3..d0e95dc1a 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/theme/BaseThemePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/theme/BaseThemePatch.kt @@ -5,7 +5,6 @@ import app.revanced.patcher.patch.ResourcePatch import app.revanced.patcher.patch.annotation.Patch import app.revanced.patches.shared.drawable.DrawableColorPatch import app.revanced.patches.youtube.utils.integrations.Constants.UTILS_PATH -import app.revanced.util.doRecursively import org.w3c.dom.Element @Patch(dependencies = [DrawableColorPatch::class]) @@ -88,24 +87,6 @@ object BaseThemePatch : ResourcePatch() { } } - /** - * Since YouTube 19.20.35, the visibility of the background color of the `More comments` icon in live chat has worsened. - * See ReVanced_Extended#2197 - * - * As a temporary workaround, revert to the colors of YouTube 19.19.39. - */ - context.xmlEditor["res/drawable/live_chat_more_comments_selector.xml"].use { editor -> - editor.file.doRecursively loop@{ node -> - if (node !is Element) return@loop - - node.getAttributeNode("android:color")?.let { attribute -> - if (attribute.textContent == "?ytInvertedBackground") { - attribute.textContent = "?ytThemedBlue" - } - } - } - } - } internal var isMonetPatchIncluded: Boolean = false From 5dc3f7a4a8d80140fcef4d2a89b8ae101e3441b7 Mon Sep 17 00:00:00 2001 From: inotia00 <108592928+inotia00@users.noreply.github.com> Date: Sun, 15 Sep 2024 13:11:39 +0900 Subject: [PATCH 40/63] feat(Hide ads): Remove `Close fullscreen ads` setting --- .../patches/music/ads/general/AdsPatch.kt | 14 +--- .../patches/shared/ads/BaseAdsPatch.kt | 72 +++++++------------ .../youtube/ads/general/AdsBytecodePatch.kt | 2 +- .../patches/youtube/ads/general/AdsPatch.kt | 4 -- .../youtube/settings/xml/revanced_prefs.xml | 1 - 5 files changed, 28 insertions(+), 65 deletions(-) diff --git a/src/main/kotlin/app/revanced/patches/music/ads/general/AdsPatch.kt b/src/main/kotlin/app/revanced/patches/music/ads/general/AdsPatch.kt index 9efa9ff3f..d490534a5 100644 --- a/src/main/kotlin/app/revanced/patches/music/ads/general/AdsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/ads/general/AdsPatch.kt @@ -61,9 +61,6 @@ object AdsPatch : BaseBytecodePatch( private const val ADS_FILTER_CLASS_DESCRIPTOR = "$COMPONENTS_PATH/AdsFilter;" - private const val FULLSCREEN_ADS_FILTER_CLASS_DESCRIPTOR = - "${app.revanced.patches.shared.integrations.Constants.COMPONENTS_PATH}/FullscreenAdsFilter;" - private const val PREMIUM_PROMOTION_POP_UP_CLASS_DESCRIPTOR = "$ADS_PATH/PremiumPromotionPatch;" @@ -82,7 +79,7 @@ object AdsPatch : BaseBytecodePatch( // litho view, used in 'ShowDialogCommandOuterClass' in innertube ShowDialogCommandFingerprint .resultOrThrow() - .hookLithoFullscreenAds(context) + .hookLithoFullscreenAds() // endregion @@ -174,21 +171,12 @@ object AdsPatch : BaseBytecodePatch( // endregion LithoFilterPatch.addFilter(ADS_FILTER_CLASS_DESCRIPTOR) - LithoFilterPatch.addFilter(FULLSCREEN_ADS_FILTER_CLASS_DESCRIPTOR) SettingsPatch.addSwitchPreference( CategoryType.ADS, "revanced_hide_fullscreen_ads", "true" ) - SettingsPatch.addSwitchPreference( - CategoryType.ADS, - "revanced_hide_fullscreen_ads_type", - "true", - "revanced_hide_fullscreen_ads", - false, - setSummaryOnOff = true - ) SettingsPatch.addSwitchPreference( CategoryType.ADS, "revanced_hide_general_ads", diff --git a/src/main/kotlin/app/revanced/patches/shared/ads/BaseAdsPatch.kt b/src/main/kotlin/app/revanced/patches/shared/ads/BaseAdsPatch.kt index 590371d12..c99fa68fa 100644 --- a/src/main/kotlin/app/revanced/patches/shared/ads/BaseAdsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/shared/ads/BaseAdsPatch.kt @@ -12,14 +12,12 @@ import app.revanced.patcher.util.smali.ExternalLabel import app.revanced.patches.shared.ads.fingerprints.MusicAdsFingerprint import app.revanced.patches.shared.ads.fingerprints.VideoAdsFingerprint import app.revanced.patches.shared.integrations.Constants.PATCHES_PATH -import app.revanced.util.getTargetIndexOrThrow -import app.revanced.util.getTargetIndexWithMethodReferenceNameOrThrow +import app.revanced.util.getReference import app.revanced.util.getWalkerMethod import app.revanced.util.getWideLiteralInstructionIndex import app.revanced.util.indexOfFirstInstructionOrThrow import app.revanced.util.resultOrThrow import com.android.tools.smali.dexlib2.Opcode -import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction import com.android.tools.smali.dexlib2.iface.reference.FieldReference @@ -82,7 +80,7 @@ abstract class BaseAdsPatch( } } - internal fun MethodFingerprintResult.hookLithoFullscreenAds(context: BytecodeContext) { + internal fun MethodFingerprintResult.hookLithoFullscreenAds() { mutableMethod.apply { val dialogCodeIndex = scanResult.patternScanResult!!.endIndex val dialogCodeField = @@ -90,52 +88,34 @@ abstract class BaseAdsPatch( if (dialogCodeField.type != "I") throw PatchException("Invalid dialogCodeField: $dialogCodeField") - // Disable fullscreen ads - addInstructionsWithLabels( - 0, + var prependInstructions = """ + move-object/from16 v0, p1 + move-object/from16 v1, p2 """ - move-object/from16 v0, p2 - - # In the latest version of YouTube and YouTube Music, it is used after being cast - - check-cast v0, ${dialogCodeField.definingClass} - iget v0, v0, $dialogCodeField - invoke-static {v0}, $INTEGRATIONS_CLASS_DESCRIPTOR->disableFullscreenAds(I)Z - move-result v0 - if-eqz v0, :show - return-void - """, ExternalLabel("show", getInstruction(0)) - ) - // Close fullscreen ads + if (parameterTypes.firstOrNull() != "[B") { + val toByteArrayReference = getInstruction( + indexOfFirstInstructionOrThrow { + getReference()?.name == "toByteArray" + } + ).reference - // Find the instruction whose name is "show" in [MethodReference] and click the 'AlertDialog.BUTTON_POSITIVE' button. - // In this case, an instruction for 'getButton' must be added to smali, not in integrations - // (This custom dialog cannot be cast to [AlertDialog] or [Dialog]) - val dialogIndex = getTargetIndexWithMethodReferenceNameOrThrow("show") - val dialogReference = getInstruction(dialogIndex).reference - val dialogDefiningClass = (dialogReference as MethodReference).definingClass - val getButtonMethod = context.findClass(dialogDefiningClass)!! - .mutableClass.methods.first { method -> - method.parameters == listOf("I") - && method.returnType == "Landroid/widget/Button;" - } - val getButtonCall = - dialogDefiningClass + "->" + getButtonMethod.name + "(I)Landroid/widget/Button;" - val dialogRegister = getInstruction(dialogIndex).registerC - val freeIndex = getTargetIndexOrThrow(dialogIndex, Opcode.IF_EQZ) - val freeRegister = getInstruction(freeIndex).registerA - - addInstructions( - dialogIndex + 1, """ - # Get the 'AlertDialog.BUTTON_POSITIVE' from custom dialog - # Since this custom dialog cannot be cast to AlertDialog or Dialog, - # It should come from smali, not integrations. - const/4 v$freeRegister, -0x1 - invoke-virtual {v$dialogRegister, v$freeRegister}, $getButtonCall - move-result-object v$freeRegister - invoke-static {v$freeRegister}, $INTEGRATIONS_CLASS_DESCRIPTOR->setCloseButton(Landroid/widget/Button;)V + prependInstructions += """ + invoke-virtual {v0}, $toByteArrayReference + move-result-object v0 """ + } + + // Disable fullscreen ads + addInstructionsWithLabels( + 0, prependInstructions + """ + check-cast v1, ${dialogCodeField.definingClass} + iget v1, v1, $dialogCodeField + invoke-static {v0, v1}, $INTEGRATIONS_CLASS_DESCRIPTOR->disableFullscreenAds([BI)Z + move-result v1 + if-eqz v1, :show + return-void + """, ExternalLabel("show", getInstruction(0)) ) } } diff --git a/src/main/kotlin/app/revanced/patches/youtube/ads/general/AdsBytecodePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/ads/general/AdsBytecodePatch.kt index c6470cfcf..9a9868502 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/ads/general/AdsBytecodePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/ads/general/AdsBytecodePatch.kt @@ -43,7 +43,7 @@ object AdsBytecodePatch : BytecodePatch( // litho view, used in 'ShowDialogCommandOuterClass' in innertube ShowDialogCommandFingerprint .resultOrThrow() - .hookLithoFullscreenAds(context) + .hookLithoFullscreenAds() // endregion diff --git a/src/main/kotlin/app/revanced/patches/youtube/ads/general/AdsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/ads/general/AdsPatch.kt index 3e7c435ee..613c33dde 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/ads/general/AdsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/ads/general/AdsPatch.kt @@ -50,12 +50,8 @@ object AdsPatch : BaseResourcePatch( private const val ADS_FILTER_CLASS_DESCRIPTOR = "$COMPONENTS_PATH/AdsFilter;" - private const val FULLSCREEN_ADS_FILTER_CLASS_DESCRIPTOR = - "${app.revanced.patches.shared.integrations.Constants.COMPONENTS_PATH}/FullscreenAdsFilter;" - override fun execute(context: ResourceContext) { LithoFilterPatch.addFilter(ADS_FILTER_CLASS_DESCRIPTOR) - LithoFilterPatch.addFilter(FULLSCREEN_ADS_FILTER_CLASS_DESCRIPTOR) context.forEach { diff --git a/src/main/resources/youtube/settings/xml/revanced_prefs.xml b/src/main/resources/youtube/settings/xml/revanced_prefs.xml index 8a262e26f..10f5349af 100644 --- a/src/main/resources/youtube/settings/xml/revanced_prefs.xml +++ b/src/main/resources/youtube/settings/xml/revanced_prefs.xml @@ -132,7 +132,6 @@ + SETTINGS: HIDE_NAVIGATION_COMPONENTS --> + + PREFERENCE_SCREEN: VIDEO --> From c60bfc3e3566e203fce0eeb8c9fefadb8a21d452 Mon Sep 17 00:00:00 2001 From: inotia00 <108592928+inotia00@users.noreply.github.com> Date: Sun, 15 Sep 2024 20:21:41 +0900 Subject: [PATCH 47/63] chore: lint code --- .../branding/icon/CustomBrandingIconPatch.kt | 6 +++++- .../patches/shared/ads/BaseAdsPatch.kt | 10 +++++----- .../general/toolbar/ToolBarComponentsPatch.kt | 3 ++- .../ActionBarRingoTextFingerprint.kt | 4 ++-- .../BackgroundPlaybackPatch.kt | 5 +++-- .../youtube/utils/PlayerResponseModelUtils.kt | 9 +++++---- .../streamingdata/SpoofStreamingDataPatch.kt | 2 +- .../utils/playertype/PlayerTypeHookPatch.kt | 1 - .../video/information/VideoInformationPatch.kt | 9 ++++++--- .../PlaybackInitializationFingerprint.kt | 9 +++++---- .../VideoIdFingerprintBackgroundPlay.kt | 1 + .../kotlin/app/revanced/util/BytecodeUtils.kt | 18 ++++++++++++++---- 12 files changed, 49 insertions(+), 28 deletions(-) diff --git a/src/main/kotlin/app/revanced/patches/music/layout/branding/icon/CustomBrandingIconPatch.kt b/src/main/kotlin/app/revanced/patches/music/layout/branding/icon/CustomBrandingIconPatch.kt index b1ac63ce7..cff91ffde 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/branding/icon/CustomBrandingIconPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/branding/icon/CustomBrandingIconPatch.kt @@ -231,7 +231,11 @@ object CustomBrandingIconPatch : BaseResourcePatch( if (oldSplashIconNotExists) { splashIconResourceGroups.let { resourceGroups -> resourceGroups.forEach { - context.copyResources("$youtubeMusicIconResourcePath/splash", it, createDirectoryIfNotExist = true) + context.copyResources( + "$youtubeMusicIconResourcePath/splash", + it, + createDirectoryIfNotExist = true + ) } } } diff --git a/src/main/kotlin/app/revanced/patches/shared/ads/BaseAdsPatch.kt b/src/main/kotlin/app/revanced/patches/shared/ads/BaseAdsPatch.kt index c99fa68fa..90e3f1a80 100644 --- a/src/main/kotlin/app/revanced/patches/shared/ads/BaseAdsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/shared/ads/BaseAdsPatch.kt @@ -32,6 +32,11 @@ abstract class BaseAdsPatch( VideoAdsFingerprint ) ) { + private companion object { + const val INTEGRATIONS_CLASS_DESCRIPTOR = + "$PATCHES_PATH/FullscreenAdsPatch;" + } + override fun execute(context: BytecodeContext) { MusicAdsFingerprint.resultOrThrow().let { it.mutableMethod.apply { @@ -119,9 +124,4 @@ abstract class BaseAdsPatch( ) } } - - private companion object { - const val INTEGRATIONS_CLASS_DESCRIPTOR = - "$PATCHES_PATH/FullscreenAdsPatch;" - } } \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/general/toolbar/ToolBarComponentsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/general/toolbar/ToolBarComponentsPatch.kt index c3e85e688..acc992511 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/general/toolbar/ToolBarComponentsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/general/toolbar/ToolBarComponentsPatch.kt @@ -180,7 +180,8 @@ object ToolBarComponentsPatch : BaseBytecodePatch( "invoke-static {v$viewRegister}, $GENERAL_CLASS_DESCRIPTOR->setWideSearchBarLayout(Landroid/view/View;)V" ) - val targetIndex = ActionBarRingoBackgroundFingerprint.indexOfStaticInstruction(this) + 1 + val targetIndex = + ActionBarRingoBackgroundFingerprint.indexOfStaticInstruction(this) + 1 val targetRegister = getInstruction(targetIndex).registerA injectSearchBarHook( diff --git a/src/main/kotlin/app/revanced/patches/youtube/general/toolbar/fingerprints/ActionBarRingoTextFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/general/toolbar/fingerprints/ActionBarRingoTextFingerprint.kt index 7c8bbc6bf..8e0e7fdcc 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/general/toolbar/fingerprints/ActionBarRingoTextFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/general/toolbar/fingerprints/ActionBarRingoTextFingerprint.kt @@ -2,8 +2,8 @@ package app.revanced.patches.youtube.general.toolbar.fingerprints import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.MethodFingerprint -import app.revanced.patches.youtube.general.toolbar.fingerprints.ActionBarRingoTextFingerprint.indexOfStaticInstruction import app.revanced.patches.youtube.general.toolbar.fingerprints.ActionBarRingoTextFingerprint.indexOfStartDelayInstruction +import app.revanced.patches.youtube.general.toolbar.fingerprints.ActionBarRingoTextFingerprint.indexOfStaticInstruction import app.revanced.util.getReference import app.revanced.util.indexOfFirstInstruction import app.revanced.util.indexOfFirstInstructionReversed @@ -26,7 +26,7 @@ internal object ActionBarRingoTextFingerprint : MethodFingerprint( } fun indexOfStaticInstruction(methodDef: Method) = - methodDef.indexOfFirstInstructionReversed (indexOfStartDelayInstruction(methodDef)) { + methodDef.indexOfFirstInstructionReversed(indexOfStartDelayInstruction(methodDef)) { val reference = getReference() opcode == Opcode.INVOKE_STATIC && reference?.parameterTypes?.size == 1 && diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/backgroundplayback/BackgroundPlaybackPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/backgroundplayback/BackgroundPlaybackPatch.kt index 8d8cddd7b..825b4496f 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/backgroundplayback/BackgroundPlaybackPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/backgroundplayback/BackgroundPlaybackPatch.kt @@ -45,7 +45,7 @@ object BackgroundPlaybackPatch : BaseBytecodePatch( override fun execute(context: BytecodeContext) { BackgroundPlaybackManagerFingerprint.resultOrThrow().mutableMethod.apply { - findOpcodeIndicesReversed(Opcode.RETURN).forEach{ index -> + findOpcodeIndicesReversed(Opcode.RETURN).forEach { index -> val register = getInstruction(index).registerA // Replace to preserve control flow label. @@ -54,7 +54,8 @@ object BackgroundPlaybackPatch : BaseBytecodePatch( "invoke-static { v$register }, $MISC_PATH/BackgroundPlaybackPatch;->allowBackgroundPlayback(Z)Z" ) - addInstructions(index + 1, + addInstructions( + index + 1, """ move-result v$register return v$register diff --git a/src/main/kotlin/app/revanced/patches/youtube/utils/PlayerResponseModelUtils.kt b/src/main/kotlin/app/revanced/patches/youtube/utils/PlayerResponseModelUtils.kt index 9ca4a148f..0d1d44b01 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/utils/PlayerResponseModelUtils.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/utils/PlayerResponseModelUtils.kt @@ -10,8 +10,9 @@ internal object PlayerResponseModelUtils { const val PLAYER_RESPONSE_MODEL_CLASS_DESCRIPTOR = "Lcom/google/android/libraries/youtube/innertube/model/player/PlayerResponseModel;" - fun indexOfPlayerResponseModelInstruction(methodDef: Method) = methodDef.indexOfFirstInstruction { - opcode == Opcode.INVOKE_INTERFACE && - getReference()?.definingClass == PLAYER_RESPONSE_MODEL_CLASS_DESCRIPTOR - } + fun indexOfPlayerResponseModelInstruction(methodDef: Method) = + methodDef.indexOfFirstInstruction { + opcode == Opcode.INVOKE_INTERFACE && + getReference()?.definingClass == PLAYER_RESPONSE_MODEL_CLASS_DESCRIPTOR + } } diff --git a/src/main/kotlin/app/revanced/patches/youtube/utils/fix/streamingdata/SpoofStreamingDataPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/utils/fix/streamingdata/SpoofStreamingDataPatch.kt index 33e00dc9a..3f06ad052 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/utils/fix/streamingdata/SpoofStreamingDataPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/utils/fix/streamingdata/SpoofStreamingDataPatch.kt @@ -222,7 +222,7 @@ object SpoofStreamingDataPatch : BaseBytecodePatch( // region Append spoof info. NerdsStatsVideoFormatBuilderFingerprint.resultOrThrow().mutableMethod.apply { - findOpcodeIndicesReversed(Opcode.RETURN_OBJECT).forEach{ index -> + findOpcodeIndicesReversed(Opcode.RETURN_OBJECT).forEach { index -> val register = getInstruction(index).registerA addInstructions( diff --git a/src/main/kotlin/app/revanced/patches/youtube/utils/playertype/PlayerTypeHookPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/utils/playertype/PlayerTypeHookPatch.kt index 493a8e11b..9f208cdfe 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/utils/playertype/PlayerTypeHookPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/utils/playertype/PlayerTypeHookPatch.kt @@ -18,7 +18,6 @@ import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch import app.revanced.util.addFieldAndInstructions import app.revanced.util.getStringInstructionIndex import app.revanced.util.getTargetIndexOrThrow -import app.revanced.util.getTargetIndexWithMethodReferenceNameOrThrow import app.revanced.util.resultOrThrow import com.android.tools.smali.dexlib2.Opcode import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/information/VideoInformationPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/video/information/VideoInformationPatch.kt index 5518a511f..ddeab2fa5 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/video/information/VideoInformationPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/video/information/VideoInformationPatch.kt @@ -274,10 +274,13 @@ object VideoInformationPatch : BytecodePatch( /** * Set current video information */ - channelIdMethodCall = ChannelIdFingerprint.getPlayerResponseInstruction("Ljava/lang/String;") - channelNameMethodCall = ChannelNameFingerprint.getPlayerResponseInstruction("Ljava/lang/String;") + channelIdMethodCall = + ChannelIdFingerprint.getPlayerResponseInstruction("Ljava/lang/String;") + channelNameMethodCall = + ChannelNameFingerprint.getPlayerResponseInstruction("Ljava/lang/String;") videoIdMethodCall = VideoIdFingerprint.getPlayerResponseInstruction("Ljava/lang/String;") - videoTitleMethodCall = VideoTitleFingerprint.getPlayerResponseInstruction("Ljava/lang/String;") + videoTitleMethodCall = + VideoTitleFingerprint.getPlayerResponseInstruction("Ljava/lang/String;") videoLengthMethodCall = VideoLengthFingerprint.getPlayerResponseInstruction("J") videoIsLiveMethodCall = ChannelIdFingerprint.getPlayerResponseInstruction("Z") diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/information/fingerprints/PlaybackInitializationFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/video/information/fingerprints/PlaybackInitializationFingerprint.kt index 88d135365..d5bbd3cd6 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/video/information/fingerprints/PlaybackInitializationFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/video/information/fingerprints/PlaybackInitializationFingerprint.kt @@ -20,8 +20,9 @@ internal object PlaybackInitializationFingerprint : MethodFingerprint( indexOfPlayerResponseModelInstruction(methodDef) >= 0 } ) { - fun indexOfPlayerResponseModelInstruction(methodDef: Method) = methodDef.indexOfFirstInstruction { - opcode == Opcode.INVOKE_DIRECT && - getReference()?.returnType == PLAYER_RESPONSE_MODEL_CLASS_DESCRIPTOR - } + fun indexOfPlayerResponseModelInstruction(methodDef: Method) = + methodDef.indexOfFirstInstruction { + opcode == Opcode.INVOKE_DIRECT && + getReference()?.returnType == PLAYER_RESPONSE_MODEL_CLASS_DESCRIPTOR + } } diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/information/fingerprints/VideoIdFingerprintBackgroundPlay.kt b/src/main/kotlin/app/revanced/patches/youtube/video/information/fingerprints/VideoIdFingerprintBackgroundPlay.kt index 80bcd8c47..750929252 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/video/information/fingerprints/VideoIdFingerprintBackgroundPlay.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/video/information/fingerprints/VideoIdFingerprintBackgroundPlay.kt @@ -23,6 +23,7 @@ internal object VideoIdFingerprintBackgroundPlay : MethodFingerprint( customFingerprint = { methodDef, classDef -> methodDef.name == "l" && classDef.methods.count() == 17 && + methodDef.implementation != null && indexOfPlayerResponseModelInstruction(methodDef) >= 0 } ) diff --git a/src/main/kotlin/app/revanced/util/BytecodeUtils.kt b/src/main/kotlin/app/revanced/util/BytecodeUtils.kt index 5b746d12d..702df1930 100644 --- a/src/main/kotlin/app/revanced/util/BytecodeUtils.kt +++ b/src/main/kotlin/app/revanced/util/BytecodeUtils.kt @@ -291,7 +291,10 @@ fun Method.indexOfFirstInstructionReversed(startIndex: Int? = null, targetOpcode * @return -1 if the instruction is not found. * @see indexOfFirstInstructionReversedOrThrow */ -fun Method.indexOfFirstInstructionReversed(startIndex: Int? = null, predicate: Instruction.() -> Boolean): Int { +fun Method.indexOfFirstInstructionReversed( + startIndex: Int? = null, + predicate: Instruction.() -> Boolean +): Int { var instructions = this.implementation!!.instructions if (startIndex != null) { instructions = instructions.take(startIndex + 1) @@ -308,7 +311,10 @@ fun Method.indexOfFirstInstructionReversed(startIndex: Int? = null, predicate: I * @return -1 if the instruction is not found. * @see indexOfFirstInstructionReversed */ -fun Method.indexOfFirstInstructionReversedOrThrow(startIndex: Int? = null, targetOpcode: Opcode): Int = +fun Method.indexOfFirstInstructionReversedOrThrow( + startIndex: Int? = null, + targetOpcode: Opcode +): Int = indexOfFirstInstructionReversedOrThrow(startIndex) { opcode == targetOpcode } @@ -321,7 +327,10 @@ fun Method.indexOfFirstInstructionReversedOrThrow(startIndex: Int? = null, targe * @return -1 if the instruction is not found. * @see indexOfFirstInstructionReversed */ -fun Method.indexOfFirstInstructionReversedOrThrow(startIndex: Int? = null, predicate: Instruction.() -> Boolean): Int { +fun Method.indexOfFirstInstructionReversedOrThrow( + startIndex: Int? = null, + predicate: Instruction.() -> Boolean +): Int { val index = indexOfFirstInstructionReversed(startIndex, predicate) if (index < 0) { @@ -424,7 +433,8 @@ inline fun Instruction.getReference() = * @param predicate The predicate to match. * @return The index of the first [Instruction] that matches the predicate. */ -fun Method.indexOfFirstInstruction(predicate: Instruction.() -> Boolean) = indexOfFirstInstruction(0, predicate) +fun Method.indexOfFirstInstruction(predicate: Instruction.() -> Boolean) = + indexOfFirstInstruction(0, predicate) /** * Get the index of the first [Instruction] that matches the predicate, starting from [startIndex]. From 01ec72a993391d31be06783d2a11a787412dc245 Mon Sep 17 00:00:00 2001 From: inotia00 <108592928+inotia00@users.noreply.github.com> Date: Sun, 15 Sep 2024 20:40:28 +0900 Subject: [PATCH 48/63] fix(YouTube Music - GmsCore support): Can't share Stories to Facebook, Instagram and Snapchat --- .../music/utils/fix/fileprovider/FileProviderPatch.kt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/app/revanced/patches/music/utils/fix/fileprovider/FileProviderPatch.kt b/src/main/kotlin/app/revanced/patches/music/utils/fix/fileprovider/FileProviderPatch.kt index 738aaab18..6b6212d46 100644 --- a/src/main/kotlin/app/revanced/patches/music/utils/fix/fileprovider/FileProviderPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/utils/fix/fileprovider/FileProviderPatch.kt @@ -22,7 +22,7 @@ object FileProviderPatch : BytecodePatch( * For some reason, if the app gets "android.support.FILE_PROVIDER_PATHS", * the package name of YouTube is used, not the package name of the YT Music. * - * There is no issue in the stock YT Music, but this is an issue in the MicroG Build. + * There is no issue in the stock YT Music, but this is an issue in the GmsCore Build. * https://github.com/inotia00/ReVanced_Extended/issues/1830 * * To solve this issue, replace the package name of YouTube with YT Music's package name. @@ -31,10 +31,16 @@ object FileProviderPatch : BytecodePatch( it.mutableMethod.apply { addInstructionsWithLabels( 0, """ + const-string v0, "com.google.android.youtube.fileprovider" + invoke-static {p1, v0}, Ljava/util/Objects;->equals(Ljava/lang/Object;Ljava/lang/Object;)Z + move-result v0 + if-nez v0, :fix const-string v0, "$youtubePackageName.fileprovider" invoke-static {p1, v0}, Ljava/util/Objects;->equals(Ljava/lang/Object;Ljava/lang/Object;)Z move-result v0 - if-eqz v0, :ignore + if-nez v0, :fix + goto :ignore + :fix const-string p1, "$musicPackageName.fileprovider" """, ExternalLabel("ignore", getInstruction(0)) ) From ec8d63331c5701979f89be90cf5cdfb746e02905 Mon Sep 17 00:00:00 2001 From: inotia00 <108592928+inotia00@users.noreply.github.com> Date: Sun, 15 Sep 2024 20:38:39 +0900 Subject: [PATCH 49/63] fix(YouTube Music - Disable auto captions): Captions cannot be changed when `Disable forced auto captions` is turned on --- .../general/autocaptions/AutoCaptionsPatch.kt | 25 ++------- .../shared/captions/BaseAutoCaptionsPatch.kt | 56 +++++++++++++++++++ ...dererDecoderRecommendedLevelFingerprint.kt | 5 +- .../fingerprints/SubtitleTrackFingerprint.kt | 2 +- .../StartVideoInformerFingerprint.kt | 2 +- .../general/autocaptions/AutoCaptionsPatch.kt | 46 ++------------- .../components/PlayerComponentsPatch.kt | 2 +- 7 files changed, 72 insertions(+), 66 deletions(-) create mode 100644 src/main/kotlin/app/revanced/patches/shared/captions/BaseAutoCaptionsPatch.kt rename src/main/kotlin/app/revanced/patches/{youtube/general/autocaptions => shared/captions}/fingerprints/StoryboardRendererDecoderRecommendedLevelFingerprint.kt (59%) rename src/main/kotlin/app/revanced/patches/shared/{ => captions}/fingerprints/SubtitleTrackFingerprint.kt (86%) rename src/main/kotlin/app/revanced/patches/{youtube/utils => shared}/fingerprints/StartVideoInformerFingerprint.kt (89%) diff --git a/src/main/kotlin/app/revanced/patches/music/general/autocaptions/AutoCaptionsPatch.kt b/src/main/kotlin/app/revanced/patches/music/general/autocaptions/AutoCaptionsPatch.kt index 22c0d9b64..6b68863a0 100644 --- a/src/main/kotlin/app/revanced/patches/music/general/autocaptions/AutoCaptionsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/general/autocaptions/AutoCaptionsPatch.kt @@ -1,39 +1,24 @@ package app.revanced.patches.music.general.autocaptions import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.InstructionExtensions.addInstructions -import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patches.music.utils.compatibility.Constants.COMPATIBLE_PACKAGE -import app.revanced.patches.music.utils.integrations.Constants.GENERAL_CLASS_DESCRIPTOR import app.revanced.patches.music.utils.settings.CategoryType import app.revanced.patches.music.utils.settings.SettingsPatch -import app.revanced.patches.shared.fingerprints.SubtitleTrackFingerprint +import app.revanced.patches.shared.captions.BaseAutoCaptionsPatch import app.revanced.util.patch.BaseBytecodePatch -import app.revanced.util.resultOrThrow -import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction @Suppress("unused") object AutoCaptionsPatch : BaseBytecodePatch( name = "Disable auto captions", description = "Adds an option to disable captions from being automatically enabled.", - dependencies = setOf(SettingsPatch::class), + dependencies = setOf( + BaseAutoCaptionsPatch::class, + SettingsPatch::class + ), compatiblePackages = COMPATIBLE_PACKAGE, - fingerprints = setOf(SubtitleTrackFingerprint), ) { override fun execute(context: BytecodeContext) { - SubtitleTrackFingerprint.resultOrThrow().mutableMethod.apply { - val index = implementation!!.instructions.lastIndex - val register = getInstruction(index).registerA - - addInstructions( - index, """ - invoke-static {v$register}, $GENERAL_CLASS_DESCRIPTOR->disableAutoCaptions(Z)Z - move-result v$register - """ - ) - } - SettingsPatch.addSwitchPreference( CategoryType.GENERAL, "revanced_disable_auto_captions", diff --git a/src/main/kotlin/app/revanced/patches/shared/captions/BaseAutoCaptionsPatch.kt b/src/main/kotlin/app/revanced/patches/shared/captions/BaseAutoCaptionsPatch.kt new file mode 100644 index 000000000..1ae96bccb --- /dev/null +++ b/src/main/kotlin/app/revanced/patches/shared/captions/BaseAutoCaptionsPatch.kt @@ -0,0 +1,56 @@ +package app.revanced.patches.shared.captions + +import app.revanced.patcher.data.BytecodeContext +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction +import app.revanced.patcher.patch.BytecodePatch +import app.revanced.patcher.patch.annotation.Patch +import app.revanced.patcher.util.smali.ExternalLabel +import app.revanced.patches.shared.captions.fingerprints.StoryboardRendererDecoderRecommendedLevelFingerprint +import app.revanced.patches.shared.captions.fingerprints.SubtitleTrackFingerprint +import app.revanced.patches.shared.fingerprints.StartVideoInformerFingerprint +import app.revanced.patches.shared.integrations.Constants.PATCHES_PATH +import app.revanced.util.resultOrThrow + +@Patch( + description = "Disable forced auto captions for YouTube or YouTube Music." +) +object BaseAutoCaptionsPatch : BytecodePatch( + setOf( + StartVideoInformerFingerprint, + StoryboardRendererDecoderRecommendedLevelFingerprint, + SubtitleTrackFingerprint, + ) +) { + private const val INTEGRATIONS_CLASS_DESCRIPTOR = + "$PATCHES_PATH/AutoCaptionsPatch;" + + override fun execute(context: BytecodeContext) { + + SubtitleTrackFingerprint.resultOrThrow().mutableMethod.apply { + addInstructionsWithLabels( + 0, """ + invoke-static {}, $INTEGRATIONS_CLASS_DESCRIPTOR->disableAutoCaptions()Z + move-result v0 + if-eqz v0, :disabled + const/4 v0, 0x1 + return v0 + """, ExternalLabel("disabled", getInstruction(0)) + ) + } + + mapOf( + StartVideoInformerFingerprint to 0, + StoryboardRendererDecoderRecommendedLevelFingerprint to 1 + ).forEach { (fingerprint, enabled) -> + fingerprint.resultOrThrow().mutableMethod.addInstructions( + 0, """ + const/4 v0, 0x$enabled + invoke-static {v0}, $INTEGRATIONS_CLASS_DESCRIPTOR->setCaptionsButtonStatus(Z)V + """ + ) + } + + } +} \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/general/autocaptions/fingerprints/StoryboardRendererDecoderRecommendedLevelFingerprint.kt b/src/main/kotlin/app/revanced/patches/shared/captions/fingerprints/StoryboardRendererDecoderRecommendedLevelFingerprint.kt similarity index 59% rename from src/main/kotlin/app/revanced/patches/youtube/general/autocaptions/fingerprints/StoryboardRendererDecoderRecommendedLevelFingerprint.kt rename to src/main/kotlin/app/revanced/patches/shared/captions/fingerprints/StoryboardRendererDecoderRecommendedLevelFingerprint.kt index c06330575..62875e32c 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/general/autocaptions/fingerprints/StoryboardRendererDecoderRecommendedLevelFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/shared/captions/fingerprints/StoryboardRendererDecoderRecommendedLevelFingerprint.kt @@ -1,13 +1,12 @@ -package app.revanced.patches.youtube.general.autocaptions.fingerprints +package app.revanced.patches.shared.captions.fingerprints import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.MethodFingerprint -import app.revanced.patches.youtube.utils.PlayerResponseModelUtils.PLAYER_RESPONSE_MODEL_CLASS_DESCRIPTOR import com.android.tools.smali.dexlib2.AccessFlags internal object StoryboardRendererDecoderRecommendedLevelFingerprint : MethodFingerprint( returnType = "V", accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, - parameters = listOf(PLAYER_RESPONSE_MODEL_CLASS_DESCRIPTOR), + parameters = listOf("L"), strings = listOf("#-1#") ) diff --git a/src/main/kotlin/app/revanced/patches/shared/fingerprints/SubtitleTrackFingerprint.kt b/src/main/kotlin/app/revanced/patches/shared/captions/fingerprints/SubtitleTrackFingerprint.kt similarity index 86% rename from src/main/kotlin/app/revanced/patches/shared/fingerprints/SubtitleTrackFingerprint.kt rename to src/main/kotlin/app/revanced/patches/shared/captions/fingerprints/SubtitleTrackFingerprint.kt index b97457386..b1a6012a7 100644 --- a/src/main/kotlin/app/revanced/patches/shared/fingerprints/SubtitleTrackFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/shared/captions/fingerprints/SubtitleTrackFingerprint.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.shared.fingerprints +package app.revanced.patches.shared.captions.fingerprints import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.MethodFingerprint diff --git a/src/main/kotlin/app/revanced/patches/youtube/utils/fingerprints/StartVideoInformerFingerprint.kt b/src/main/kotlin/app/revanced/patches/shared/fingerprints/StartVideoInformerFingerprint.kt similarity index 89% rename from src/main/kotlin/app/revanced/patches/youtube/utils/fingerprints/StartVideoInformerFingerprint.kt rename to src/main/kotlin/app/revanced/patches/shared/fingerprints/StartVideoInformerFingerprint.kt index 0609b6a3a..dec566143 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/utils/fingerprints/StartVideoInformerFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/shared/fingerprints/StartVideoInformerFingerprint.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.youtube.utils.fingerprints +package app.revanced.patches.shared.fingerprints import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.MethodFingerprint diff --git a/src/main/kotlin/app/revanced/patches/youtube/general/autocaptions/AutoCaptionsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/general/autocaptions/AutoCaptionsPatch.kt index 4ed2f9a3d..763631b01 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/general/autocaptions/AutoCaptionsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/general/autocaptions/AutoCaptionsPatch.kt @@ -1,57 +1,23 @@ package app.revanced.patches.youtube.general.autocaptions import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.InstructionExtensions.addInstructions -import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels -import app.revanced.patcher.extensions.InstructionExtensions.getInstruction -import app.revanced.patcher.util.smali.ExternalLabel -import app.revanced.patches.shared.fingerprints.SubtitleTrackFingerprint -import app.revanced.patches.youtube.general.autocaptions.fingerprints.StoryboardRendererDecoderRecommendedLevelFingerprint +import app.revanced.patches.shared.captions.BaseAutoCaptionsPatch import app.revanced.patches.youtube.utils.compatibility.Constants.COMPATIBLE_PACKAGE -import app.revanced.patches.youtube.utils.fingerprints.StartVideoInformerFingerprint -import app.revanced.patches.youtube.utils.integrations.Constants.GENERAL_CLASS_DESCRIPTOR import app.revanced.patches.youtube.utils.settings.SettingsPatch import app.revanced.util.patch.BaseBytecodePatch -import app.revanced.util.resultOrThrow @Suppress("unused") object AutoCaptionsPatch : BaseBytecodePatch( name = "Disable auto captions", description = "Adds an option to disable captions from being automatically enabled.", - dependencies = setOf(SettingsPatch::class), - compatiblePackages = COMPATIBLE_PACKAGE, - fingerprints = setOf( - SubtitleTrackFingerprint, - StartVideoInformerFingerprint, - StoryboardRendererDecoderRecommendedLevelFingerprint, - ) + dependencies = setOf( + BaseAutoCaptionsPatch::class, + SettingsPatch::class + ), + compatiblePackages = COMPATIBLE_PACKAGE ) { override fun execute(context: BytecodeContext) { - SubtitleTrackFingerprint.resultOrThrow().mutableMethod.apply { - addInstructionsWithLabels( - 0, """ - invoke-static {}, $GENERAL_CLASS_DESCRIPTOR->disableAutoCaptions()Z - move-result v0 - if-eqz v0, :disabled - const/4 v0, 0x1 - return v0 - """, ExternalLabel("disabled", getInstruction(0)) - ) - } - - mapOf( - StartVideoInformerFingerprint to 0, - StoryboardRendererDecoderRecommendedLevelFingerprint to 1 - ).forEach { (fingerprint, enabled) -> - fingerprint.resultOrThrow().mutableMethod.addInstructions( - 0, """ - const/4 v0, 0x$enabled - invoke-static {v0}, $GENERAL_CLASS_DESCRIPTOR->setCaptionsButtonStatus(Z)V - """ - ) - } - /** * Add settings */ diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/components/PlayerComponentsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/player/components/PlayerComponentsPatch.kt index c5ecd85d5..454c38629 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/player/components/PlayerComponentsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/player/components/PlayerComponentsPatch.kt @@ -9,6 +9,7 @@ import app.revanced.patcher.extensions.InstructionExtensions.removeInstruction import app.revanced.patcher.patch.PatchException import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod import app.revanced.patcher.util.smali.ExternalLabel +import app.revanced.patches.shared.fingerprints.StartVideoInformerFingerprint import app.revanced.patches.shared.litho.LithoFilterPatch import app.revanced.patches.youtube.player.components.fingerprints.CrowdfundingBoxFingerprint import app.revanced.patches.youtube.player.components.fingerprints.EngagementPanelControllerFingerprint @@ -33,7 +34,6 @@ import app.revanced.patches.youtube.player.components.fingerprints.WatermarkPare import app.revanced.patches.youtube.player.speedoverlay.SpeedOverlayPatch import app.revanced.patches.youtube.utils.compatibility.Constants.COMPATIBLE_PACKAGE import app.revanced.patches.youtube.utils.controlsoverlay.ControlsOverlayConfigPatch -import app.revanced.patches.youtube.utils.fingerprints.StartVideoInformerFingerprint import app.revanced.patches.youtube.utils.fingerprints.YouTubeControlsOverlayFingerprint import app.revanced.patches.youtube.utils.fix.suggestedvideoendscreen.SuggestedVideoEndScreenPatch import app.revanced.patches.youtube.utils.integrations.Constants.COMPONENTS_PATH From 13fdda227dd91cdf6482567b8544bc9bff2bb380 Mon Sep 17 00:00:00 2001 From: inotia00 <108592928+inotia00@users.noreply.github.com> Date: Sun, 15 Sep 2024 19:58:22 +0900 Subject: [PATCH 50/63] chore(YouTube - Change start page): Hook a more appropriate Intent --- .../general/startpage/ChangeStartPagePatch.kt | 24 ++++++++++++------- .../ShortcutsActivityFingerprint.kt | 8 +++++++ ...ngerprint.kt => UrlActivityFingerprint.kt} | 2 +- 3 files changed, 24 insertions(+), 10 deletions(-) create mode 100644 src/main/kotlin/app/revanced/patches/youtube/general/startpage/fingerprints/ShortcutsActivityFingerprint.kt rename src/main/kotlin/app/revanced/patches/youtube/general/startpage/fingerprints/{StartActivityFingerprint.kt => UrlActivityFingerprint.kt} (84%) diff --git a/src/main/kotlin/app/revanced/patches/youtube/general/startpage/ChangeStartPagePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/general/startpage/ChangeStartPagePatch.kt index 30a871646..bca0fe45e 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/general/startpage/ChangeStartPagePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/general/startpage/ChangeStartPagePatch.kt @@ -2,7 +2,8 @@ package app.revanced.patches.youtube.general.startpage import app.revanced.patcher.data.BytecodeContext import app.revanced.patcher.extensions.InstructionExtensions.addInstruction -import app.revanced.patches.youtube.general.startpage.fingerprints.StartActivityFingerprint +import app.revanced.patches.youtube.general.startpage.fingerprints.ShortcutsActivityFingerprint +import app.revanced.patches.youtube.general.startpage.fingerprints.UrlActivityFingerprint import app.revanced.patches.youtube.utils.compatibility.Constants.COMPATIBLE_PACKAGE import app.revanced.patches.youtube.utils.integrations.Constants.GENERAL_CLASS_DESCRIPTOR import app.revanced.patches.youtube.utils.settings.SettingsPatch @@ -15,16 +16,21 @@ object ChangeStartPagePatch : BaseBytecodePatch( description = "Adds an option to set which page the app opens in instead of the homepage.", dependencies = setOf(SettingsPatch::class), compatiblePackages = COMPATIBLE_PACKAGE, - fingerprints = setOf(StartActivityFingerprint) + fingerprints = setOf( + ShortcutsActivityFingerprint, + UrlActivityFingerprint + ) ) { override fun execute(context: BytecodeContext) { - StartActivityFingerprint.resultOrThrow().let { - it.mutableMethod.apply { - addInstruction( - 0, - "invoke-static { p1 }, $GENERAL_CLASS_DESCRIPTOR->changeStartPage(Landroid/content/Intent;)V" - ) - } + + mapOf( + ShortcutsActivityFingerprint to "changeStartPageToShortcuts", + UrlActivityFingerprint to "changeStartPageToUrl" + ).forEach { (fingerprint, method) -> + fingerprint.resultOrThrow().mutableMethod.addInstruction( + 0, + "invoke-static { p1 }, $GENERAL_CLASS_DESCRIPTOR->$method(Landroid/content/Intent;)V" + ) } /** diff --git a/src/main/kotlin/app/revanced/patches/youtube/general/startpage/fingerprints/ShortcutsActivityFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/general/startpage/fingerprints/ShortcutsActivityFingerprint.kt new file mode 100644 index 000000000..c0bd15917 --- /dev/null +++ b/src/main/kotlin/app/revanced/patches/youtube/general/startpage/fingerprints/ShortcutsActivityFingerprint.kt @@ -0,0 +1,8 @@ +package app.revanced.patches.youtube.general.startpage.fingerprints + +import app.revanced.patcher.fingerprint.MethodFingerprint + +internal object ShortcutsActivityFingerprint : MethodFingerprint( + parameters = listOf("Landroid/content/Intent;"), + strings = listOf("has_handled_intent"), +) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/general/startpage/fingerprints/StartActivityFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/general/startpage/fingerprints/UrlActivityFingerprint.kt similarity index 84% rename from src/main/kotlin/app/revanced/patches/youtube/general/startpage/fingerprints/StartActivityFingerprint.kt rename to src/main/kotlin/app/revanced/patches/youtube/general/startpage/fingerprints/UrlActivityFingerprint.kt index 735185042..680ef6e29 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/general/startpage/fingerprints/StartActivityFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/general/startpage/fingerprints/UrlActivityFingerprint.kt @@ -2,7 +2,7 @@ package app.revanced.patches.youtube.general.startpage.fingerprints import app.revanced.patcher.fingerprint.MethodFingerprint -internal object StartActivityFingerprint : MethodFingerprint( +internal object UrlActivityFingerprint : MethodFingerprint( parameters = listOf("Landroid/content/Intent;"), customFingerprint = { methodDef, classDef -> methodDef.name == "startActivity" From c842248e074399350ea73c1067bf1d5bc1f6da42 Mon Sep 17 00:00:00 2001 From: Aaron Veil <70171475+anddea@users.noreply.github.com> Date: Mon, 16 Sep 2024 09:45:32 +0300 Subject: [PATCH 51/63] feat(YouTube - Hide feed components): Selectively hide video by views for Home / Subscription / Search --- .../resources/youtube/settings/xml/revanced_prefs.xml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/resources/youtube/settings/xml/revanced_prefs.xml b/src/main/resources/youtube/settings/xml/revanced_prefs.xml index 7b3e3817c..204fd0176 100644 --- a/src/main/resources/youtube/settings/xml/revanced_prefs.xml +++ b/src/main/resources/youtube/settings/xml/revanced_prefs.xml @@ -207,18 +207,21 @@ - - + + - + + + + From 4485d8e8540501465b41a43c03c0b627aaf6af2d Mon Sep 17 00:00:00 2001 From: Aaron Veil <70171475+anddea@users.noreply.github.com> Date: Mon, 16 Sep 2024 11:04:59 +0300 Subject: [PATCH 52/63] chore(Translations): Update translations --- .../music/settings/host/values/strings.xml | 2 - .../music/translations/bg-rBG/strings.xml | 2 - .../music/translations/bn/missing_strings.xml | 2 - .../translations/cs-rCZ/missing_strings.xml | 2 - .../music/translations/el-rGR/strings.xml | 2 - .../translations/es-rES/missing_strings.xml | 4 - .../music/translations/es-rES/strings.xml | 6 +- .../translations/fr-rFR/missing_strings.xml | 2 - .../music/translations/fr-rFR/strings.xml | 4 +- .../music/translations/hu-rHU/strings.xml | 2 - .../music/translations/id-rID/strings.xml | 2 - .../music/translations/in/strings.xml | 2 - .../translations/it-rIT/missing_strings.xml | 2 - .../translations/ja-rJP/missing_strings.xml | 7 -- .../music/translations/ja-rJP/strings.xml | 6 +- .../music/translations/ko-rKR/strings.xml | 18 ++-- .../translations/nl-rNL/missing_strings.xml | 2 - .../music/translations/pl-rPL/strings.xml | 2 - .../translations/pt-rBR/missing_strings.xml | 2 - .../music/translations/pt-rBR/strings.xml | 4 +- .../translations/ro-rRO/missing_strings.xml | 2 - .../translations/ru-rRU/missing_strings.xml | 4 - .../music/translations/ru-rRU/strings.xml | 6 +- .../music/translations/tr-rTR/strings.xml | 2 - .../translations/uk-rUA/missing_strings.xml | 2 - .../music/translations/uk-rUA/strings.xml | 4 +- .../music/translations/vi-rVN/strings.xml | 2 - .../music/translations/zh-rCN/strings.xml | 2 - .../translations/zh-rTW/missing_strings.xml | 2 - .../youtube/settings/host/values/strings.xml | 41 ++++++++- .../translations/ar/missing_strings.xml | 16 +++- .../youtube/translations/ar/strings.xml | 27 +++++- .../translations/bg-rBG/missing_strings.xml | 16 +++- .../youtube/translations/bg-rBG/strings.xml | 23 ++++- .../translations/bn/missing_strings.xml | 41 ++++++++- .../translations/de-rDE/missing_strings.xml | 39 +++++++- .../youtube/translations/de-rDE/strings.xml | 2 - .../translations/el-rGR/missing_strings.xml | 16 +++- .../youtube/translations/el-rGR/strings.xml | 37 ++++++-- .../translations/es-rES/missing_strings.xml | 6 +- .../youtube/translations/es-rES/strings.xml | 34 ++++++- .../translations/fi-rFI/missing_strings.xml | 41 ++++++++- .../translations/fr-rFR/missing_strings.xml | 16 +++- .../youtube/translations/fr-rFR/strings.xml | 25 ++++- .../translations/hu-rHU/missing_strings.xml | 66 ++++++++------ .../youtube/translations/hu-rHU/strings.xml | 29 +++++- .../translations/id-rID/missing_strings.xml | 41 ++++++++- .../translations/in/missing_strings.xml | 41 ++++++++- .../translations/it-rIT/missing_strings.xml | 15 +++ .../youtube/translations/it-rIT/strings.xml | 45 ++++++--- .../translations/ja-rJP/missing_strings.xml | 17 +++- .../youtube/translations/ja-rJP/strings.xml | 45 ++++++--- .../translations/ko-rKR/missing_strings.xml | 6 ++ .../youtube/translations/ko-rKR/strings.xml | 91 ++++++++++++------- .../translations/pl-rPL/missing_strings.xml | 18 ++++ .../youtube/translations/pl-rPL/strings.xml | 32 +++++-- .../translations/pt-rBR/missing_strings.xml | 28 +++--- .../youtube/translations/pt-rBR/strings.xml | 38 +++++++- .../translations/ru-rRU/missing_strings.xml | 15 +++ .../youtube/translations/ru-rRU/strings.xml | 31 +++++-- .../translations/tr-rTR/missing_strings.xml | 58 +++++++----- .../youtube/translations/tr-rTR/strings.xml | 21 ++++- .../translations/uk-rUA/missing_strings.xml | 17 +++- .../youtube/translations/uk-rUA/strings.xml | 26 +++++- .../translations/vi-rVN/missing_strings.xml | 16 +++- .../youtube/translations/vi-rVN/strings.xml | 65 ++++++++----- .../translations/zh-rCN/missing_strings.xml | 33 +++---- .../youtube/translations/zh-rCN/strings.xml | 43 ++++++++- .../translations/zh-rTW/missing_strings.xml | 16 +++- .../youtube/translations/zh-rTW/strings.xml | 24 ++++- 70 files changed, 1033 insertions(+), 325 deletions(-) delete mode 100644 src/main/resources/music/translations/ja-rJP/missing_strings.xml create mode 100644 src/main/resources/youtube/translations/pl-rPL/missing_strings.xml diff --git a/src/main/resources/music/settings/host/values/strings.xml b/src/main/resources/music/settings/host/values/strings.xml index b32e1eb4a..b329e98e4 100644 --- a/src/main/resources/music/settings/host/values/strings.xml +++ b/src/main/resources/music/settings/host/values/strings.xml @@ -183,8 +183,6 @@ Please download %2$s from the website." Hide Stats for nerds menu Hide Subscribe / Unsubscribe menu Hide View song credits menu - Fullscreen ads have been blocked. (DialogType: %s) - Fullscreen ads have been closed. Hides fullscreen ads. Hide fullscreen ads "If it is enabled, fullscreen ads are closed through the Close button. diff --git a/src/main/resources/music/translations/bg-rBG/strings.xml b/src/main/resources/music/translations/bg-rBG/strings.xml index e0bc1d861..a236ffbdb 100644 --- a/src/main/resources/music/translations/bg-rBG/strings.xml +++ b/src/main/resources/music/translations/bg-rBG/strings.xml @@ -119,8 +119,6 @@ Меню \"Статистика за сис. администратори\" Скрийте менюто „Абониране“ / „Отписване“ Скрийте менюто „Подробности за заглавие“ - Рекламите на цял екран са блокирани. (Тип на диалоговия прозорец: %s) - Рекламите на цял екран са затворени. Скриване на рекламите в режим на цял екран. Скриване на рекламите в режим на цял екран "Ако е активирана, рекламата на цял екран се затваря чрез бутона Затвори. diff --git a/src/main/resources/music/translations/bn/missing_strings.xml b/src/main/resources/music/translations/bn/missing_strings.xml index 72f01671e..f7912b645 100644 --- a/src/main/resources/music/translations/bn/missing_strings.xml +++ b/src/main/resources/music/translations/bn/missing_strings.xml @@ -134,8 +134,6 @@ Please download %2$s from the website." Hide Stats for nerds menu Hide Subscribe / Unsubscribe menu Hide View song credits menu - Fullscreen ads have been blocked. (DialogType: %s) - Fullscreen ads have been closed. Hides fullscreen ads. Hide fullscreen ads "If it is enabled, fullscreen ads are closed through the Close button. diff --git a/src/main/resources/music/translations/cs-rCZ/missing_strings.xml b/src/main/resources/music/translations/cs-rCZ/missing_strings.xml index 1c25db85e..977ad6d6f 100644 --- a/src/main/resources/music/translations/cs-rCZ/missing_strings.xml +++ b/src/main/resources/music/translations/cs-rCZ/missing_strings.xml @@ -145,8 +145,6 @@ Please download %2$s from the website." Hide Stats for nerds menu Hide Subscribe / Unsubscribe menu Hide View song credits menu - Fullscreen ads have been blocked. (DialogType: %s) - Fullscreen ads have been closed. Hides fullscreen ads. Hide fullscreen ads "If it is enabled, fullscreen ads are closed through the Close button. diff --git a/src/main/resources/music/translations/el-rGR/strings.xml b/src/main/resources/music/translations/el-rGR/strings.xml index a8636e097..d683f2faa 100644 --- a/src/main/resources/music/translations/el-rGR/strings.xml +++ b/src/main/resources/music/translations/el-rGR/strings.xml @@ -178,8 +178,6 @@ Απόκρυψη μενού «Στατιστικά για σπασίκλες» Απόκρυψη των «Εγγραφή» / «Απεγγραφή» Απόκρυψη μενού «Προβολή συντελεστών τραγουδιού» - Οι διαφημίσεις πλήρους οθόνης αποκλείστηκαν. (Τύπος: %s) - Οι διαφημίσεις πλήρους οθόνης έκλεισαν. Απόκρυψη των ενδιάμεσων διαφημίσεων πλήρους οθόνης. Απόκρυψη διαφημίσεων πλήρους οθόνης "Αν είναι ενεργοποιημένο, οι διαφημίσεις πλήρους οθόνης κλείνουν μέσω του κουμπιού κλεισίματος. diff --git a/src/main/resources/music/translations/es-rES/missing_strings.xml b/src/main/resources/music/translations/es-rES/missing_strings.xml index c26052169..391f0ac24 100644 --- a/src/main/resources/music/translations/es-rES/missing_strings.xml +++ b/src/main/resources/music/translations/es-rES/missing_strings.xml @@ -1,12 +1,8 @@ Don\'t show again - Disables Cairo splash animation when the app starts up. - Disable Cairo splash animation Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore Fullscreen ads are blocked. (there may be side effects) Fullscreen ads are closed through the Close button. - Hides the promotion alert banner. - Hide promotion alert banner diff --git a/src/main/resources/music/translations/es-rES/strings.xml b/src/main/resources/music/translations/es-rES/strings.xml index da86b55ed..a96ce7e94 100644 --- a/src/main/resources/music/translations/es-rES/strings.xml +++ b/src/main/resources/music/translations/es-rES/strings.xml @@ -36,6 +36,8 @@ Pulsa el botón de continuar y desactiva las optimizaciones de la batería."Editar velocidades de reproducción personalizadas Desactiva la activación automática de los subtítulos forzados en el reproductor de vídeo. Desactivar subtítulos automáticos + Deshabilita la animación de bienvenida \"Cairo\" cuando se inicia la aplicación. + Desactiva la animación Cairo Deshabilita la redirección a la siguiente pista al hacer clic en el botón No me Gusta. Desactivar redirección de No me Gusta Desactivar el gesto de deslizar para cambiar de pista en el minireproductor. @@ -174,8 +176,6 @@ Descarga %2$s desde el sitio web." Ocultar menú Estadísticas para Nerds Ocultar menú Suscribirse / Desuscribirse Ocultar menú de vista de créditos de canción - Se han bloqueado anuncios en pantalla completa. (Tipo de diálogo: %s) - Se han cerrado anuncios en pantalla completa. Oculta anuncios en pantalla completa. Ocultar anuncios en pantalla completa "Si está habilitado, los anuncios a pantalla completa se cierran mediante el botón Cerrar. @@ -215,6 +215,8 @@ Si está deshabilitado, se bloquean los anuncios a pantalla completa. (puede hab Ocultar popups de promoción premium Oculta banner de renovación premium. Ocultar banner de renovación premium + Oculta el banner de alerta de promoción. + Ocultar banner de alerta de promoción Oculta estante de Samples en el feed. Ocultar estante de Samples Lista de nombres del menú de configuración de YouTube a filtrar separados por una nueva línea. diff --git a/src/main/resources/music/translations/fr-rFR/missing_strings.xml b/src/main/resources/music/translations/fr-rFR/missing_strings.xml index f197d5e6b..acebd7abf 100644 --- a/src/main/resources/music/translations/fr-rFR/missing_strings.xml +++ b/src/main/resources/music/translations/fr-rFR/missing_strings.xml @@ -1,8 +1,6 @@ Don\'t show again - Disables Cairo splash animation when the app starts up. - Disable Cairo splash animation Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore diff --git a/src/main/resources/music/translations/fr-rFR/strings.xml b/src/main/resources/music/translations/fr-rFR/strings.xml index 829268990..91ac54969 100644 --- a/src/main/resources/music/translations/fr-rFR/strings.xml +++ b/src/main/resources/music/translations/fr-rFR/strings.xml @@ -36,6 +36,8 @@ Cliquez sur le bouton Continuer et désactivez les optimisations de la batterie. Éditez les vitesses de lecture personnalisées Désactive les sous-titres automatiquement activés. Désactiver les sous-titres forcés + Désactive l\'animation Cairo lors du démarrage de l\'application. + Désactiver l\'animation Cairo au démarrage Désactive le passage à la piste suivante lorsque vous cliquez sur le bouton \"Je n\'aime pas\". Désactiver la redirection du bouton \"Je n\'aime pas\" Désactive les gestes pour changer de musique dans le minilecteur. @@ -178,8 +180,6 @@ Veuillez télécharger %2$s à partir du site web." Masquer le menu \"Statistiques avancées\" Masquer le menu \"S\'abonner\" / \"Se désabonner\" Masquer le menu \"Afficher les crédits du titre\" - La publicité en plein écran a été bloquée. (Type de dialogue : %s) - La publicité en plein écran a été fermée. Masque les publicités en plein écran. Masquer les publicités en plein écran "Si activé, les publicités en plein écran seront fermées grâce au bouton \"Fermer\". diff --git a/src/main/resources/music/translations/hu-rHU/strings.xml b/src/main/resources/music/translations/hu-rHU/strings.xml index ae7624d68..6f0ecdea7 100644 --- a/src/main/resources/music/translations/hu-rHU/strings.xml +++ b/src/main/resources/music/translations/hu-rHU/strings.xml @@ -178,8 +178,6 @@ Töltsd le a(z) %2$s weboldalról." Statisztikák kockáknak menü elrejtése Feliratkozás / Leiratkozás menü elrejtése Dalkredit menü elrejtése - Teljes képernyős hírdetések blokkolva. (DialogTípus: %s) - Teljes képernyős hírdetések bezárva. Teljes képernyős hirdetések elrejtése. Teljes képernyős hirdetések elrejtése "Ha engedélyezve van, akkor a teljes képernyő hírdetéseket a bezárás gombbal lehet eltüntetni. diff --git a/src/main/resources/music/translations/id-rID/strings.xml b/src/main/resources/music/translations/id-rID/strings.xml index 9f901981b..87c3c7a03 100644 --- a/src/main/resources/music/translations/id-rID/strings.xml +++ b/src/main/resources/music/translations/id-rID/strings.xml @@ -174,8 +174,6 @@ Download %2$s dari website." Sembunyikan menu statistik untuk nerds Sembunyikan menu Subscribe / Unsubscribe Sembunyikan menu kredit lagu - Iklan fullscreen telah diblok. (Blokir: %s) - Iklan fullscreen telah ditutup. Menyembunyikan iklan fullscreen. Sembunyikan iklan fullscreen "Jika diaktifkan, iklan fullscreen akan ditutup lewat tombol Close. diff --git a/src/main/resources/music/translations/in/strings.xml b/src/main/resources/music/translations/in/strings.xml index 9f901981b..87c3c7a03 100644 --- a/src/main/resources/music/translations/in/strings.xml +++ b/src/main/resources/music/translations/in/strings.xml @@ -174,8 +174,6 @@ Download %2$s dari website." Sembunyikan menu statistik untuk nerds Sembunyikan menu Subscribe / Unsubscribe Sembunyikan menu kredit lagu - Iklan fullscreen telah diblok. (Blokir: %s) - Iklan fullscreen telah ditutup. Menyembunyikan iklan fullscreen. Sembunyikan iklan fullscreen "Jika diaktifkan, iklan fullscreen akan ditutup lewat tombol Close. diff --git a/src/main/resources/music/translations/it-rIT/missing_strings.xml b/src/main/resources/music/translations/it-rIT/missing_strings.xml index c7374e1d6..4e4c9e290 100644 --- a/src/main/resources/music/translations/it-rIT/missing_strings.xml +++ b/src/main/resources/music/translations/it-rIT/missing_strings.xml @@ -137,8 +137,6 @@ Please download %2$s from the website." Hide Stats for nerds menu Hide Subscribe / Unsubscribe menu Hide View song credits menu - Fullscreen ads have been blocked. (DialogType: %s) - Fullscreen ads have been closed. Hides fullscreen ads. Hide fullscreen ads "If it is enabled, fullscreen ads are closed through the Close button. diff --git a/src/main/resources/music/translations/ja-rJP/missing_strings.xml b/src/main/resources/music/translations/ja-rJP/missing_strings.xml deleted file mode 100644 index bdbc26d06..000000000 --- a/src/main/resources/music/translations/ja-rJP/missing_strings.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - Disables Cairo splash animation when the app starts up. - Disable Cairo splash animation - Hides the promotion alert banner. - Hide promotion alert banner - diff --git a/src/main/resources/music/translations/ja-rJP/strings.xml b/src/main/resources/music/translations/ja-rJP/strings.xml index 50cfde82f..75a8bf5a9 100644 --- a/src/main/resources/music/translations/ja-rJP/strings.xml +++ b/src/main/resources/music/translations/ja-rJP/strings.xml @@ -33,6 +33,8 @@ カスタム再生速度の編集 動画側で設定されている、字幕の強制は無効です。 字幕の強制を無効化 + アプリ起動時のCairo のスプラッシュアニメーションを無効にします。 + Cairo スプラッシュアニメーションを無効にする 低評価ボタンを押したとき、次の曲へのリダイレクトするのを無効にする。 低評価リダイレクトを無効化 ミニプレーヤーでスワイプによる曲の変更を無効にします @@ -173,8 +175,6 @@ 統計情報を非表示 登録/解除メニューを非表示 「曲のクレジットを表示」を非表示 - 全画面広告をブロックしました(ダイアログの種類: %s) - 全画面広告を閉じました 全画面広告を非表示にします。 全画面広告を非表示 "有効の場合、全画面広告は閉じるボタンで閉じられます。 @@ -218,6 +218,8 @@ プレミアムプロモーションポップアップを非表示 プレミアム更新バナーを非表示にします。 プレミアム更新バナーを非表示 + プロモーションバナーを非表示にします。 + プロモーションバナーを非表示 フィードからサンプルシェルフを非表示にします。 サンプルシェルフを非表示 フィルタリングするYT Music 設定メニュー名のリスト(改行区切り) diff --git a/src/main/resources/music/translations/ko-rKR/strings.xml b/src/main/resources/music/translations/ko-rKR/strings.xml index 993b7aa9f..0e33f01e3 100644 --- a/src/main/resources/music/translations/ko-rKR/strings.xml +++ b/src/main/resources/music/translations/ko-rKR/strings.xml @@ -183,8 +183,6 @@ 전문 통계 메뉴 제거 구독 / 구독 취소 메뉴 제거 노래 크레딧 보기 메뉴 제거 - 전체 화면 광고가 차단되었습니다. (다이얼로그 타입: %s) - 전체 화면 광고가 닫혔습니다. 전체 화면 광고를 숨깁니다. 전체 화면 광고 제거 "활성화하면 닫기 버튼을 누르면 전체 화면 광고가 닫혀집니다. @@ -296,18 +294,18 @@ YT Music 설정 메뉴뿐만 아니라 ReVanced Extended 설정 메뉴도 숨겨 이전 보관함 탭으로 복원합니다. (실험적인 기능) 이전 보관함 선반으로 복원 정보 - 싫어요 개수의 데이터는 Return YouTube Dislike API에 의해 제공됩니다. 자세한 내용을 보려면 여기를 누르세요. + 싫어요 수의 데이터는 Return YouTube Dislike API에 의해 제공됩니다. 자세한 내용을 보려면 여기를 누르세요. ReturnYouTubeDislike.com 좋아요 버튼에서 구분선을 숨깁니다. 좋아요 버튼에서 구분선 제거 - 싫어요 개수를 숫자가 아닌 퍼센트로 표시합니다. - 싫어요 개수를 퍼센트로 표시 - 싫어요 개수를 표시합니다. + 싫어요 수를 숫자가 아닌 퍼센트로 표시합니다. + 싫어요 수를 퍼센트로 표시 + 싫어요 수를 표시합니다. Return YouTube Dislike 활성화 - 싫어요 개수를 표시할 수 없습니다. (클라이언트 API 제한 도달) - 싫어요 개수를 표시할 수 없습니다 (상태 코드: %d). - 싫어요 개수를 일시적으로 표시할 수 없습니다 (응답 시간 초과). - 싫어요 개수를 표시할 수 없습니다 (%s). + 싫어요 수를 표시할 수 없습니다. (클라이언트 API 제한 도달) + 싫어요 수를 표시할 수 없습니다 (상태 코드: %d). + 싫어요 수를 일시적으로 표시할 수 없습니다 (응답 시간 초과). + 싫어요 수를 표시할 수 없습니다 (%s). ReturnYouTubeDislike를 사용할 수 없을 때, 팝업 메시지를 표시합니다. API를 사용할 수 없을 때 팝업 메시지 표시 링크를 공유할 때, URL에서 추적 쿼리 매개변수를 제거합니다. diff --git a/src/main/resources/music/translations/nl-rNL/missing_strings.xml b/src/main/resources/music/translations/nl-rNL/missing_strings.xml index 6236e49a6..fab175110 100644 --- a/src/main/resources/music/translations/nl-rNL/missing_strings.xml +++ b/src/main/resources/music/translations/nl-rNL/missing_strings.xml @@ -65,8 +65,6 @@ Tap on the continue button and disable battery optimizations." Hide Stats for nerds menu Hide Subscribe / Unsubscribe menu Hide View song credits menu - Fullscreen ads have been blocked. (DialogType: %s) - Fullscreen ads have been closed. "If it is enabled, fullscreen ads are closed through the Close button. If it is disabled, fullscreen ads are blocked. (there may be side effects)" Fullscreen ads are blocked. (there may be side effects) diff --git a/src/main/resources/music/translations/pl-rPL/strings.xml b/src/main/resources/music/translations/pl-rPL/strings.xml index 4d3e04b57..b1601c692 100644 --- a/src/main/resources/music/translations/pl-rPL/strings.xml +++ b/src/main/resources/music/translations/pl-rPL/strings.xml @@ -180,8 +180,6 @@ Pobierz %2$s ze strony." Ukryj menu od statystyk dla nerdów Ukryj menu od subskrybowania / odsubskrybowywania Ukryj menu do autorów utworu - Zablokowano reklamy pełnoekranowe. (Typ okna: %s) - Zamknięto reklamy pełnoekranowe. Ukrywa reklamy pełnoekranowe Ukryj reklamy pełnoekranowe "Jeśli opcja jest włączona, pełnoekranowe reklamy są zamykane poprzez przycisk zamknięcia. diff --git a/src/main/resources/music/translations/pt-rBR/missing_strings.xml b/src/main/resources/music/translations/pt-rBR/missing_strings.xml index f197d5e6b..acebd7abf 100644 --- a/src/main/resources/music/translations/pt-rBR/missing_strings.xml +++ b/src/main/resources/music/translations/pt-rBR/missing_strings.xml @@ -1,8 +1,6 @@ Don\'t show again - Disables Cairo splash animation when the app starts up. - Disable Cairo splash animation Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore diff --git a/src/main/resources/music/translations/pt-rBR/strings.xml b/src/main/resources/music/translations/pt-rBR/strings.xml index 2c4cfb088..e2f449289 100644 --- a/src/main/resources/music/translations/pt-rBR/strings.xml +++ b/src/main/resources/music/translations/pt-rBR/strings.xml @@ -36,6 +36,8 @@ Toque no botão continuar e desative as otimizações da bateria." Editar velocidades de reprodução personalizadas Desativa as legendas de serem ativadas automaticamente. Desativar legendas automáticas + Desabilita a animação inicial do Cairo quando o aplicativo é iniciado. + Desativar a animação inicial do Cairo Desativa o redirecionamento para a próxima faixa ao clicar no botão de Dislike. Desativar redirecionamento de dislike Desativar deslize para alterar faixas no mini reprodutor. @@ -178,8 +180,6 @@ Por favor, baixe %2$s do site." Ocultar menu Estatísticas para nerds Ocultar menu de Inscrição / Cancelar inscrição Ocultar menu Mostrar créditos da música - Os anúncios em tela cheia foram bloqueados. (Tipo de diálogo: %s) - Os anúncios de tela cheia foram fechados. Oculta anúncios em tela cheia. Ocultar anúncios em tela cheia "Se estiver ativado, os anúncios em tela cheia são fechados através do botão Fechar. diff --git a/src/main/resources/music/translations/ro-rRO/missing_strings.xml b/src/main/resources/music/translations/ro-rRO/missing_strings.xml index e5907715b..d515efc1f 100644 --- a/src/main/resources/music/translations/ro-rRO/missing_strings.xml +++ b/src/main/resources/music/translations/ro-rRO/missing_strings.xml @@ -129,8 +129,6 @@ Please download %2$s from the website." Hide Stats for nerds menu Hide Subscribe / Unsubscribe menu Hide View song credits menu - Fullscreen ads have been blocked. (DialogType: %s) - Fullscreen ads have been closed. Hides fullscreen ads. Hide fullscreen ads "If it is enabled, fullscreen ads are closed through the Close button. diff --git a/src/main/resources/music/translations/ru-rRU/missing_strings.xml b/src/main/resources/music/translations/ru-rRU/missing_strings.xml index 34e49809f..acebd7abf 100644 --- a/src/main/resources/music/translations/ru-rRU/missing_strings.xml +++ b/src/main/resources/music/translations/ru-rRU/missing_strings.xml @@ -1,10 +1,6 @@ Don\'t show again - Disables Cairo splash animation when the app starts up. - Disable Cairo splash animation Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore - Hides the promotion alert banner. - Hide promotion alert banner diff --git a/src/main/resources/music/translations/ru-rRU/strings.xml b/src/main/resources/music/translations/ru-rRU/strings.xml index ce57fdcc0..da006db05 100644 --- a/src/main/resources/music/translations/ru-rRU/strings.xml +++ b/src/main/resources/music/translations/ru-rRU/strings.xml @@ -36,6 +36,8 @@ Изменить скорости Отключает автоматическое включение субтитров. Отключить автоматические субтитры + Отключает анимацию Кайро при запуске приложения. + Отключить анимацию Кайро Отключает перенаправление на следующий трек при нажатии на кнопку \"Не нравится\". Отключить переключение при \"Не нравится\" Отключает свайп для переключения треков в миниплеере. @@ -178,8 +180,6 @@ Скрыть пункт \"Статистика для сисадминов\" Скрыть пункт \"Подписаться / Отменить подписку\" Скрыть пункт \"Участники и создатели\" - Полноэкранная реклама была заблокирована. (Тип диалога: %s) - Полноэкранная реклама была закрыта. Скрывает полноэкранную рекламу. Полноэкранная реклама "Если включено, полноэкранная реклама закрывается через кнопку Закрыть. @@ -223,6 +223,8 @@ Скрыть всплывающую рекламу Premium Скрывает баннер продления Premium. Скрыть баннер продления Premium + Скрывает баннер с уведомлением о промо акции. + Скрыть баннер с уведомлением о промо акции Скрывает полку \"Семплы\" в ленте. Скрыть полку \"Семплы\" Список названий меню настроек для фильтрации, разделенных новыми строками. diff --git a/src/main/resources/music/translations/tr-rTR/strings.xml b/src/main/resources/music/translations/tr-rTR/strings.xml index 98f0c7604..22a5ae99b 100644 --- a/src/main/resources/music/translations/tr-rTR/strings.xml +++ b/src/main/resources/music/translations/tr-rTR/strings.xml @@ -176,8 +176,6 @@ Lütfen web sitesinden %2$s dosyasını indirin." \"Meraklısı için istatikler\" menüsü Abone ol / Abonelikten çık menüsünü gizle Şarkı kredileri menüsünü görüntüle - Tam ekran reklamlar engellendi. (İletişim Türü: %s) - Tam ekran reklamlar kapatıldı. Tam ekran reklamlarını gizler. Tam ekran reklamlarını gizle "Etkinleştirilirse Kapat düğmesi aracılığıyla tam ekran reklamlar kapatılır. Devre dışı bırakılırsa tam ekran reklamlar engellenir. (yan etkiler olabilir)" diff --git a/src/main/resources/music/translations/uk-rUA/missing_strings.xml b/src/main/resources/music/translations/uk-rUA/missing_strings.xml index f197d5e6b..acebd7abf 100644 --- a/src/main/resources/music/translations/uk-rUA/missing_strings.xml +++ b/src/main/resources/music/translations/uk-rUA/missing_strings.xml @@ -1,8 +1,6 @@ Don\'t show again - Disables Cairo splash animation when the app starts up. - Disable Cairo splash animation Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore diff --git a/src/main/resources/music/translations/uk-rUA/strings.xml b/src/main/resources/music/translations/uk-rUA/strings.xml index e3f841024..4dedd6855 100644 --- a/src/main/resources/music/translations/uk-rUA/strings.xml +++ b/src/main/resources/music/translations/uk-rUA/strings.xml @@ -36,6 +36,8 @@ Редагувати користувацькі швидкості відтворення Вимикає автоматичне ввімкнення субтитрів. Вимкнути примусові авто субтитри + Вимикає сплеш анімацію Каїр під час запуску застосунку. + Вимкнути сплеш анімацію Каїр Вимикає перенаправлення на наступний трек при натисканні на кнопку \"Не подобається\". Вимкнути перенаправлення при \"Не подобається\" Вимикає жести перемикання треків у мініплеєрі. @@ -178,8 +180,6 @@ Приховати \"Статистика для досвідчених користувачів\" Приховати \"Підписатися / Скасувати підписку\" Приховати \"Переглянути авторів пісні\" - Повноекранну рекламу заблоковано. (Тип діалогу: %s) - Повноекранну рекламу закрито. Приховує повноекранну рекламу. Приховати повноекранну рекламу "Якщо ввімкнено, повноекранна реклама закривається за допомогою кнопки Закрити. diff --git a/src/main/resources/music/translations/vi-rVN/strings.xml b/src/main/resources/music/translations/vi-rVN/strings.xml index 892f85556..b7519c842 100644 --- a/src/main/resources/music/translations/vi-rVN/strings.xml +++ b/src/main/resources/music/translations/vi-rVN/strings.xml @@ -174,8 +174,6 @@ Hạn chế: Ẩn mục Thống kê chi tiết Ẩn mục Đăng ký / Huỷ đăng ký Ẩn mục Xem thông tin của bài hát - Quảng cáo toàn màn hình đã bị chặn. (Loại hộp thoại: %s) - Quảng cáo toàn màn hình đã được đóng. Ẩn quảng cáo toàn màn hình. Ẩn quảng cáo toàn màn hình "Nếu tính năng này bật, quảng cáo toàn màn hình sẽ được đóng thông qua nút Đóng. diff --git a/src/main/resources/music/translations/zh-rCN/strings.xml b/src/main/resources/music/translations/zh-rCN/strings.xml index 7d02c26a4..1ccf15903 100644 --- a/src/main/resources/music/translations/zh-rCN/strings.xml +++ b/src/main/resources/music/translations/zh-rCN/strings.xml @@ -147,8 +147,6 @@ 隐藏详细统计信息菜单 隐藏订阅 / 退订菜单 隐藏歌曲详细信息 - 全屏广告已屏蔽(对话类型: %s) - 全屏广告已关闭 隐藏全屏广告 隐藏全屏广告 "如果启用,全屏广告将通过关闭按钮关闭 diff --git a/src/main/resources/music/translations/zh-rTW/missing_strings.xml b/src/main/resources/music/translations/zh-rTW/missing_strings.xml index 95faaafae..71dc3df5b 100644 --- a/src/main/resources/music/translations/zh-rTW/missing_strings.xml +++ b/src/main/resources/music/translations/zh-rTW/missing_strings.xml @@ -32,8 +32,6 @@ Tap on the continue button and disable battery optimizations." Show optimization dialog for GMSCore Hides dark overlay that appears when double-tapping to seek. Hide double-tap overlay filter - Fullscreen ads have been blocked. (DialogType: %s) - Fullscreen ads have been closed. "If it is enabled, fullscreen ads are closed through the Close button. If it is disabled, fullscreen ads are blocked. (there may be side effects)" Fullscreen ads are blocked. (there may be side effects) diff --git a/src/main/resources/youtube/settings/host/values/strings.xml b/src/main/resources/youtube/settings/host/values/strings.xml index 0fff85b2d..67ba617b7 100644 --- a/src/main/resources/youtube/settings/host/values/strings.xml +++ b/src/main/resources/youtube/settings/host/values/strings.xml @@ -204,6 +204,13 @@ Note: • Tap to scroll. • Tap and hold to select text." Disable video description interaction + VP9 codec is enabled. + "VP9 codec is disabled. + +• Maximum resolution is 1080p. +• Video playback will use more internet data than VP9. +• To get HDR playback, HDR video still uses the VP9 codec." + Disable VP9 codec Cairo seekbar is disabled. "Cairo seekbar is enabled. @@ -446,6 +453,9 @@ Store" Expandable chips are shown. Expandable chips are hidden. Hide expandable chip under videos + Expandable shelves are shown. + Expandable shelves are hidden. + Hide expandable shelves Captions button is shown. Captions button is hidden. Hide feed captions button @@ -469,8 +479,6 @@ Store" For You shelf is shown. For You shelf is hidden. Hide For You shelf - Fullscreen ads have been blocked. (DialogType: %s) - Fullscreen ads have been closed. Fullscreen ads are shown. Fullscreen ads are hidden. Hide fullscreen ads @@ -524,7 +532,6 @@ Limitations: Comments are not filtered. Comments are filtered. Hide comments by keywords - Match full word Videos in home feed are not filtered. Videos in home feed are filtered. Hide home videos by keywords @@ -953,6 +960,21 @@ Settings → Autoplay → Autoplay next video" Shorter than duration Hide videos with shorter than or longer than duration.\n\nKnown issue: It will not hide videos in the player related videos, instead it will hide the timestamp. Hide videos based on duration + "Home / Subscription / Search results are filtered to hide videos with views less or greater than a specified number. + +Limitations: +• Shorts cannot be hidden. +• Videos with 0 views are not filtered." + About view count filtering + Videos in home feed are not filtered. + Videos in home feed are filtered. + Hide home videos by views + Search results are not filtered. + Search results are filtered. + Hide search results by views + Videos in subscriptions feed are not filtered. + Videos in subscriptions feed are filtered. + Hide subscription videos by views Hide recommended videos with less than a specified number of views.\n\nKnown issue: Videos with 0 views are not filtered. Hide recommended videos by views Videos with views greater than this number will be hidden. @@ -1374,6 +1396,7 @@ Limitation: Dislikes may not appear if the user is not logged in or in incognito Reset skipped segments counter? That\'s <b>%s</b>. You\'ve created <b>%s</b> segments + Tap here to view your segments. Your username: <b>%s</b> Tap here to change your username Unable to change username: Status: %1$d %2$s. @@ -1465,7 +1488,8 @@ High quality may be unlocked on some videos that require high device dimensions, AVC (H.264) has a maximum resolution of 1080p, and video playback will use more internet data than VP9 or AV1." • Audio track menu is missing. • Audio track menu is missing. - • Movies or paid videos may not play. + "• Movies or paid videos may not play. +• Livestreams start from the beginning." Spoofing side effects • Video may not play. Client used to fetch streaming data is hidden in Stats for nerds. @@ -1500,7 +1524,16 @@ AVC (H.264) has a maximum resolution of 1080p, and video playback will use more • The device may need to be rebooted for a change of this setting to take effect. • Disabling this setting loads more ads from the server side. • You should disable this setting to make video ads visible." + Create button is not switched with Notifications button. + "Create button is switched with Notifications button. + +Note: Enabling this also forcibly hides video ads." Swap Create and Notifications buttons + "Disabling this might load more ads from the server. + +Also, ads will no longer be blocked in Shorts. + +If this setting do not take effect, try switching to Incognito mode." Stock • Watch history is blocked. "• Follows the watch history settings of Google account. diff --git a/src/main/resources/youtube/translations/ar/missing_strings.xml b/src/main/resources/youtube/translations/ar/missing_strings.xml index f0eaa3ea4..26b7e32ef 100644 --- a/src/main/resources/youtube/translations/ar/missing_strings.xml +++ b/src/main/resources/youtube/translations/ar/missing_strings.xml @@ -7,7 +7,21 @@ Long press video downloader package name Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore - Match full word + "Home / Subscription / Search results are filtered to hide videos with views less or greater than a specified number. + +Limitations: +• Shorts cannot be hidden. +• Videos with 0 views are not filtered." + About view count filtering + Videos in home feed are not filtered. + Videos in home feed are filtered. + Hide home videos by views + Search results are not filtered. + Search results are filtered. + Hide search results by views + Videos in subscriptions feed are not filtered. + Videos in subscriptions feed are filtered. + Hide subscription videos by views MMT Blue MMT Green MMT Yellow diff --git a/src/main/resources/youtube/translations/ar/strings.xml b/src/main/resources/youtube/translations/ar/strings.xml index 91965563f..fb7d3b3bc 100644 --- a/src/main/resources/youtube/translations/ar/strings.xml +++ b/src/main/resources/youtube/translations/ar/strings.xml @@ -201,6 +201,13 @@ • انقر للتمرير. • انقر مع الاستمرار لتحديد النص." تعطيل تفاعل وصف الفيديو + تم تمكين ترميز VP9. + "تم تعطيل برنامج ترميز VP9. + +• الحد الأقصى للدقة هو 1080P. +• سيستهلك تشغيل الفيديو بيانات إنترنت أكثر من VP9. +• للحصول على تشغيل HDR، لا يزال فيديو HDR يستخدم برنامج ترميز VP9." + تعطيل ترميز VP9 تم تعطيل شريط تقدم Cairo. "تم تمكين شريط تقدم Cairo. @@ -299,7 +306,7 @@ توسيع وصف الفيديو هل ترغب في المتابعة؟ إعادة التشغيل لتحميل التخطيط بشكل طبيعي - تحديث و إعادة تشغيل + تحديث وإعادة تشغيل فشل تصدير الإعدادات. تم تصدير الإعدادات بنجاح. تصدير الإعدادات إلى ملف. @@ -439,6 +446,9 @@ يتم عرض الرقائق القابلة للتوسيع. تم إخفاء الرقائق القابلة للتوسيع. إخفاء الشريحة القابلة للتوسع تحت مقاطع الفيديو + يتم عرض الرفوف القابلة للتوسع. + تم إخفاء الرفوف القابلة للتوسع. + إخفاء الرفوف القابلة للتوسع يتم عرض زر التَرْجَمَة. تم إخفاء زر التَرْجَمَة. إخفاء زر التَرْجَمَة في الموجز @@ -462,8 +472,6 @@ يتم عرض رف لـك. تم إخفاء رف لـك. إخفاء رف لـك - تم حظر الإعلانات بملء الشاشة. (نوع الحوار: %s) - تم إغلاق الإعلانات بملء الشاشة. يتم عرض إعلانات ملء الشاشة. تم إخفاء إعلانات ملء الشاشة. إخفاء إعلانات ملء الشاشة @@ -1352,6 +1360,7 @@ إعادة تعيين عداد المقاطع التي تم تخطيها؟ هذا يساوي <b>%s</b>. لقد أنشأت <b>%s</b> مقطع + اضغط هنا لعرض المقاطع الخاصة بك. اسم المستخدم الخاص بك: <b>%s</b> انقر هنا لتغيير إسم المستخدم الخاص بك غير قادر على تغيير اسم المستخدم: الحالة: %1$d %2$s. @@ -1442,7 +1451,8 @@ يتمتع تنسيق AVC (H.264) بدقة قصوى تبلغ 1080P، وسيستخدم تشغيل الفيديو بيانات إنترنت اكثر من VP9 أو AV1." • قائمة المقطع الصوتي مفقودة. • قائمة المقطع الصوتي مفقودة. - • قد لا يتم تشغيل الأفلام أو الفيديوهات المدفوعة. + "• قد لا يتم تشغيل الأفلام أو الفيديوهات المدفوعة. +• يبدأ البث المباشر من البداية." التأثيرات الجانبية للتزييف • قد لا يتم تشغيل الفيديو. تم إخفاء العميل المستخدم لجلب بيانات البث في إحصاءات تقنية. @@ -1485,7 +1495,16 @@ • قد يحتاج الجهاز إلى إعادة التشغيل حتى يسري تغيير هذا الإعداد. • يؤدي تعطيل هذا الإعداد إلى تحميل المزيد من الإعلانات من جانب الخادم. • يجب عليك تعطيل هذا الإعداد لجعل إعلانات الفيديو مرئية." + لا يتم تبديل زر الإنشاء بزر الإشعارات. + "تم تبديل زر الإنشاء بـزر الإشعارات. + +ملاحظة: يؤدي تمكين هذا أيضًا إلى إخفاء إعلانات الفيديو بالقوة." تبديل أزرار الإنشاء و الإشعارات + "قد يؤدي تعطيل هذا إلى تحميل المزيد من الإعلانات من الخادم. + +كما لن يتم حظر الإعلانات في فيديوهات Shorts بعد الآن. + +إذا لم يتم تفعيل هذا الإعداد، فحاول التبديل إلى وضع التصفح المتخفي." الإفتراضي • سجل المشاهدة محظور. "• يتبع إعدادات سجل المشاهدة لحساب Google. diff --git a/src/main/resources/youtube/translations/bg-rBG/missing_strings.xml b/src/main/resources/youtube/translations/bg-rBG/missing_strings.xml index 3dc30869d..32def3c27 100644 --- a/src/main/resources/youtube/translations/bg-rBG/missing_strings.xml +++ b/src/main/resources/youtube/translations/bg-rBG/missing_strings.xml @@ -9,10 +9,24 @@ Long press video downloader package name Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore - Match full word Disabled comments button or with label \"0\" is shown. Disabled comments button or with label \"0\" is hidden. Hide disabled comments button + "Home / Subscription / Search results are filtered to hide videos with views less or greater than a specified number. + +Limitations: +• Shorts cannot be hidden. +• Videos with 0 views are not filtered." + About view count filtering + Videos in home feed are not filtered. + Videos in home feed are filtered. + Hide home videos by views + Search results are not filtered. + Search results are filtered. + Hide search results by views + Videos in subscriptions feed are not filtered. + Videos in subscriptions feed are filtered. + Hide subscription videos by views MMT Blue MMT Green MMT Yellow diff --git a/src/main/resources/youtube/translations/bg-rBG/strings.xml b/src/main/resources/youtube/translations/bg-rBG/strings.xml index 9a4b8b028..7df3a5aa7 100644 --- a/src/main/resources/youtube/translations/bg-rBG/strings.xml +++ b/src/main/resources/youtube/translations/bg-rBG/strings.xml @@ -191,6 +191,12 @@ • Докоснете за превъртане. • Натиснете продължително, за да изберете текст." Деактивирайте взаимодействието с описание на видеоклипа + VP9 кодек е включен. + "Кодек VP9 е деактивиран. +• Максималната разделителна способност е 1080p. +• Възпроизвеждането на видео ще използва повече интернет данни от VP9. +• За да получите възпроизвеждане на HDR, HDR видеото все още използва кодека VP9." + Деактивирайте кодека VP9 Темата Кайро в лентата за напредък е деактивирана. "Лентата за прогрес на тема Кайро е активирана. Страничен ефект: @@ -429,6 +435,9 @@ Показват се. Падащите менюта са скрити. Скриване на показващи се раздели под видеоклипове + Показват се разширяеми секции. + Разширяващите се секции са скрити. + Разширяеми секции Бутона за субтити се показва. Бутона за субтити е скрит. Бутон за субтити @@ -452,8 +461,6 @@ Секцията \'За Вас\' се показва. Секцията \'За Вас\' е скрита. Скриване на секцията \'За Вас\' - Рекламите на цял екран са блокирани. (Тип на диалоговия прозорец: %s) - Рекламите на цял екран са затворени. Рекламите в режим на цял екран са показани. Рекламите в режим на цял екран са скрити. Скриване на рекламите в режим на цял екран @@ -1335,6 +1342,7 @@ Note: Нулиране на брояча на пропуснати части? Това е <b>%s</b>. Създадохте <b>%s</b> части + Докоснете тук, за да видите вашите сегменти. Вашето потр. име: <b>%s</b> Докоснете за промяна потребителското име Не може да се промени потреб. име: Състояние: %1$d%2$s. @@ -1422,7 +1430,7 @@ Note: AVC (H.264) има максимална разделителна способност при 1080p и възпроизвеждането на видео ще използва повече интернет данни от VP9 или AV1." • Липсва менюто за избор на аудио. • Липсва менюто за избор на аудио. - • Филми или платени видеоклипове може да не се възпроизвеждат. + "• Филми или платени видеоклипове може да не се възпроизвеждат." Ефекти от замяната • Видеото може да не се възпроизведе. Клиентът, използван за получаване на данни за поток, е скрит в Статистика за системни администратори. @@ -1457,7 +1465,16 @@ AVC (H.264) има максимална разделителна способн • Може да се наложи устройството да се рестартира, за да влезе в сила промяната на тази настройка. • Деактивирането на тази настройка зарежда повече реклами от страната на сървъра. • Трябва да деактивирате тази настройка, за да направите видео рекламите видими." + Бутоните \"Създаване\" и \"Известия\" не са разменени. + "Бутонът за създаване се заменя с бутона за известия + +Забележка: Активирането на тази опция също скрива видеореклами." Разменете бутоните „Създаване“ с „Известия“ + "Деактивирането на тази настройка може да доведе до зареждане на повече реклами от сървъра. + + Освен това рекламите може да се показват в Shorts. + +Ако деактивирането не влезе в сила, опитайте да превключите към режим „инкогнито“." По подразбиране • Хронологията на гледане е блокирана. "• Следва настройките на хронологията на сърфирането в акаунта ви в Google. diff --git a/src/main/resources/youtube/translations/bn/missing_strings.xml b/src/main/resources/youtube/translations/bn/missing_strings.xml index e6c923cdc..50d7e1f33 100644 --- a/src/main/resources/youtube/translations/bn/missing_strings.xml +++ b/src/main/resources/youtube/translations/bn/missing_strings.xml @@ -40,6 +40,13 @@ Limitation: This setting may not apply to videos that do not include the 'Listen Like and Dislike buttons will glow when mentioned. Like and Dislike buttons will not glow when mentioned. Disable Like and Dislike button glow + VP9 codec is enabled. + "VP9 codec is disabled. + +• Maximum resolution is 1080p. +• Video playback will use more internet data than VP9. +• To get HDR playback, HDR video still uses the VP9 codec." + Disable VP9 codec Cairo seekbar is disabled. "Cairo seekbar is enabled. @@ -82,8 +89,9 @@ Limitations: Double-tap overlay filter is shown. Double-tap overlay filter is hidden. Hide double-tap overlay filter - Fullscreen ads have been blocked. (DialogType: %s) - Fullscreen ads have been closed. + Expandable shelves are shown. + Expandable shelves are hidden. + Hide expandable shelves "Fullscreen ads are blocked. Side effect: Community post images may be blocked in fullscreen." @@ -97,7 +105,6 @@ Side effect: Community post images may be blocked in fullscreen." Hide Key concepts section Surrounding a keyword/phrase with double-quotes will prevent partial matches of video titles and channel names.<br><br>For example,<br><b>\"ai\"</b> will hide the video: <b>How does AI work?</b><br>but will not hide: <b>What does fair use mean?</b> Match whole words - Match full word Keyword will hide all videos: %s. Add quotes to use keyword: %s. Keyword has conflicting declarations: %s. @@ -166,6 +173,21 @@ Side effect: Community post images may be blocked in fullscreen." Autoplay can be changed in YouTube settings: Settings → Autoplay → Autoplay next video" + "Home / Subscription / Search results are filtered to hide videos with views less or greater than a specified number. + +Limitations: +• Shorts cannot be hidden. +• Videos with 0 views are not filtered." + About view count filtering + Videos in home feed are not filtered. + Videos in home feed are filtered. + Hide home videos by views + Search results are not filtered. + Search results are filtered. + Hide search results by views + Videos in subscriptions feed are not filtered. + Videos in subscriptions feed are filtered. + Hide subscription videos by views Zoom overlay is shown. Zoom overlay is hidden. Hide zoom overlay @@ -247,6 +269,7 @@ Tap and hold to open whitelist setting dialog. Set %s as the start or end of a new segment? Publish Created Segment Rewind by Specified Time (Default: 150ms) + Tap here to view your segments. Original Thumbs up Thumbs up (Cairo) @@ -276,7 +299,8 @@ If later turned off, it is recommended to clear the app data to prevent UI bugs. AVC (H.264) has a maximum resolution of 1080p, and video playback will use more internet data than VP9 or AV1." • Audio track menu is missing. • Audio track menu is missing. - • Movies or paid videos may not play. + "• Movies or paid videos may not play. +• Livestreams start from the beginning." Spoofing side effects • Video may not play. Client used to fetch streaming data is hidden in Stats for nerds. @@ -294,6 +318,15 @@ AVC (H.264) has a maximum resolution of 1080p, and video playback will use more Swipeable area size cannot be more than 50. Reset to default value. Percentage of swipeable screen area.\n\nNote: This will also change the size of the screen area for the double-tap-to-seek gesture. Swipe overlay screen size + Create button is not switched with Notifications button. + "Create button is switched with Notifications button. + +Note: Enabling this also forcibly hides video ads." + "Disabling this might load more ads from the server. + +Also, ads will no longer be blocked in Shorts. + +If this setting do not take effect, try switching to Incognito mode." • Watch history is blocked. "• Follows the watch history settings of Google account. • Watch history may not work due to DNS or VPN." diff --git a/src/main/resources/youtube/translations/de-rDE/missing_strings.xml b/src/main/resources/youtube/translations/de-rDE/missing_strings.xml index 1e4668b2b..a3f9550d0 100644 --- a/src/main/resources/youtube/translations/de-rDE/missing_strings.xml +++ b/src/main/resources/youtube/translations/de-rDE/missing_strings.xml @@ -18,6 +18,13 @@ Settings → Autoplay → Autoplay next video" Limitation: This setting may not apply to videos that do not include the 'Listen on YouTube Music' banner." Disable playback speed for music + VP9 codec is enabled. + "VP9 codec is disabled. + +• Maximum resolution is 1080p. +• Video playback will use more internet data than VP9. +• To get HDR playback, HDR video still uses the VP9 codec." + Disable VP9 codec Do not save and restore brightness when exiting or entering fullscreen. Save and restore brightness when exiting or entering fullscreen. Enable save and restore brightness @@ -32,9 +39,11 @@ Limitation: This setting may not apply to videos that do not include the 'Listen How this content was made section is shown. How this content was made section is hidden. Hide Contents section + Expandable shelves are shown. + Expandable shelves are hidden. + Hide expandable shelves Surrounding a keyword/phrase with double-quotes will prevent partial matches of video titles and channel names.<br><br>For example,<br><b>\"ai\"</b> will hide the video: <b>How does AI work?</b><br>but will not hide: <b>What does fair use mean?</b> Match whole words - Match full word Add quotes to use keyword: %s. Keyword has conflicting declarations: %s. Keyword is too short and requires quotes: %s. @@ -74,6 +83,21 @@ Limitation: This setting may not apply to videos that do not include the 'Listen Use this sound button is shown. Use this sound button is hidden. Hide Use this sound button + "Home / Subscription / Search results are filtered to hide videos with views less or greater than a specified number. + +Limitations: +• Shorts cannot be hidden. +• Videos with 0 views are not filtered." + About view count filtering + Videos in home feed are not filtered. + Videos in home feed are filtered. + Hide home videos by views + Search results are not filtered. + Search results are filtered. + Hide search results by views + Videos in subscriptions feed are not filtered. + Videos in subscriptions feed are filtered. + Hide subscription videos by views MMT Blue MMT Green MMT Yellow @@ -107,6 +131,7 @@ Limitation: This setting may not apply to videos that do not include the 'Listen Set %s as the start or end of a new segment? Publish Created Segment Rewind by Specified Time (Default: 150ms) + Tap here to view your segments. Turning on this setting may cause video playback issues. iOS video codec is AVC (H.264), VP9, or AV1. iOS video codec is AVC (H.264). @@ -116,7 +141,8 @@ Limitation: This setting may not apply to videos that do not include the 'Listen AVC (H.264) has a maximum resolution of 1080p, and video playback will use more internet data than VP9 or AV1." • Audio track menu is missing. • Audio track menu is missing. - • Movies or paid videos may not play. + "• Movies or paid videos may not play. +• Livestreams start from the beginning." Spoofing side effects • Video may not play. Client used to fetch streaming data is hidden in Stats for nerds. @@ -131,6 +157,15 @@ AVC (H.264) has a maximum resolution of 1080p, and video playback will use more iOS Default client Turning off this setting may cause video playback issues. + Create button is not switched with Notifications button. + "Create button is switched with Notifications button. + +Note: Enabling this also forcibly hides video ads." + "Disabling this might load more ads from the server. + +Also, ads will no longer be blocked in Shorts. + +If this setting do not take effect, try switching to Incognito mode." • Watch history is blocked. "• Follows the watch history settings of Google account. • Watch history may not work due to DNS or VPN." diff --git a/src/main/resources/youtube/translations/de-rDE/strings.xml b/src/main/resources/youtube/translations/de-rDE/strings.xml index 2c5857f55..d200d5ad9 100644 --- a/src/main/resources/youtube/translations/de-rDE/strings.xml +++ b/src/main/resources/youtube/translations/de-rDE/strings.xml @@ -434,8 +434,6 @@ Store" \'For You\' shelves are shown. Chips-Abschnitt wird versteckt. Für dich ausblenden - Vollbildwerbung wurde blockiert. (Dialog-Typ: %s) - Vollbildwerbung wurde geschlossen. Vollbildwerbung wird angezeigt. Vollbildwerbung wird versteckt. Vollbildwerbung verstecken diff --git a/src/main/resources/youtube/translations/el-rGR/missing_strings.xml b/src/main/resources/youtube/translations/el-rGR/missing_strings.xml index f0eaa3ea4..26b7e32ef 100644 --- a/src/main/resources/youtube/translations/el-rGR/missing_strings.xml +++ b/src/main/resources/youtube/translations/el-rGR/missing_strings.xml @@ -7,7 +7,21 @@ Long press video downloader package name Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore - Match full word + "Home / Subscription / Search results are filtered to hide videos with views less or greater than a specified number. + +Limitations: +• Shorts cannot be hidden. +• Videos with 0 views are not filtered." + About view count filtering + Videos in home feed are not filtered. + Videos in home feed are filtered. + Hide home videos by views + Search results are not filtered. + Search results are filtered. + Hide search results by views + Videos in subscriptions feed are not filtered. + Videos in subscriptions feed are filtered. + Hide subscription videos by views MMT Blue MMT Green MMT Yellow diff --git a/src/main/resources/youtube/translations/el-rGR/strings.xml b/src/main/resources/youtube/translations/el-rGR/strings.xml index 478ac8be7..89f8aa1ac 100644 --- a/src/main/resources/youtube/translations/el-rGR/strings.xml +++ b/src/main/resources/youtube/translations/el-rGR/strings.xml @@ -201,6 +201,13 @@ • Πάτημα για κύλιση. • Παρατεταμένο πάτημα για επιλογή κειμένου." Απενεργοποίηση αλληλεπίδρασης περιγραφής βίντεο + Ο κωδικοποιητής VP9 είναι απενεργοποιημένος. + "Ο κωδικοποιητής VP9 είναι ενεργοποιημένος. + +• Η μέγιστη ανάλυση είναι 1080p. +• Η αναπαραγωγή βίντεο θα χρησιμοποιεί περισσότερα δεδομένα Internet από τον VP9. +• Για την αναπαραγωγή με ποιότητα HDR, τα βίντεο HDR εξακολουθούν να χρησιμοποιούν τον κωδικοποιητή VP9." + Απενεργοποίηση κωδικοποιητή VP9 Η γραμμή προόδου του θέματος Cairo είναι απενεργοποιημένη. "Η γραμμή προόδου του θέματος Cairo είναι ενεργοποιημένη. @@ -449,6 +456,9 @@ Playlists Εμφανίζονται. Κρυμμένα. Επεκτάσιμα πλαίσια κάτω από τα βίντεο + Εμφανίζονται. + Κρυμμένες. + Επεκτάσιμες ενότητες Εμφανίζεται. Κρυμμένο. Κουμπί υπότιτλων στη ροή @@ -472,8 +482,6 @@ Playlists Εμφανίζεται. Κρυμμένη. Ενότητα «Για εσάς» - Οι διαφημίσεις πλήρους οθόνης αποκλείστηκαν. (Τύπος: %s) - Οι διαφημίσεις πλήρους οθόνης έκλεισαν. Εμφανίζονται. Κρυμμένες. Διαφημίσεις πλήρους οθόνης @@ -865,7 +873,9 @@ Playlists Εμφανίζεται. Κρυμμένη. Απόκρυψη στην καρτέλα «Εγγραφές» - "Απόκρυψη της ενότητας Shorts.\n\nΠεριορισμός: Οι τίτλοι ενοτήτων στα αποτελέσματα αναζήτησης δεν εμφανίζονται." + "Απόκρυψη της ενότητας Shorts. + +Παρενέργεια: Οι τίτλοι ενοτήτων στα αποτελέσματα αναζήτησης δεν εμφανίζονται." Απόκρυψη των Shorts Εμφανίζεται. Κρυμμένο. @@ -1378,6 +1388,7 @@ Playlists Επαναφορά του μετρητή τμημάτων που παραλείφθηκαν; Αυτό είναι <b>%s</b>. Δημιουργήσατε <b>%s</b> τμήματα + Πατήστε για να δείτε τα τμήματα σας. Το όνομα χρήστη σας: <b>%s</b> Πατήστε για να αλλάξετε το όνομα χρήστη σας Αδυναμία αλλαγής ονόματος χρήστη: Κατάσταση: %1$d %2$s. @@ -1463,14 +1474,15 @@ Playlists Ο κωδικοποιητής βίντεο iOS είναι ο AVC (H.264), ο VP9 ή ο AV1. Ο κωδικοποιητής βίντεο iOS είναι ο AVC (H.264). Εξαναγκασμός iOS AVC (H.264) - "Ενεργοποιώντας αυτόν τον κωδικοποιητή ίσως βελτιωθεί η κατανάλωση ενέργειας και ίσως διορθωθούν κολλήματα αναπαραγωγής. + "Ενεργοποιώντας αυτόν τον κωδικοποιητή ίσως βελτιωθεί η κατανάλωση ενέργειας και ίσως διορθωθούν μικροκολλήματα αναπαραγωγής. -Ο AVC (H.264) έχει μέγιστη ανάλυση 1080p, και η αναπαραγωγή βίντεο καταναλώνει περισσότερα δεδομένα internet από τον VP9 ή τον AV1." +Ο AVC (H.264) ωστόσο έχει μέγιστη ανάλυση 1080p, και η αναπαραγωγή βίντεο καταναλώνει περισσότερα δεδομένα internet από τον VP9 ή τον AV1." • Το μενού «Κομμάτι ήχου» λείπει. • Το μενού «Κομμάτι ήχου» λείπει. - • Οι ταινίες ή τα επί πληρωμή βίντεο ενδέχεται να μην αναπαράγονται. + "• Οι ταινίες ή τα επί πληρωμή βίντεο ενδέχεται να μην αναπαράγονται. +• Οι ζωντανές μεταδόσεις ξεκινούν από την αρχή κατά την αναπαραγωγή." Παρενέργειες παραποίησης - • Τα βίντεο ενδέχεται να μην αναπαράγονται σωστά. + • Τα βίντεο ενδέχεται να μην αναπαράγονται. Το πρόγραμμα πελάτη που χρησιμοποιείται για τη λήψη δεδομένων ροής δεν εμφανίζεται στο μενού «Στατιστικά για σπασίκλες». Το πρόγραμμα πελάτη που χρησιμοποιείται για τη λήψη δεδομένων ροής εμφανίζεται στο μενού «Στατιστικά για σπασίκλες». Εμφάνιση στο «Στατιστικά για σπασίκλες» @@ -1502,7 +1514,16 @@ Playlists • Όταν ενεργοποιηθεί, μπορεί να μη λειτουργήσει μέχρι να γίνει επανεκκίνηση της συσκευής σας. • Η ενεργοποίηση αυτής της ρύθμισης εξαναγκάζει επίσης την απενεργοποίηση των διαφημίσεων βίντεο." + Δεν γίνεται εναλλαγή θέσεων των κουμπιών «Δημιουργία» και «Ειδοποιήσεις». + "Γίνεται εναλλαγή θέσεων των κουμπιών «Δημιουργία» και «Ειδοποιήσεις». + +Σημείωση: Η ενεργοποίηση αυτής της ρύθμισης εξαναγκάζει επίσης την απόκρυψη των διαφημίσεων βίντεο." Εναλλαγή «Δημιουργία» με «Ειδοποιήσεις» + "Η απενεργοποίηση αυτής της ρύθμισης μπορεί να χει ως αποτέλεσμα την φόρτωση περισσότερων διαφημίσεων από τον διακομιστή. + +Επίσης, ενδέχεται να εμφανίζονται διαφημίσεις στα Shorts. + +Αν η απενεργοποίηση δεν τεθεί σε ισχύ, δοκιμάστε να μεταβείτε σε λειτουργία ανώνυμης περιήγησης." Προεπιλογή Το ιστορικό παρακολούθησης είναι αποκλεισμένο. "• Ακολουθούνται οι ρυθμίσεις ιστορικού παρακολούθησης του λογαριασμού Google σας. @@ -1511,7 +1532,7 @@ Playlists Κατάσταση ιστορικού παρακολούθησης Πατήστε για άνοιγμα της διαχείρισης του ιστορικού παρακολούθησης του YouTube. Διαχείριση όλου του ιστορικού - Αρχικό + Αρχικός Αντικατάσταση του domain Αποκλεισμός ιστορικού παρακολούθησης Τύπος ιστορικού παρακολούθησης diff --git a/src/main/resources/youtube/translations/es-rES/missing_strings.xml b/src/main/resources/youtube/translations/es-rES/missing_strings.xml index bfab0557f..b3c19545c 100644 --- a/src/main/resources/youtube/translations/es-rES/missing_strings.xml +++ b/src/main/resources/youtube/translations/es-rES/missing_strings.xml @@ -7,10 +7,14 @@ Long press video downloader package name Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore - Match full word Disabled comments button or with label \"0\" is shown. Disabled comments button or with label \"0\" is hidden. Hide disabled comments button + "Home / Subscription / Search results are filtered to hide videos with views less or greater than a specified number. + +Limitations: +• Shorts cannot be hidden. +• Videos with 0 views are not filtered." MMT Blue MMT Green MMT Yellow diff --git a/src/main/resources/youtube/translations/es-rES/strings.xml b/src/main/resources/youtube/translations/es-rES/strings.xml index 8760a7988..d13aa04d5 100644 --- a/src/main/resources/youtube/translations/es-rES/strings.xml +++ b/src/main/resources/youtube/translations/es-rES/strings.xml @@ -201,6 +201,13 @@ Nota: • Pulsar para desplazarse. • Mantener pulsado para seleccionar texto." Desactivar interacción de descripción de vídeo + El códec VP9 está activado. + "El códec VP9 está desactivado. + +• La resolución máxima es 1080p. +• La reproducción de vídeo utilizará más datos de Internet que VP9. +• Para obtener reproducción HDR, el vídeo HDR sigue utilizando el códec VP9." + Desactivar códec VP9 La barra de progreso Cairo está desactivada. "La barra de progreso Cairo está activada. @@ -440,6 +447,9 @@ Tienda" Las fichas ampliables están visibles. Las fichas ampliables están ocultas. Ocultar fichas ampliables bajo los vídeos + Los estantes ampliables están visibles. + Los estantes ampliables están ocultos. + Ocultar estantes ampliables El botón de subtítulos está visible. El botón de subtítulos está oculto. Ocultar botón de subtítulos del feed @@ -463,8 +473,6 @@ Tienda" Las estanterías Para Ti están visibles. Las estanterías Para Ti están ocultas. Ocultar estanterías Para Ti - Se han bloqueado anuncios en pantalla completa. (Tipo de diálogo: %s) - Se han cerrado anuncios en pantalla completa. Los anuncios en pantalla completa están visibles. Los anuncios en pantalla completa están ocultos. Ocultar anuncios en pantalla completa @@ -938,6 +946,16 @@ La reproducción automática se puede cambiar en la configuración de YouTube: Duración más corta Oculta vídeos con una duración inferior o superior a la establecida.\n\nProblema conocido: no ocultará los vídeos en los vídeos relacionados en el reproductor, en su lugar ocultará la marca de tiempo. Ocultar vídeos basados en la duración + Acerca del filtrado del contador de visualizaciones + Los vídeos en el feed de inicio no están filtrados. + Los vídeos en el feed de inicio están filtrados. + Ocultar vídeos de inicio por visualizaciones + Los resultados de búsqueda no están filtrados. + Los resultados de búsqueda están filtrados. + Ocultar resultados de búsqueda por visualizaciones + Los vídeos en el feed de suscripciones no están filtrados. + Los vídeos en el feed de suscripciones están filtrados. + Ocultar vídeos de suscripciones por visualizaciones Oculta vídeos recomendados con menos de un número determinado de visualizaciones. Ocultar vídeos recomendados por visualizaciones Los vídeos con visualizaciones mayores que este número serán ocultados. @@ -1347,6 +1365,7 @@ Limitación: es posible que los no me gusta no aparezcan en modo incógnito."¿Restablecer el contador de segmentos omitidos? Eso es <b>%s</b>. Has creado <b>%s</b> segmentos + Pulsa aquí para ver tus segmentos. Tu nombre de usuario: <b>%s</b> Pulsa aquí para cambiar tu nombre de usuario No se puede cambiar el nombre de usuario: Estado: %1$d %2$s. @@ -1436,7 +1455,7 @@ Si se desactiva más tarde, se recomienda borrar los datos de la aplicación par AVC (H.264) tiene una resolución máxima de 1080p, y la reproducción de vídeo utilizará más datos de Internet que VP9 o AV1." • Falta el menú de la pista de audio. • Falta el menú de la pista de audio. - • Las películas o vídeos de pago no pueden reproducirse. + "• Las películas o vídeos de pago no pueden reproducirse." Efectos secundarios de falsificación • El vídeo no puede reproducirse. El cliente utilizado para obtener datos de transmisión no se muestra en estadísticas para nerds. @@ -1471,7 +1490,16 @@ AVC (H.264) tiene una resolución máxima de 1080p, y la reproducción de vídeo • Aunque cambies este ajuste, es posible que no surta efecto hasta que reinicies el dispositivo. • Al desactivar este ajuste se cargan más anuncios desde el servidor. • Debes desactivar este ajuste para que los anuncios de vídeo sean visibles." + El botón de crear no se cambia por el botón de notificaciones. + "El botón de crear se cambia por el botón de notificaciones. + +Nota: Al activar esto también se ocultan forzosamente los anuncios de vídeos." Cambiar botón de crear con el de notificaciones + "Desactivar esto podría cargar más anuncios del servidor. + +Además, los anuncios ya no se bloquearán en Shorts. + +Si este ajuste no surte efecto, prueba a cambiar al modo incógnito." Predeterminado • El historial de reproducciones no funciona. "• Sigue la configuración del historial de reproducciones de la cuenta de Google. diff --git a/src/main/resources/youtube/translations/fi-rFI/missing_strings.xml b/src/main/resources/youtube/translations/fi-rFI/missing_strings.xml index e6c923cdc..50d7e1f33 100644 --- a/src/main/resources/youtube/translations/fi-rFI/missing_strings.xml +++ b/src/main/resources/youtube/translations/fi-rFI/missing_strings.xml @@ -40,6 +40,13 @@ Limitation: This setting may not apply to videos that do not include the 'Listen Like and Dislike buttons will glow when mentioned. Like and Dislike buttons will not glow when mentioned. Disable Like and Dislike button glow + VP9 codec is enabled. + "VP9 codec is disabled. + +• Maximum resolution is 1080p. +• Video playback will use more internet data than VP9. +• To get HDR playback, HDR video still uses the VP9 codec." + Disable VP9 codec Cairo seekbar is disabled. "Cairo seekbar is enabled. @@ -82,8 +89,9 @@ Limitations: Double-tap overlay filter is shown. Double-tap overlay filter is hidden. Hide double-tap overlay filter - Fullscreen ads have been blocked. (DialogType: %s) - Fullscreen ads have been closed. + Expandable shelves are shown. + Expandable shelves are hidden. + Hide expandable shelves "Fullscreen ads are blocked. Side effect: Community post images may be blocked in fullscreen." @@ -97,7 +105,6 @@ Side effect: Community post images may be blocked in fullscreen." Hide Key concepts section Surrounding a keyword/phrase with double-quotes will prevent partial matches of video titles and channel names.<br><br>For example,<br><b>\"ai\"</b> will hide the video: <b>How does AI work?</b><br>but will not hide: <b>What does fair use mean?</b> Match whole words - Match full word Keyword will hide all videos: %s. Add quotes to use keyword: %s. Keyword has conflicting declarations: %s. @@ -166,6 +173,21 @@ Side effect: Community post images may be blocked in fullscreen." Autoplay can be changed in YouTube settings: Settings → Autoplay → Autoplay next video" + "Home / Subscription / Search results are filtered to hide videos with views less or greater than a specified number. + +Limitations: +• Shorts cannot be hidden. +• Videos with 0 views are not filtered." + About view count filtering + Videos in home feed are not filtered. + Videos in home feed are filtered. + Hide home videos by views + Search results are not filtered. + Search results are filtered. + Hide search results by views + Videos in subscriptions feed are not filtered. + Videos in subscriptions feed are filtered. + Hide subscription videos by views Zoom overlay is shown. Zoom overlay is hidden. Hide zoom overlay @@ -247,6 +269,7 @@ Tap and hold to open whitelist setting dialog. Set %s as the start or end of a new segment? Publish Created Segment Rewind by Specified Time (Default: 150ms) + Tap here to view your segments. Original Thumbs up Thumbs up (Cairo) @@ -276,7 +299,8 @@ If later turned off, it is recommended to clear the app data to prevent UI bugs. AVC (H.264) has a maximum resolution of 1080p, and video playback will use more internet data than VP9 or AV1." • Audio track menu is missing. • Audio track menu is missing. - • Movies or paid videos may not play. + "• Movies or paid videos may not play. +• Livestreams start from the beginning." Spoofing side effects • Video may not play. Client used to fetch streaming data is hidden in Stats for nerds. @@ -294,6 +318,15 @@ AVC (H.264) has a maximum resolution of 1080p, and video playback will use more Swipeable area size cannot be more than 50. Reset to default value. Percentage of swipeable screen area.\n\nNote: This will also change the size of the screen area for the double-tap-to-seek gesture. Swipe overlay screen size + Create button is not switched with Notifications button. + "Create button is switched with Notifications button. + +Note: Enabling this also forcibly hides video ads." + "Disabling this might load more ads from the server. + +Also, ads will no longer be blocked in Shorts. + +If this setting do not take effect, try switching to Incognito mode." • Watch history is blocked. "• Follows the watch history settings of Google account. • Watch history may not work due to DNS or VPN." diff --git a/src/main/resources/youtube/translations/fr-rFR/missing_strings.xml b/src/main/resources/youtube/translations/fr-rFR/missing_strings.xml index bfab0557f..1da9ef507 100644 --- a/src/main/resources/youtube/translations/fr-rFR/missing_strings.xml +++ b/src/main/resources/youtube/translations/fr-rFR/missing_strings.xml @@ -7,10 +7,24 @@ Long press video downloader package name Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore - Match full word Disabled comments button or with label \"0\" is shown. Disabled comments button or with label \"0\" is hidden. Hide disabled comments button + "Home / Subscription / Search results are filtered to hide videos with views less or greater than a specified number. + +Limitations: +• Shorts cannot be hidden. +• Videos with 0 views are not filtered." + About view count filtering + Videos in home feed are not filtered. + Videos in home feed are filtered. + Hide home videos by views + Search results are not filtered. + Search results are filtered. + Hide search results by views + Videos in subscriptions feed are not filtered. + Videos in subscriptions feed are filtered. + Hide subscription videos by views MMT Blue MMT Green MMT Yellow diff --git a/src/main/resources/youtube/translations/fr-rFR/strings.xml b/src/main/resources/youtube/translations/fr-rFR/strings.xml index f4332e382..2a8735e9b 100644 --- a/src/main/resources/youtube/translations/fr-rFR/strings.xml +++ b/src/main/resources/youtube/translations/fr-rFR/strings.xml @@ -201,6 +201,13 @@ Note : • Appuyez pour défiler. • Appuyez longuement pour sélectionner du texte." Désac. interaction avec la description vidéo + Le codec VP9 est activé. + "Le codec VP9 est désactivé. + +• La résolution maximale est en 1080p. +• La lecture vidéo utilisera plus de données internet que le VP9. +• Pour utiliser la lecture en HDR, les vidéos HDR utilisent toujours le codec VP9." + Désactiver le codec VP9 La barre de progression Cairo est désactivé. "La barre de progression Cairo est activé. @@ -439,6 +446,9 @@ Boutique" Les menus déroulants sont affichés. Les menus déroulants sont masqués. Masquer les menus déroulants sous les vidéos + Les étagères coulissantes sont affichés. + Les étagères coulissantes sont masqués. + Masquer les étagères coulissantes Le bouton \"Sous-titres\" est affiché. Le bouton \"Sous-titres\" est masqué. Masquer les \"Sous-titres\" dans les flux @@ -462,8 +472,6 @@ Boutique" La catégorie \"Pour vous\" est affichée. La catégorie \"Pour vous\" est masquée. Masquer la catégorie \"Pour vous\" - La publicité en plein écran a été bloquée. (Type de dialogue : %s) - La publicité en plein écran a été fermée. Les publicités en plein écran sont affichées. Les publicités en plein écran sont masquées. Masquer les publicités en plein écran @@ -1347,6 +1355,7 @@ Limitation : les \"Je n'aime pas\" ne seront pas affichées si vous n'êtes pas Voulez-vous réinitialiser le compteur de segment ? Cela représente <b>%s</b>. Vous avez créé <b>%s</b> segment(s) + Appuyez ici pour voir vos segments. Votre nom d\'utilisateur : <b>%s</b> Modifier votre nom d\'utilisateur Impossible de changer le nom d\'utilisateur : Statut : %1$d %2$s. @@ -1438,7 +1447,8 @@ Les hautes qualités peuvent être débloquées sur certaines vidéos qui requi AVC (H.264) a une résolution maximale de 1080p, et la lecture vidéo utilisera plus de données internet que le VP9 ou le AV1." • Le menu \"Piste Audio\" est manquant. • Le menu \"Piste Audio\" est manquant. - • Les films ou les vidéos payantes peuvent ne pas être lus. + "• Les films ou les vidéos payantes peuvent ne pas être lus. +• Les diffusions en direct commencent au début." Effets inconnus de la falsification • Les vidéos peuvent ne pas être lus. Le client utilisé pour récupérer les données de lecture en direct est masqué dans \"Statistiques pour les nerds\". @@ -1473,7 +1483,16 @@ AVC (H.264) a une résolution maximale de 1080p, et la lecture vidéo utilisera • L'appareil peut nécessiter un redémarrage pour que ce paramètre prenne effet. • Désactiver ce paramètre charge plus de publicités depuis le serveur. • Vous devez désactiver ce paramètre afin de rendre les publicités vidéo visibles." + Le bouton \"Créer\" n\'est pas échangé avec le bouton \"Notification\". + "Le bouton \"Créer\" est échangé avec le bouton \"Notification\". + +Note : Activer ceci masquera également les publicités vidéos." Échanger \"Créer\" et \"Notifications\" + "Désactiver ceci pourrait charger plus de publicités depuis le serveur. + +Également, les publicités ne seront plus bloquées sur les Shorts. + +Si ce paramètre ne fait pas effet, essayer de passer en mode Incognito." Officiel • L\'historique de visionnage est bloqué. "• Suit les paramètres de l'historique de visionnage du compte Google. diff --git a/src/main/resources/youtube/translations/hu-rHU/missing_strings.xml b/src/main/resources/youtube/translations/hu-rHU/missing_strings.xml index e3550ea69..400746c71 100644 --- a/src/main/resources/youtube/translations/hu-rHU/missing_strings.xml +++ b/src/main/resources/youtube/translations/hu-rHU/missing_strings.xml @@ -11,32 +11,27 @@ Settings → Autoplay → Autoplay next video" Disable switch mix playlists Enabling this feature will disable automatic switching to YouTube Mix when playing music while autoplay is turned on. Default playback speed is enabled for music. - "Default playback speed is disabled for music. - -Limitation: This setting may not apply to videos that do not include the 'Listen on YouTube Music' banner." Disable playback speed for music + VP9 codec is enabled. + "VP9 codec is disabled. + +• Maximum resolution is 1080p. +• Video playback will use more internet data than VP9. +• To get HDR playback, HDR video still uses the VP9 codec." + Disable VP9 codec Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. Long press video downloader package name Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore + Expandable shelves are shown. + Expandable shelves are hidden. + Hide expandable shelves Surrounding a keyword/phrase with double-quotes will prevent partial matches of video titles and channel names.<br><br>For example,<br><b>\"ai\"</b> will hide the video: <b>How does AI work?</b><br>but will not hide: <b>What does fair use mean?</b> - Match whole words - Match full word Add quotes to use keyword: %s. Keyword has conflicting declarations: %s. Keyword is too short and requires quotes: %s. - Ambient mode menu is shown. - Ambient mode menu is hidden. - Hide Ambient mode menu - Sleep timer menu is shown. - Sleep timer menu is hidden. - Hide Sleep timer menu - Promotion alert banner is shown. - Promotion alert banner is hidden. - Hide promotion alert banner "Floating buttons like 'Use this sound' are shown in the Shorts channel tab." "Floating buttons like 'Use this sound' are hidden in the Shorts channel tab." - Hide floating button Location button is shown. Location button is hidden. Hide location button @@ -55,6 +50,21 @@ Limitation: This setting may not apply to videos that do not include the 'Listen Use this sound button is shown. Use this sound button is hidden. Hide Use this sound button + "Home / Subscription / Search results are filtered to hide videos with views less or greater than a specified number. + +Limitations: +• Shorts cannot be hidden. +• Videos with 0 views are not filtered." + About view count filtering + Videos in home feed are not filtered. + Videos in home feed are filtered. + Hide home videos by views + Search results are not filtered. + Search results are filtered. + Hide search results by views + Videos in subscriptions feed are not filtered. + Videos in subscriptions feed are filtered. + Hide subscription videos by views MMT Blue MMT Green MMT Yellow @@ -70,30 +80,28 @@ Limitation: This setting may not apply to videos that do not include the 'Listen Forward by Specified Time (Default: 150ms) Publish Created Segment Rewind by Specified Time (Default: 150ms) + Tap here to view your segments. iOS video codec is AVC (H.264), VP9, or AV1. - iOS video codec is AVC (H.264). - Force iOS AVC (H.264) "Enabling this might improve battery life and fix playback stuttering. AVC (H.264) has a maximum resolution of 1080p, and video playback will use more internet data than VP9 or AV1." - • Audio track menu is missing. - • Audio track menu is missing. - • Movies or paid videos may not play. + "• Movies or paid videos may not play. +• Livestreams start from the beginning." Spoofing side effects - • Video may not play. Client used to fetch streaming data is hidden in Stats for nerds. Client used to fetch streaming data is shown in Stats for nerds. Show in Stats for nerds "Streaming data is not spoofed. Video playback may not work." Streaming data is spoofed. Spoof streaming data - Android - Android TV - Android VR - iOS - Default client Turning off this setting may cause video playback issues. - "• Follows the watch history settings of Google account. -• Watch history may not work due to DNS or VPN." - • Follows the watch history settings of Google account. + Create button is not switched with Notifications button. + "Create button is switched with Notifications button. + +Note: Enabling this also forcibly hides video ads." + "Disabling this might load more ads from the server. + +Also, ads will no longer be blocked in Shorts. + +If this setting do not take effect, try switching to Incognito mode." diff --git a/src/main/resources/youtube/translations/hu-rHU/strings.xml b/src/main/resources/youtube/translations/hu-rHU/strings.xml index 0a0d340a4..89f1a6d6b 100644 --- a/src/main/resources/youtube/translations/hu-rHU/strings.xml +++ b/src/main/resources/youtube/translations/hu-rHU/strings.xml @@ -131,6 +131,9 @@ Koppints ide, ha többet szeretnél megtudni a DeArrow-ról." Az alapértelmezett lejátszási sebesség engedélyezve van az élő közvetítésnél. Az alapértelmezett lejátszási sebesség le van tiltva élő közvetítésnél. Lejátszási sebesség letiltása élő közvetítésnél + "A zene alapértelmezett lejátszási sebessége le van tiltva. + +Korlátozás: Előfordulhat, hogy ez a beállítás nem vonatkozik azokra a videókra, amelyek nem tartalmazzák a „Hallgassa meg a YouTube Musicon” bannert." Az interakciós panel engedélyezve. Az interakciós panel letiltva. Interakciós panel letiltása @@ -442,8 +445,6 @@ Lejátszási listák A polc megjelenik A polc rejtett \"Neked\" polc elrejtése a csatorna oldalon - A teljes képernyős hirdetések letiltva. (Dialógus típusa: %s) - A teljes képernyős hirdetések bezáródtak. A teljes képernyős hirdetések láthatók. A teljes képernyős hirdetések rejtve vannak. Teljes képernyős hirdetések elrejtése @@ -487,6 +488,7 @@ Korlátozás: előfordulhat, hogy a közösségi bejegyzés képe a teljes képe Kulcs koncepciók rész elrejtése "A Kezdőlap/Feliratkozások/Keresés eredményei a kulcsszóval megegyező tartalom elrejtésére vannak szűrve\n\nKorlátozások\n• Néhány Shorts lehet, hogy nem lesz elrejtve\n• Néhány UI elem lehet, hogy nem lesz elrejtve\n• Előfordulhat, hogy a kulcsszó keresése nem hoz eredményt" A kulcsszó alapú szűrésről + Teljes szóegyezések A kommentek nincsenek szűrve. A kommentek szűrve vannak. Kommentek elrejtése kulcsszavak alapján @@ -574,6 +576,9 @@ Korlátozás: előfordulhat, hogy a közösségi bejegyzés képe a teljes képe Az Összecsukás gomb megjelenik. Az Összecsukás gomb el van rejtve. Összecsukás gomb elrejtése + A \'Mozifilmes világítás\' menü látható. + A \'Mozifilmes világítás\' menü el van rejtve. + \'Mozifilmes világítás\' menü elrejtése Az audiosáv menü megjelenik. Az audiosáv menü el van rejtve. Audió nyomkövető menü elrejtése @@ -616,6 +621,9 @@ Korlátozás: előfordulhat, hogy a közösségi bejegyzés képe a teljes képe A jelentés menü megjelenik. A jelentés menü el van rejtve. Jelentés menü elrejtése + Az elalvási időzítő látható. + Az elalvási időzítő el van rejtve. + Elalvási időzítő elrejtése A stabil hangerő menü megjelenik. A stabil hangerő menü el van rejtve. Rejtsd el a stabil hangerő menüt @@ -646,6 +654,9 @@ Korlátozás: előfordulhat, hogy a közösségi bejegyzés képe a teljes képe Ez megváltoztatja a megjegyzés rész méretét, így nem lehet a megjegyzés részben élő chat választ nyitni. Ez nem változtatja meg a megjegyzés rész méretét, így lehet a megjegyzés részben élő chat választ nyitni. Megjegyzés előnézet elrejtés típusa + A promóciós figyelmeztető banner látható. + A promóciós figyelmeztető banner el van rejtve. + Promóciós figyelmeztető banner elrejtése A hozzászólás gomb megjelenik. A hozzászólás gomb el van rejtve. Hozzászólás gomb elrejtése @@ -743,6 +754,7 @@ Feliratok" A nem tetszik gomb látható A nem tetszik gomb elrejtve Nem tetszik gomb elrejtése + Lebegő gomb elrejtése A teljes videólink címke megjelenik A teljes videólink címke el van rejtve Teljes videólink címke elrejtése @@ -1368,6 +1380,16 @@ Ez meg fogja változtatni az app működését és kinézetét és nem várt mel Ha kikapcsolja, akkor ajánlott törölni az app adatait, hogy elkerülje a UI hibákat." "Meghamisítja az eszköz méreteit annak érdekében, hogy feloldjon olyan jobb videóminőséget, amely esetleg nem érhető el az eszközön." Eszközméret hamisítása + Az iOS videokodek AVC (H.264). + Kényszerített iOS AVC (H.264) + • Az audiosáv menü hiányzik. + • Az audiosáv menü hiányzik. + • A videó esetleg nem játszódik le. + Android + Android TV + Android VR + iOS + Alapértelmezett kliens A csúsztatási mozdulatok le vannak tiltva a \'Képernyő lezárása\' módban. A csúsztatási mozdulatok engedélyezve vannak a \'Képernyő lezárása\' módban. A csúsztatási mozdulatok a \'Képernyő lezárása\' módban @@ -1392,6 +1414,9 @@ Megjegyzés: Ezzel a képernyőterület méretét is megváltoztatja, ahol érz Létrehozás felcserélése az értesítésekkel Készlet • A megtekintési előzmények le vannak tiltva. + "• Követi a Google-fiók megtekintési előzményeinek beállításait. +• Előfordulhat, hogy a megtekintési előzmények nem működik a DNS vagy a VPN miatt." + • Követi a Google-fiók megtekintési előzményeinek beállításait. Megtekintési előzmények állapota Kattintson a YouTube megtekintési előzmények kezelésének megnyitásához. Előzmények kezelése diff --git a/src/main/resources/youtube/translations/id-rID/missing_strings.xml b/src/main/resources/youtube/translations/id-rID/missing_strings.xml index e6c923cdc..50d7e1f33 100644 --- a/src/main/resources/youtube/translations/id-rID/missing_strings.xml +++ b/src/main/resources/youtube/translations/id-rID/missing_strings.xml @@ -40,6 +40,13 @@ Limitation: This setting may not apply to videos that do not include the 'Listen Like and Dislike buttons will glow when mentioned. Like and Dislike buttons will not glow when mentioned. Disable Like and Dislike button glow + VP9 codec is enabled. + "VP9 codec is disabled. + +• Maximum resolution is 1080p. +• Video playback will use more internet data than VP9. +• To get HDR playback, HDR video still uses the VP9 codec." + Disable VP9 codec Cairo seekbar is disabled. "Cairo seekbar is enabled. @@ -82,8 +89,9 @@ Limitations: Double-tap overlay filter is shown. Double-tap overlay filter is hidden. Hide double-tap overlay filter - Fullscreen ads have been blocked. (DialogType: %s) - Fullscreen ads have been closed. + Expandable shelves are shown. + Expandable shelves are hidden. + Hide expandable shelves "Fullscreen ads are blocked. Side effect: Community post images may be blocked in fullscreen." @@ -97,7 +105,6 @@ Side effect: Community post images may be blocked in fullscreen." Hide Key concepts section Surrounding a keyword/phrase with double-quotes will prevent partial matches of video titles and channel names.<br><br>For example,<br><b>\"ai\"</b> will hide the video: <b>How does AI work?</b><br>but will not hide: <b>What does fair use mean?</b> Match whole words - Match full word Keyword will hide all videos: %s. Add quotes to use keyword: %s. Keyword has conflicting declarations: %s. @@ -166,6 +173,21 @@ Side effect: Community post images may be blocked in fullscreen." Autoplay can be changed in YouTube settings: Settings → Autoplay → Autoplay next video" + "Home / Subscription / Search results are filtered to hide videos with views less or greater than a specified number. + +Limitations: +• Shorts cannot be hidden. +• Videos with 0 views are not filtered." + About view count filtering + Videos in home feed are not filtered. + Videos in home feed are filtered. + Hide home videos by views + Search results are not filtered. + Search results are filtered. + Hide search results by views + Videos in subscriptions feed are not filtered. + Videos in subscriptions feed are filtered. + Hide subscription videos by views Zoom overlay is shown. Zoom overlay is hidden. Hide zoom overlay @@ -247,6 +269,7 @@ Tap and hold to open whitelist setting dialog. Set %s as the start or end of a new segment? Publish Created Segment Rewind by Specified Time (Default: 150ms) + Tap here to view your segments. Original Thumbs up Thumbs up (Cairo) @@ -276,7 +299,8 @@ If later turned off, it is recommended to clear the app data to prevent UI bugs. AVC (H.264) has a maximum resolution of 1080p, and video playback will use more internet data than VP9 or AV1." • Audio track menu is missing. • Audio track menu is missing. - • Movies or paid videos may not play. + "• Movies or paid videos may not play. +• Livestreams start from the beginning." Spoofing side effects • Video may not play. Client used to fetch streaming data is hidden in Stats for nerds. @@ -294,6 +318,15 @@ AVC (H.264) has a maximum resolution of 1080p, and video playback will use more Swipeable area size cannot be more than 50. Reset to default value. Percentage of swipeable screen area.\n\nNote: This will also change the size of the screen area for the double-tap-to-seek gesture. Swipe overlay screen size + Create button is not switched with Notifications button. + "Create button is switched with Notifications button. + +Note: Enabling this also forcibly hides video ads." + "Disabling this might load more ads from the server. + +Also, ads will no longer be blocked in Shorts. + +If this setting do not take effect, try switching to Incognito mode." • Watch history is blocked. "• Follows the watch history settings of Google account. • Watch history may not work due to DNS or VPN." diff --git a/src/main/resources/youtube/translations/in/missing_strings.xml b/src/main/resources/youtube/translations/in/missing_strings.xml index e6c923cdc..50d7e1f33 100644 --- a/src/main/resources/youtube/translations/in/missing_strings.xml +++ b/src/main/resources/youtube/translations/in/missing_strings.xml @@ -40,6 +40,13 @@ Limitation: This setting may not apply to videos that do not include the 'Listen Like and Dislike buttons will glow when mentioned. Like and Dislike buttons will not glow when mentioned. Disable Like and Dislike button glow + VP9 codec is enabled. + "VP9 codec is disabled. + +• Maximum resolution is 1080p. +• Video playback will use more internet data than VP9. +• To get HDR playback, HDR video still uses the VP9 codec." + Disable VP9 codec Cairo seekbar is disabled. "Cairo seekbar is enabled. @@ -82,8 +89,9 @@ Limitations: Double-tap overlay filter is shown. Double-tap overlay filter is hidden. Hide double-tap overlay filter - Fullscreen ads have been blocked. (DialogType: %s) - Fullscreen ads have been closed. + Expandable shelves are shown. + Expandable shelves are hidden. + Hide expandable shelves "Fullscreen ads are blocked. Side effect: Community post images may be blocked in fullscreen." @@ -97,7 +105,6 @@ Side effect: Community post images may be blocked in fullscreen." Hide Key concepts section Surrounding a keyword/phrase with double-quotes will prevent partial matches of video titles and channel names.<br><br>For example,<br><b>\"ai\"</b> will hide the video: <b>How does AI work?</b><br>but will not hide: <b>What does fair use mean?</b> Match whole words - Match full word Keyword will hide all videos: %s. Add quotes to use keyword: %s. Keyword has conflicting declarations: %s. @@ -166,6 +173,21 @@ Side effect: Community post images may be blocked in fullscreen." Autoplay can be changed in YouTube settings: Settings → Autoplay → Autoplay next video" + "Home / Subscription / Search results are filtered to hide videos with views less or greater than a specified number. + +Limitations: +• Shorts cannot be hidden. +• Videos with 0 views are not filtered." + About view count filtering + Videos in home feed are not filtered. + Videos in home feed are filtered. + Hide home videos by views + Search results are not filtered. + Search results are filtered. + Hide search results by views + Videos in subscriptions feed are not filtered. + Videos in subscriptions feed are filtered. + Hide subscription videos by views Zoom overlay is shown. Zoom overlay is hidden. Hide zoom overlay @@ -247,6 +269,7 @@ Tap and hold to open whitelist setting dialog. Set %s as the start or end of a new segment? Publish Created Segment Rewind by Specified Time (Default: 150ms) + Tap here to view your segments. Original Thumbs up Thumbs up (Cairo) @@ -276,7 +299,8 @@ If later turned off, it is recommended to clear the app data to prevent UI bugs. AVC (H.264) has a maximum resolution of 1080p, and video playback will use more internet data than VP9 or AV1." • Audio track menu is missing. • Audio track menu is missing. - • Movies or paid videos may not play. + "• Movies or paid videos may not play. +• Livestreams start from the beginning." Spoofing side effects • Video may not play. Client used to fetch streaming data is hidden in Stats for nerds. @@ -294,6 +318,15 @@ AVC (H.264) has a maximum resolution of 1080p, and video playback will use more Swipeable area size cannot be more than 50. Reset to default value. Percentage of swipeable screen area.\n\nNote: This will also change the size of the screen area for the double-tap-to-seek gesture. Swipe overlay screen size + Create button is not switched with Notifications button. + "Create button is switched with Notifications button. + +Note: Enabling this also forcibly hides video ads." + "Disabling this might load more ads from the server. + +Also, ads will no longer be blocked in Shorts. + +If this setting do not take effect, try switching to Incognito mode." • Watch history is blocked. "• Follows the watch history settings of Google account. • Watch history may not work due to DNS or VPN." diff --git a/src/main/resources/youtube/translations/it-rIT/missing_strings.xml b/src/main/resources/youtube/translations/it-rIT/missing_strings.xml index 62688cae7..cf0a420f0 100644 --- a/src/main/resources/youtube/translations/it-rIT/missing_strings.xml +++ b/src/main/resources/youtube/translations/it-rIT/missing_strings.xml @@ -2,4 +2,19 @@ Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. Long press video downloader package name + "Home / Subscription / Search results are filtered to hide videos with views less or greater than a specified number. + +Limitations: +• Shorts cannot be hidden. +• Videos with 0 views are not filtered." + About view count filtering + Videos in home feed are not filtered. + Videos in home feed are filtered. + Hide home videos by views + Search results are not filtered. + Search results are filtered. + Hide search results by views + Videos in subscriptions feed are not filtered. + Videos in subscriptions feed are filtered. + Hide subscription videos by views diff --git a/src/main/resources/youtube/translations/it-rIT/strings.xml b/src/main/resources/youtube/translations/it-rIT/strings.xml index 2541e61f2..b8e1057fe 100644 --- a/src/main/resources/youtube/translations/it-rIT/strings.xml +++ b/src/main/resources/youtube/translations/it-rIT/strings.xml @@ -61,7 +61,7 @@ Tocca qui per saperne di più su DeArrow." Il tipo di informazione La modalità Ambient in modalità risparmio energetico è disattivata La modalità Ambient in modalità risparmio energetico è attivata - Bypassa le restrizioni della modalità Ambient + Ignora le restrizioni della modalità Ambient Il dominio da cui prelevare le immagini.\nNota: Inserisce solo il nome di dominio, cioè senza il prefisso \"https\:\/\/\". Dominio alternativo Usando l\'host originale per le immagini.\n\nAbilitando questo si possono correggere le immagini mancanti che sono bloccate in alcune regioni. @@ -141,13 +141,13 @@ Tocca qui per saperne di più su DeArrow." I pannelli popup del riproduttore automatico sono abilitati. I pannelli popup del riproduttore automatico sono disabilitati. Disabilita i pannelli popup del riproduttore - "L'interruttore automatico delle playlist miste è abilitato quando la riproduzione automatica è attivato. + "L'interruttore automatico delle playlist miste è abilitato quando la riproduzione automatica è attivata. -La riproduzione automatica può essere modificato nelle impostazioni di YouTube: -Impostazioni → riproduzione automatica→ riproduzione automatica video successivo" +La riproduzione automatica può essere modificata nelle impostazioni di YouTube: +Impostazioni → Riproduzione automatica→ Riproduci automatic. video successivo" L\'interruttore automatico delle playlist miste è disabilitato. Disabilita interruttori delle playlist miste - Abilitando questa funzionalità si disabiliterà l\'interruttore automatico a YouTube Misto quando si riproduce musica mentre la riproduzione automatica è attivata. + L\'attivazione di questa funzione disabilita il passaggio automatico a YouTube Mix durante la riproduzione di musica con la riproduzione automatica attiva. La velocità di riproduzione predefinita nei video dal vivo è attivata La velocità di riproduzione predefinita nei video dal vivo è disattivata Disattiva la velocità di riproduzione predefinita nei video dal vivo @@ -208,6 +208,13 @@ Nota: • Tocca per scorrere. • Tocca e tieni premuto per selezionare il testo." Disabilita l\'interazione della descrizione video + Codec VP9 è abilitato. + "Il codec VP9 è disabilitato. + +• La risoluzione massima è 1080p. +• La riproduzione video utilizzerà più dati internet di VP9. +• Per ottenere la riproduzione HDR, il video HDR utilizza ancora il codec VP9." + Disabilita codec VP9 La barra di avanzamento Cairo e disabilitata. "La barra di avanzamento Cairo è abilitata. @@ -445,6 +452,9 @@ Negozio" Il chip espandibile è visibile. Il chip espandibile è nascosto. Nascondi il chip espandibile sotto i video + Gli scaffali espandibili sono mostrati. + Gli scaffali espandibili sono nascosti. + Nascondi scaffali espandibili Il pulsante Sottotitoli è mostrato. Il pulsante Sottotitoli è nascosto. Nascondi il pulsante dei sottotitoli nel feed @@ -468,8 +478,6 @@ Negozio" La sezione Per Te è visibile. La sezione Per Te è nascosta. Nascondi la sezione Per Te - Gli annunci a schermo intero sono stati bloccati. (DialogType: %s) - Gli annunci a schermo intero sono stati chiusi. Gli annunci a schermo intero sono visibili. Gli annunci a schermo intero sono nascosti. Nascondi gli annunci a schermo intero @@ -518,12 +526,11 @@ Limitazioni: - Alcuni componenti della interfaccia utente potrebbero non essere nascosti. - La ricerca di una parola chiave potrebbe non mostrare alcun risultato." Informazioni sul filtro per parole chiave - Circondare una parola chiave/frase con doppie virgolette impedirà partite parziali di titoli video e nomi di canale.<br><br>Ad esempio,<br><b>\"ai\"</b> nasconderà il video: <b>Come funziona l\'intelligenza artificiale?</b><br>ma non si nasconde: <b>Cosa significa un uso equo?</b> + Circondando una parola/frase chiave con doppi apici si impedirà corrispondenze parziali di titoli di video e nomi di canali.<br><br>Ad esempio,<br><b>\"ia\"</b> nasconderà il video: <b>Come funziona la IA?</b><br>ma non nasconderà: <b>Cosa significa imparzialità?</b> Abbina parole intere I commenti non sono filtrati. I commenti sono filtrati. Nascondi commenti per parole chiave - Ricerca la parola completa I video della scheda Home non sono filtrati per parole chiave. I video della scheda Home sono filtrati tramite parole chiave. Nascondi i video della scheda Home per parole chiave @@ -612,7 +619,7 @@ Parole con lettere maiuscole all'interno devono essere inserite con il maiuscolo Il pulsante Comprimi è mostrato. Il pulsante Comprimi è nascosto. Nascondi il pulsante Comprimi - Il menu Modalità Ambient è mostrato. + Il menu Modalità Ambient è visibile. Il menu Modalità Ambient è nascosto. Nascondi il menu Modalità Ambient Il menu Traccia audio è visibile. @@ -657,13 +664,13 @@ Parole con lettere maiuscole all'interno devono essere inserite con il maiuscolo Il menu Segnala è visibile. Il menu Segnala è nascosto. Nascondi il menu Segnala - Il menu del timer del sonno è mostrato. + Il menu del timer del sonno è visibile. Il menu del timer del sonno è nascosto. Nascondi il menu Timer del sonno Il menu Volume stabile è visibile. Il menu Volume stabile è nascosto. Nascondi il menu Volume stabile - Il menu Statistiche per Nerd è mostrato. + Il menu Statistiche per Nerd è visibile. Il menu Statistiche per Nerd è nascosto. Nascondi il menu Statistiche per Nerd Il menu Guarda in VR è mostrato. @@ -926,7 +933,7 @@ Impostazioni → Riproduzione automatica → Riproduzione automatica del video s Le reazioni temporizzate sono visibili Le reazioni temporizzate sono nascoste Nascondi le reazioni temporizzate - Il pulsante Trasmetti è mostrato. + Il pulsante Trasmetti è visibile. Il pulsante Trasmetti è nascosto. Nascondi il pulsante Trasmetti Il pulsante Crea è visibile. @@ -1371,6 +1378,7 @@ Limitazione: Non mi piace possono non apparire se l'utente non è registrato o i Ripristinare il contatore dei segmenti saltati? È <b>%s</b>. Hai creato <b>%s</b> segmenti + Tocca qui per vedere i tuoi segmenti. Il tuo nome utente: <b>%s</b> Tocca qui per cambiare il tuo nome utente Impossibile modificare il nome utente: Stato: %1$d %2$s. @@ -1462,7 +1470,7 @@ Se disattivata in seguito, si consiglia di cancellare i dati dell'app per evitar AVC (H. 264) ha una risoluzione massima di 1080p e la riproduzione video utilizzerà più dati internet rispetto a VP9 o AV1." • il menu traccia audio è mancante. • il menu traccia audio è mancante. - • I film o i video a pagamento potrebbero non essere riprodotti. + "• I film o i video a pagamento potrebbero non essere riprodotti." Effetti collaterali del camuffamento • Il video potrebbe non essere riprodotto. Il client utilizzato per recuperare i dati di streaming è nascosto nelle statistiche per nerd. @@ -1497,7 +1505,16 @@ AVC (H. 264) ha una risoluzione massima di 1080p e la riproduzione video utilizz • Potrebbe essere necessario riavviare il dispositivo per rendere effettiva la modifica di questa impostazione. • Disabilitare questa impostazione carica più annunci dal lato server. • Dovresti disabilitare questa impostazione per rendere visibili gli annunci nei video." + Il pulsante Crea non è scambiato con il pulsante Notifiche. + "Il pulsante Crea è scambiato con il pulsante Notifiche. + +Nota: Abilitando questo nasconde forzatamente anche gli annunci video." Scambia il pulsante Crea con il pulsante notifiche + "Disabilitare questo potrebbe caricare più annunci dal server. + +Inoltre, gli annunci non saranno più bloccati negli Shorts. + +Se questa impostazione non ha effetto, prova a passare alla modalità Incognito." Inventario • La cronologia non funziona. "• Segue le impostazioni di cronologia dell'account Google. diff --git a/src/main/resources/youtube/translations/ja-rJP/missing_strings.xml b/src/main/resources/youtube/translations/ja-rJP/missing_strings.xml index 62688cae7..d22a1f7f3 100644 --- a/src/main/resources/youtube/translations/ja-rJP/missing_strings.xml +++ b/src/main/resources/youtube/translations/ja-rJP/missing_strings.xml @@ -1,5 +1,18 @@ - Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. - Long press video downloader package name + "Home / Subscription / Search results are filtered to hide videos with views less or greater than a specified number. + +Limitations: +• Shorts cannot be hidden. +• Videos with 0 views are not filtered." + About view count filtering + Videos in home feed are not filtered. + Videos in home feed are filtered. + Hide home videos by views + Search results are not filtered. + Search results are filtered. + Hide search results by views + Videos in subscriptions feed are not filtered. + Videos in subscriptions feed are filtered. + Hide subscription videos by views diff --git a/src/main/resources/youtube/translations/ja-rJP/strings.xml b/src/main/resources/youtube/translations/ja-rJP/strings.xml index c4857b398..d60f31915 100644 --- a/src/main/resources/youtube/translations/ja-rJP/strings.xml +++ b/src/main/resources/youtube/translations/ja-rJP/strings.xml @@ -203,6 +203,19 @@ DeArrowの詳細については、ここをタップしてください。" 概要欄の操作を無効化 + VP9 コーデックを無効化します。 + +注意: \n +• 最大解像度は 1080p です。 +• 動画を再生する際には VP9 コーデックよりも多くの通信量を消費します。 +• HDR 再生を可能にするために、HDR 動画では引き続き VP9 コーデックが使用されます。 + "VP9 コーデックを無効化します。 + +注意: +• 最大解像度は 1080p です。 +• 動画を再生する際には VP9 コーデックよりも多くの通信量を消費します。 +• HDR 再生を可能にするために、HDR 動画では引き続き VP9 コーデックが使用されます。" + VP9 コーデックを無効化 Cairo シークバー (シークバーの色が動画に応じて変更される機能) を有効化します。\n\n注意: 通知ドットにも Cairo テーマが適用されるという副作用があります。 "Cairo シークバー (シークバーの色が動画に応じて変更される機能) を有効化します。 @@ -242,8 +255,8 @@ DeArrowの詳細については、ここをタップしてください。"OPUS コーデックを有効化 スマートフォン用レイアウトの一部を使用できるように、dpi を偽装します。 スマートフォン用のレイアウトを有効化 - 全画面表示を終了/開始した際に明るさを保存/復元します。 - 全画面表示を終了/開始した際に明るさを保存/復元します。 + 全画面表示を終了 / 開始した際に明るさを保存/復元します。 + 全画面表示を終了 / 開始した際に明るさを保存/復元します。 明るさの保存と復元を有効化 シークバーのタップを有効化します。 シークバーのタップを有効化します。 @@ -327,10 +340,10 @@ DeArrowの詳細については、ここをタップしてください。"%s はインストールされていません。インストールしてください。 NewPipe や YTDLnis などの、インストールされている外部ダウンローダーアプリのパッケージ名です。 プレイリストの外部ダウンローダーのパッケージ名 - NewPipe や YTDLnis などの、インストールされている外部ダウンローダーアプリのパッケージ名です。 - 外部ダウンローダーのパッケージ名 長押し時に使用する NewPipe や YTDLnis などの、インストールされている外部ダウンローダーアプリのパッケージ名です。 長押し時の外部ダウンローダのパッケージ名 + NewPipe や YTDLnis などの、インストールされている外部ダウンローダーアプリのパッケージ名です。 + 外部ダウンローダーのパッケージ名 "以下の状況で全画面に切り替わります: • コメントのタイムスタンプをタップしたとき @@ -446,6 +459,9 @@ DeArrowの詳細については、ここをタップしてください。"検索結果の動画の下に表示される、展開可能なチップを非表示にします。 検索結果の動画の下に表示される、展開可能なチップを非表示にします。 展開可能なチップを非表示 + 検索結果に表示される、展開可能な棚を非表示にします。 + 検索結果に表示される、展開可能な棚を非表示にします。 + 展開可能な棚を非表示 フィードで字幕ボタンを非表示にします。 フィードで字幕ボタンを非表示にします。 字幕ボタンを非表示 @@ -469,8 +485,6 @@ DeArrowの詳細については、ここをタップしてください。"おすすめ欄を非表示にします。 おすすめ欄を非表示にします。 おすすめ欄を非表示 - 全画面広告をブロックしました。(ダイアログの種類: %s) - 全画面広告を閉じました。 アプリ起動時に表示される全画面広告を非表示にします。 アプリ起動時に表示される全画面広告を非表示にします。 全画面広告を非表示 @@ -523,7 +537,6 @@ DeArrowの詳細については、ここをタップしてください。"キーワードでコメントをフィルタリングします。 キーワードでコメントをフィルタリングします。 コメントをフィルタリング - 完全単語一致 キーワードでホームフィード内の動画をフィルタリングします。 キーワードでホームフィード内の動画をフィルタリングします。 ホームフィードをフィルタリング @@ -823,8 +836,8 @@ DeArrowの詳細については、ここをタップしてください。"一時停止中に表示されるオーバーレイボタンを非表示にします。 一時停止中に表示されるオーバーレイボタンを非表示にします。 一時停止中のオーバーレイボタンを非表示 - 再生/一時停止ボタンの背景を非表示にします。 - 再生/一時停止ボタンの背景を非表示にします。 + 再生 / 一時停止ボタンの背景を非表示にします。 + 再生 / 一時停止ボタンの背景を非表示にします。 ボタンの背景を非表示 「リミックス」ボタンを非表示にします。 「リミックス」ボタンを非表示にします。 @@ -1049,7 +1062,7 @@ DeArrowの詳細については、ここをタップしてください。"通常 プレーヤー下部(共有、クリップなど)のボタン その他の設定 - アニメーション/フィードバック + アニメーション / フィードバック 再生時間フィルター 実験的な機能 画像表示の地域制限 @@ -1365,6 +1378,7 @@ DeArrowの詳細については、ここをタップしてください。"スキップしたセグメントの回数をリセットしますか? 合計 <b>%s</b> です。 今までに <b>%s</b> 個のセグメントを作成しました。 + セグメントを表示するにはここをタップしてください。 あなたのユーザー名: <b>%s</b> ここをタップしてユーザー名を変更 ユーザー名を変更できませんでした。 ステータス: %1$d %2$s @@ -1455,7 +1469,7 @@ DeArrowの詳細については、ここをタップしてください。" ・「音声トラック」メニューは表示されません。 ・「音声トラック」メニューは表示されません。 - • 映画や有料動画は再生できない場合があります。 + "• 映画や有料動画は再生できない場合があります。" ストリーミングデータを偽装することによる副作用 • 動画が再生できない可能性があります。 統計情報に偽装したストリーミングデータを表示します。 @@ -1489,7 +1503,16 @@ DeArrowの詳細については、ここをタップしてください。" + 「作成」ボタンと「通知」ボタンを入れ替えます。\n\n注意: これを有効にすると、動画広告が強制的に非表示になります。 + "「作成」ボタンと「通知」ボタンを入れ替えます。 + +注意: これを有効にすると、動画広告が強制的に非表示になります。" 「作成」を「通知」と入れ替え + "これを無効にすると、サーバーからさらに多くの広告が読み込まれる可能性があります。 + +また、ショートで広告がブロックされなくなります。 + +この設定が有効にならない場合は、シークレットモードに切り替えてみてください。" オリジナル • 再生履歴をブロックします。 "• Google アカウントの再生履歴の設定に従います。 diff --git a/src/main/resources/youtube/translations/ko-rKR/missing_strings.xml b/src/main/resources/youtube/translations/ko-rKR/missing_strings.xml index dcf3889e8..86a5413fd 100644 --- a/src/main/resources/youtube/translations/ko-rKR/missing_strings.xml +++ b/src/main/resources/youtube/translations/ko-rKR/missing_strings.xml @@ -2,5 +2,11 @@ Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. Long press video downloader package name + "Home / Subscription / Search results are filtered to hide videos with views less or greater than a specified number. + +Limitations: +• Shorts cannot be hidden. +• Videos with 0 views are not filtered." + About view count filtering Xisr Yellow diff --git a/src/main/resources/youtube/translations/ko-rKR/strings.xml b/src/main/resources/youtube/translations/ko-rKR/strings.xml index ed7b0fee3..67ea04e2e 100644 --- a/src/main/resources/youtube/translations/ko-rKR/strings.xml +++ b/src/main/resources/youtube/translations/ko-rKR/strings.xml @@ -187,8 +187,8 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요." 앱을 시작할 때, Shorts 플레이어를 다시 실행합니다. 앱을 시작할 때, Shorts 플레이어를 다시 실행하지 않습니다. 앱을 시작할 때, Shorts 플레이어 비활성화하기 - 다음 롤링 넘버 애니메이션을 활성화합니다.\n• 조회수, 시청자 수 롤링 애니메이션 (플레이어 하단)\n• 좋아요 개수, 조회수 롤링 애니메이션 (동영상 설명) - 다음 롤링 넘버 애니메이션을 비활성화합니다.\n• 조회수, 시청자 수 롤링 애니메이션 (플레이어 하단)\n• 좋아요 개수, 조회수 롤링 애니메이션 (동영상 설명) + 다음 롤링 넘버 애니메이션을 활성화합니다.\n• 조회수, 시청자 수 롤링 애니메이션 (플레이어 하단)\n• 좋아요 수, 조회수 롤링 애니메이션 (동영상 설명) + 다음 롤링 넘버 애니메이션을 비활성화합니다.\n• 조회수, 시청자 수 롤링 애니메이션 (플레이어 하단)\n• 좋아요 수, 조회수 롤링 애니메이션 (동영상 설명) 롤링 넘버 애니메이션 비활성화하기 "화면을 길게 눌러서 '2배속 >>'을 비활성화합니다. @@ -204,6 +204,14 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요." • 눌러서 스크롤하기 • 길게 눌러서 텍스트 선택하기" 동영상 설명 상호 작용 비활성화하기 + VP9 코덱을 활성화합니다.\n\n• 예전에 업로드된 동영상에서 일부 화질 값들(480p+)이 누락되어 있거나 화질 메뉴를 선택할 수 없을 수 있습니다. + "VP9 코덱을 비활성화합니다. + +• 일부 동영상에서 누락되었던 화질 값들(480p+)이 표시될 수 있습이다. +• 최대 화질 값은 1080p으므로 초고화질 동영상을 재생할 수 없습니다. +• 동영상을 재생하면 VP9보다 더 많은 인터넷 데이터를 사용합니다. +• HDR 동영상을 재생할 수 없습니다." + VP9 코덱 비활성화하기 Cairo 재생바를 비활성화합니다.\n• 그라데이션 색상 재생바 "Cairo 재생바를 활성화합니다. • 그라데이션 색상 재생바 @@ -276,7 +284,7 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요." 스와이프 제스처로 볼륨 조절을 비활성화합니다. 스와이프 제스처로 볼륨 조절을 활성화합니다. 스와이프 제스처로 볼륨 조절 활성화하기 - dpi를 변경하여 일부 레이아웃을 태블릿 레이아웃으로 활성화합니다.\n\n이 설정을 활성화하면 다음 RVX 설정이 잠겨질 수 있습니다:\n• 최신 동영상 버튼 숨기기\n• 믹스 재생목록 숨기기\n• 커뮤니티 게시물 설정\n• 전체 화면의 일부 설정 (빠른 작업) + dpi를 변경하여 일부 레이아웃을 태블릿 레이아웃으로 활성화합니다.\n이 설정을 활성화하면 다음 RVX 설정이 잠겨질 수 있습니다:\n• 커뮤니티 게시물 숨기기\n• 믹스 재생목록 숨기기\n• 빠른 작업 컨테이너 숨기기\n• 최신 동영상 버튼 숨기기\n• 관련 동영상 오버레이 숨기기 태블릿 레이아웃 활성화하기 불투명 하단바를 활성화합니다. 반투명 하단바를 활성화합니다. @@ -448,9 +456,12 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요." 최종 화면 카드가 표시됩니다. 최종 화면 카드가 숨겨집니다. 최종 화면 카드 숨기기 - 다음 정보들이 표시됩니다:\n동영상 설명, 챕터, 주요 순간, 스크립트,\n재생목록의 동영상, 이 동영상에 나온 제품 ... - 다음 정보들이 숨겨집니다:\n동영상 설명, 챕터, 주요 순간, 스크립트,\n재생목록의 동영상, 이 동영상에 나온 제품 ... - 썸네일 하단에서 동영상 관련 정보 숨기기 + 썸네일 하단에서 다음 정보들이 표시됩니다:\n동영상 설명, 챕터, 주요 순간, 스크립트,\n재생목록의 동영상, 이 동영상에 나온 제품 ... + 썸네일 하단에서 다음 정보들이 숨겨집니다:\n동영상 설명, 챕터, 주요 순간, 스크립트,\n재생목록의 동영상, 이 동영상에 나온 제품 ... + 펼칠 수 있는 정보 숨기기 + 펼칠 수 있는 선반이 표시됩니다. + 펼칠 수 있는 선반이 숨겨집니다. + 펼칠 수 있는 선반 숨기기 자막 버튼이 표시됩니다. 자막 버튼이 숨겨집니다. 피드 자막 버튼 숨기기 @@ -475,8 +486,6 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요." 추천 선반이 표시됩니다. 추천 선반이 숨겨집니다. 추천 선반 숨기기 - 전체 화면 광고가 차단되었습니다. (다이얼로그 타입: %s) - 전체 화면 광고가 닫혔습니다. 전체 화면 광고가 표시됩니다. 전체 화면 광고가 숨겨집니다. 전체 화면 광고 숨기기 @@ -488,9 +497,9 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요." 일반 레이아웃 광고가 표시됩니다. 일반 레이아웃 광고가 숨겨집니다. 일반 레이아웃 광고 숨기기 - YouTube Premium 광고가 표시됩니다. + YouTube Premium 프로모션이 표시됩니다. YouTube Premium 광고가 숨겨집니다. - YouTube Premium 광고 숨기기 + YouTube Premium 프로모션 숨기기 동영상들 사이에서 회색 구분선이 표시됩니다. 동영상들 사이에서 회색 구분선이 숨겨집니다. 회색 구분선 숨기기 @@ -530,7 +539,6 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요." 댓글 섹션에서 키워드 필터를 비활성화합니다. 댓글 섹션에서 키워드 필터를 활성화합니다. 댓글 섹션에서 키워드 필터 활성화하기 - 전체 단어와 일치시키기 홈 피드에서 키워드 필터를 비활성화합니다. 홈 피드에서 키워드 필터를 활성화합니다. 홈 피드에서 키워드 필터 활성화하기 @@ -961,6 +969,15 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요." 재생시간이 짧은 동영상 숨기기 재생시간이 짧거나 긴 동영상을 숨길 수 있습니다.\n\n알려진 문제점: 관련 동영상에서는 동영상이 숨겨지지 않고, 타임스탬프만 숨겨집니다. 재생시간을 기준으로 동영상 숨기기 + 홈 피드 동영상이 필터링되지 않습니다. + 홈 피드 동영상이 필터링됩니다. + 조회수로 홈 피드 동영상 숨기기 + 검색 결과가 필터링되지 않습니다. + 검색 결과가 필터링됩니다. + 조회수로 검색 결과 숨기기 + 구독 피드 동영상이 필터링되지 않습니다. + 구독 피드 동영상이 필터링됩니다. + 조회수로 구독 피드 동영상 숨기기 조회수가 높거나 낮은 추천 동영상을 숨길 수 있습니다.\n\n알려진 문제점: 실시간 스트림과 \'조회수 없음\' 동영상은 숨겨지지 않습니다. 조회수를 기준으로 동영상 숨기기 입력한 숫자보다 높은 조회수를 가진 동영상을 숨길 수 있습니다. @@ -968,7 +985,7 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요." 입력한 숫자보다 낮은 조회수를 가진 동영상을 숨길 수 있습니다. 조회수가 낮은 동영상 숨기기 천회 -> 1000\n만회 -> 10000\n억회 -> 100000000\n조회수 -> views - 레이아웃에서 표시되는 동영상의 조회수에 대한 언어 템플릿을 설정할 수 있습니다. \n• \'키(해당 언어의 문자/단어) -> 값(키의 의미)\'은 줄바꿈으로 구분하여 설정해야 하고, 키는 \'->\' 기호 앞에 와야 합니다. \n• 편집창은 \'하나의 언어에 대한 키만 입력\' & \'앞에는 숫자 관련 키, 마지막에는 조회수 단어 키 순으로 입력\' 해야 합니다. \n• 앱 언어 또는 시스템 언어를 변경하는 경우 이 설정을 다시 설정해야 합니다.\n\n예시) 한국어: 조회수 10만회 = 만회 -> 10000, 조회수 -> views\n영어: 10K views = K -> 1000, views -> views + 레이아웃에서 표시되는 동영상의 조회수에 대한 언어 템플릿을 설정할 수 있습니다. \n• \'키(해당 언어의 문자/단어) -> 값(키의 의미)\'은 줄바꿈으로 구분하여 설정해야 하고, 키는 \'->\' 기호 앞에 와야 합니다. \n• 편집창은 \'하나의 언어에 대한 키만 입력\' & \'앞에는 숫자 관련 키, 마지막에는 조회수 단어 키 순으로 입력\' 해야 합니다. \n• 앱 언어 또는 시스템 언어를 변경하는 경우 이 설정을 다시 설정해야 합니다.\n예) 한국어: 조회수 10만회 = 만회 -> 10000, 조회수 -> views\n영어: 10K views = K -> 1000, views -> views 조회수 키 플레이어에서 제품 보기 배너가 표시됩니다. 플레이어에서 제품 보기 배너가 숨겨집니다. @@ -1190,28 +1207,28 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요." 이전 동영상 화질 설정 메뉴를 활성화합니다. 이전 동영상 화질 설정 메뉴 활성화하기 정보 - 싫어요 개수의 데이터는 Return YouTube Dislike API에 의해 제공됩니다. 자세한 내용을 보려면 여기를 누르세요. + 싫어요 수의 데이터는 Return YouTube Dislike API에 의해 제공됩니다. 자세한 내용을 보려면 여기를 누르세요. ReturnYouTubeDislike.com 좋아요 버튼에서 구분선을 표시합니다. 좋아요 버튼에서 구분선을 표시하지 않습니다. 좋아요 버튼에서 구분선 숨기기 - 싫어요 개수를 숫자로 표시합니다. - 싫어요 개수를 퍼센트로 표시합니다. - 싫어요 개수를 퍼센트로 표시하기 - 싫어요 개수를 표시하지 않습니다. - 싫어요 개수를 표시합니다. + 싫어요 수를 숫자로 표시합니다. + 싫어요 수를 퍼센트로 표시합니다. + 싫어요 수를 퍼센트로 표시하기 + 싫어요 수를 표시하지 않습니다. + 싫어요 수를 표시합니다. Return YouTube Dislike 활성화하기 - 싫어요 개수를 표시할 수 없습니다 (클라이언트 API 제한 도달). - 싫어요 개수를 표시할 수 없습니다 (상태 코드: %d). - 싫어요 개수를 일시적으로 표시할 수 없습니다 (응답 시간 초과). - 싫어요 개수를 표시할 수 없습니다 (%s). + 싫어요 수를 표시할 수 없습니다 (클라이언트 API 제한 도달). + 싫어요 수를 표시할 수 없습니다 (상태 코드: %d). + 싫어요 수를 일시적으로 표시할 수 없습니다 (응답 시간 초과). + 싫어요 수를 표시할 수 없습니다 (%s). Return YouTube Dislike를 사용하여 투표하려면 동영상을 다시 로드하세요. - Shorts에서 싫어요 개수를 표시하지 않습니다. - Shorts에서 싫어요 개수를 표시합니다. - "Shorts에서 싫어요 개수를 표시합니다. + Shorts에서 싫어요 수를 표시하지 않습니다. + Shorts에서 싫어요 수를 표시합니다. + "Shorts에서 싫어요 수를 표시합니다. -알려진 문제점: 사용자가 로그인을 하지 않았거나 시크릿 모드에서는 싫어요 개수가 표시되지 않을 수 있습니다." - Shorts에서 싫어요 개수 표시하기 +알려진 문제점: 사용자가 로그인을 하지 않았거나 시크릿 모드에서는 싫어요 수가 표시되지 않을 수 있습니다." + Shorts에서 싫어요 수 표시하기 ReturnYouTubeDislike를 사용할 수 없을 때, 팝업 메시지를 표시하지 않습니다. ReturnYouTubeDislike를 사용할 수 없을 때, 팝업 메시지를 표시합니다. API를 사용할 수 없을 때, 팝업 메시지 표시하기 @@ -1380,6 +1397,7 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요." 건너뛴 횟수 기록을 초기화하시겠습니까? 이는 <b>%s</b>에 해당됩니다. 제출 횟수: <b>%s</b> + 구간을 보려면 여기를 누르세요. 사용자 이름: <b>%s</b> 사용자 이름을 변경하려면 여기를 누르세요. 사용자 이름을 변경할 수 없습니다. 상태 코드: %1$d %2$s @@ -1458,15 +1476,15 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요." "기기 크기 정보를 최대값으로 변경합니다. 높은 기기 크기 정보가 필요한 일부 동영상에서는 고화질 동영상 값이 잠금 해제될 수 있지만 모든 동영상에는 적용되지 않습니다." 기기 크기 정보 변경하기 - iOS 동영상 코덱을 AVC (H.264), VP9 또는 AV1으로 활성화합니다.\n\n• 예전에 업로드된 동영상을 재생했는데 VP9 코덱 응답을 받았을 경우, 일부 화질 값들이 누락되어 있거나 화질 메뉴를 선택할 수 없을 수 있습니다. - iOS 동영상 코덱을 AVC (H.264)로 활성화합니다.\n\n• \'일부 VP9 코덱 동영상에서 누락되었던 화질 값들\'이 표시될 수 있습니다.\n• 최대 화질 값이 1080p이므로 초고화질 동영상을 재생할 수 없습니다.\n• HDR 동영상을 재생할 수 없습니다. + iOS 동영상 코덱을 AVC (H.264), VP9 또는 AV1으로 활성화합니다.\n\n• 예전에 업로드된 동영상을 재생했는데 VP9 코덱 응답을 받았을 경우, 일부 화질 값들(480p+)이 누락되어 있거나 화질 메뉴를 선택할 수 없을 수 있습니다. + iOS 동영상 코덱을 AVC (H.264)로 활성화합니다.\n\n• 일부 VP9 코덱 동영상에서 누락되었던 화질 값들(480p+)이 표시될 수 있습니다.\n• 최대 화질 값이 1080p이므로 초고화질 동영상을 재생할 수 없습니다.\n• HDR 동영상을 재생할 수 없습니다. iOS AVC (H.264) 강제로 활성화하기 "이 설정을 활성화하면 배터리 수명이 향상되고 재생 끊김 현상이 해결될 수 있습니다. AVC (H.264)의 최대 화질 값은 1080p이며 동영상을 재생하면 VP9 또는 AV1보다 더 많은 인터넷 데이터가 사용됩니다." - • 오디오 트랙 메뉴가 표시되지 않습니다. - • 오디오 트랙 메뉴가 표시되지 않습니다. - • 영화 또는 유료 동영상이 재생되지 않을 수 있습니다. + • 오디오 트랙 메뉴가 표시되지 않습니다.\n• 안정적인 볼륨 메뉴가 비활성화된 채로 잠겨있습니다. + • 오디오 트랙 메뉴가 표시되지 않습니다.\n• 안정적인 볼륨 메뉴가 비활성화된 채로 잠겨있습니다. + "• 영화 또는 유료 동영상이 재생되지 않을 수 있습니다.\n• 되감기가 가능한 실시간 스트림이 라이브 중인 시점이 아닌 처음부터 재생될 수 있습니다." 알려진 문제점 • 동영상이 재생되지 않을 수 있습니다. \'스트리밍 데이터를 가져오는 데 사용되는 클라이언트\'가 전문 통계에서 숨겨집니다. @@ -1501,7 +1519,16 @@ AVC (H.264)의 최대 화질 값은 1080p이며 동영상을 재생하면 VP9 • 이 설정을 비활성화하면 서버에서 광고 필터에 등록되지 않은 광고(Shorts 광고)가 로드됩니다. • 이 설정을 활성화하면 일부 광고가 강제로 숨겨집니다. (동영상 광고, 일반 레이아웃 광고) • 광고 설정에 있는 일부 설정들을 비활성화하려면 이 설정도 비활성화해야 합니다." + 만들기 버튼과 알림 버튼의 위치를 교환하지 않습니다. + "만들기 버튼과 알림 버튼의 위치를 교환합니다. + +알림: 이 설정을 활성화하면 동영상 광고도 강제로 숨겨집니다." 만들기 버튼과 알림 버튼 위치 교환하기 + "이 설정을 비활성화하면 서버에서 더 많은 광고가 로드될 수 있습니다. + +또한 Shorts에서 광고가 더 이상 차단되지 않습니다. + +이 설정이 적용되지 않는 경우에는 시크릿 모드로 전환해 보세요." YouTube • 시청 기록이 차단됩니다. "• Google 계정의 시청 기록 설정을 따릅니다. diff --git a/src/main/resources/youtube/translations/pl-rPL/missing_strings.xml b/src/main/resources/youtube/translations/pl-rPL/missing_strings.xml new file mode 100644 index 000000000..d22a1f7f3 --- /dev/null +++ b/src/main/resources/youtube/translations/pl-rPL/missing_strings.xml @@ -0,0 +1,18 @@ + + + "Home / Subscription / Search results are filtered to hide videos with views less or greater than a specified number. + +Limitations: +• Shorts cannot be hidden. +• Videos with 0 views are not filtered." + About view count filtering + Videos in home feed are not filtered. + Videos in home feed are filtered. + Hide home videos by views + Search results are not filtered. + Search results are filtered. + Hide search results by views + Videos in subscriptions feed are not filtered. + Videos in subscriptions feed are filtered. + Hide subscription videos by views + diff --git a/src/main/resources/youtube/translations/pl-rPL/strings.xml b/src/main/resources/youtube/translations/pl-rPL/strings.xml index 9e6762259..7ce8d1584 100644 --- a/src/main/resources/youtube/translations/pl-rPL/strings.xml +++ b/src/main/resources/youtube/translations/pl-rPL/strings.xml @@ -202,6 +202,13 @@ Notki: • Stuknij, by przewijać • Stuknij i przytrzymaj, by zaznaczyć tekst" Wyłącz interakcje z opisami filmów + Włączone + "Wyłączone + +• Maksymalną rozdzielczością filmów jest 1080p +• Odtwarzanie filmów wykorzystuje więcej danych internetowych niż VP9 +• Aby filmy w HDR się odtwarzały, będą one nadal używać kodeka VP9" + Wyłącz kodek VP9 Wyłączony "Włączony @@ -325,10 +332,10 @@ Pobierz %2$s ze strony internetowej." %s nie jest zainstalowany. Proszę go zainstalować. Nazwa pakietu zainstalowanej zewnętrznej aplikacji od pobierania, takiej jak YTDLnis. Nazwa pakietu aplikacji od pobierania (playlisty) - Nazwa pakietu zainstalowanej zewnętrznej aplikacji od pobierania, takiej jak NewPipe lub YTDLnis. - Nazwa pakietu aplikacji od pobierania (filmy) Nazwa pakietu zainstalowanej zewnętrznej aplikacji od pobierania, takiej jak NewPipe lub YTDLnis przy długim przytrzymaniu. Nazwa pakietu aplikacji od pobierania (filmy) przy długim przytrzymaniu + Nazwa pakietu zainstalowanej zewnętrznej aplikacji od pobierania, takiej jak NewPipe lub YTDLnis. + Nazwa pakietu aplikacji od pobierania (filmy) "Filmy zostaną przełączone w tryb pełnoekranowy w następujących sytuacjach: • Po rozpoczęciu filmu @@ -444,6 +451,9 @@ Sklep" Widoczne Ukryte Produkty i rozdziały pod filmami + Widoczne + Ukryte + Rozszeralne półki Widoczny Ukryty Przycisk od napisów na stronie głównej @@ -467,8 +477,6 @@ Sklep" Widoczna Ukryta Półka \'Dla Ciebie\' - Zablokowano reklamy pełnoekranowe. (Typ okna: %s) - Zamknięto reklamy pełnoekranowe. Widoczne Ukryte Pełnoekranowe reklamy @@ -522,7 +530,6 @@ Ograniczenia: Wyłączone Włączone W komentarzach - Dopasuj pełne słowo Wyłączone Włączone Na stronie głównej @@ -860,7 +867,7 @@ Ograniczenie: Nagłówki z tytułami będą ukryte w wynikach wyszukiwania."Przycisk do sklepu Widoczny Ukryty - Przycisk od sklepu + Przycisk od kupowania Widoczny Ukryty Przycisk do dźwięku @@ -1369,6 +1376,7 @@ Ograniczenie: Liczba łapek w dół może nie być widoczna, gdy użytkownik nie Czy chcesz zresetować ilość pominiętych segmentów? To <b>%s</b> Stworzyłeś <b>%s</b> segmentów + Kliknij, by zobaczyć swoje segmenty Twoja nazwa użytkownika: <b>%s</b> Stuknij tutaj, aby zmienić nazwę użytkownika Nie można zmienić nazwy użytkownika: Status: %1$d %2$s. @@ -1460,7 +1468,8 @@ Wysoka jakość może być odblokowana na niektórych filmach, które wymagają Kodek AVC (H.264) obsługuje maksymalnie rozdzielczość 1080p, a odtwarzanie filmów wykorzystuje więcej danych internetowych niż VP9 i AV1." • Brakuje menu od ścieżki dźwiękowej • Brakuje menu od ścieżki dźwiękowej - • Filmy kinowe lub płatne filmy mogą się nie odtwarzać + "• Filmy kinowe lub płatne filmy mogą się nie odtwarzać +• Transmisje na żywo rozpoczynają się od początku" Efekty uboczne oszukiwania • Filmy mogą się nie odtwarzać Ukryta @@ -1495,7 +1504,16 @@ Kodek AVC (H.264) obsługuje maksymalnie rozdzielczość 1080p, a odtwarzanie fi • Nawet jeśli zmienisz to ustawienie, może się nic nie zmienić dopóki nie zrestartujesz urządzenia. • Wyłączenie tego ustawienia powoduje zwiększenie ilości reklam. • Powinieneś wyłączyć to ustawienie jeśli chcesz, by reklamy w filmach były widoczne." + Nie zamienone + "Zamienione + +Notka: włączenie tej opcji wymusza ukrywanie reklam w filmach." Zamień przyciski przesyłania i powiadomień + "Wyłączenie tej opcji może spowodować załadowanie się większej ilości reklam z serwera. + +Dodatkowo, reklamy nie będą już blokowane w Shortsach. + +Jeśli opcja nie przynosi skutku, spróbuj przełączyć się na tryb incognito." Domyślny • Historia oglądania nie działa "• Stosuje się do ustawień historii oglądania konta Google diff --git a/src/main/resources/youtube/translations/pt-rBR/missing_strings.xml b/src/main/resources/youtube/translations/pt-rBR/missing_strings.xml index fe7a0397b..26b7e32ef 100644 --- a/src/main/resources/youtube/translations/pt-rBR/missing_strings.xml +++ b/src/main/resources/youtube/translations/pt-rBR/missing_strings.xml @@ -3,23 +3,25 @@ Don\'t show again Courses / Learning Playables - "Auto switch mix playlists is enabled when autoplay is turned on. - -Autoplay can be changed in YouTube settings: -Settings → Autoplay → Autoplay next video" - Auto switch mix playlists is disabled. - Disable switch mix playlists - Enabling this feature will disable automatic switching to YouTube Mix when playing music while autoplay is turned on. - Default playback speed is enabled for music. - "Default playback speed is disabled for music. - -Limitation: This setting may not apply to videos that do not include the 'Listen on YouTube Music' banner." - Disable playback speed for music Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. Long press video downloader package name Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore - Match full word + "Home / Subscription / Search results are filtered to hide videos with views less or greater than a specified number. + +Limitations: +• Shorts cannot be hidden. +• Videos with 0 views are not filtered." + About view count filtering + Videos in home feed are not filtered. + Videos in home feed are filtered. + Hide home videos by views + Search results are not filtered. + Search results are filtered. + Hide search results by views + Videos in subscriptions feed are not filtered. + Videos in subscriptions feed are filtered. + Hide subscription videos by views MMT Blue MMT Green MMT Yellow diff --git a/src/main/resources/youtube/translations/pt-rBR/strings.xml b/src/main/resources/youtube/translations/pt-rBR/strings.xml index 6d40c989f..cc2ad1991 100644 --- a/src/main/resources/youtube/translations/pt-rBR/strings.xml +++ b/src/main/resources/youtube/translations/pt-rBR/strings.xml @@ -134,9 +134,21 @@ Toque aqui para saber mais sobre o DeArrow." Os painéis popup do reprodutor automático estão desativados. Os painéis popup do reprodutor automático estão ativados. Desativar painéis popup do reprodutor + "A troca automática de playlists de mix está ativada quando a reprodução automática está ativada. + +A reprodução automática pode ser alterada nas configurações do YouTube: +Configurações → Reprodução automática → Reprodução automática do próximo vídeo" + A troca automática de playlists mix está desativada. + Desativar troca de playlists mix + Ativar este recurso irá desativar a mudança automática para o YouTube Mix quando a reprodução automática estiver ativada. A velocidade de reprodução padrão está ativada na transmissão ao vivo. A velocidade de reprodução padrão está desativada na transmissão ao vivo. Desativar a velocidade de reprodução na transmissão ao vivo + A velocidade de reprodução padrão está ativada para música. + "A velocidade de reprodução padrão é desabilitada para música. + +Limitação: esta configuração pode não se aplicar a vídeos que não incluem o banner 'Ouvir no YouTube Music'." + Desativar a velocidade de reprodução para música O painel de engajamento está ativado. O painel de engajamento está desativado. Desativar painel de engajamento @@ -189,6 +201,13 @@ Nota: • Toque para rolar. • Toque e segure para selecionar texto." Desativar interação com a descrição do vídeo + O codec VP9 está ativado. + "O codec VP9 está desativado. + +• A resolução máxima é 1080p. +• A reprodução de vídeos usará mais dados na internet do que VP9. +• Para fazer com que o HDR reproduza, o vídeo HDR ainda usa o codec VP9." + Desativar codec VP9 A barra de busca do Cairo está desativada. "A barra de busca do Cairo está ativada. @@ -426,6 +445,9 @@ Loja" Os chips expansíveis serão exibidos. Os chips expansíveis estão ocultos. Ocultar chip expansível nos vídeos + Os painéis expansíveis serão exibidos. + Os painéis expansíveis estão ocultos. + Ocultar painéis expansíveis O botão de legendas será exibido. O botão de legendas está oculto. Ocultar botão de legendas no feed @@ -449,8 +471,6 @@ Loja" O painel \'Para Você\' será exibido. O painel \'Para Você\' está oculto. Ocultar painel \'Para Você\' - Os anúncios em tela cheia foram bloqueados. (Tipo de diálogo: %s) - Os anúncios de tela cheia foram fechados. Os anúncios em tela cheia serão exibidos. Os anúncios em tela cheia estão ocultos. Ocultar anúncios em tela cheia @@ -546,7 +566,7 @@ Palavras com letras maiúsculas no meio devem ser inseridas com maiúsculas (ou Ocultar painel de mercadoria A playlist mix será exibida. A playlist mix está oculta. - Ocultar playlist mix + Ocultar playlists mix Os painéis de filmes serão exibidos. Os painéis de filmes estão ocultos. Ocultar painel de filmes @@ -1336,6 +1356,7 @@ Limitação: Dislikes pode não aparecer no modo incógnito." Redefinir o contador de segmentos pulados? Isso é <b>%s</b>. Você criou <b>%s</b> segmentos + Toque aqui para ver seus segmentos. Seu nome de usuário: <b>%s</b> Toque aqui para alterar seu nome de usuário Não foi possível alterar o nome de usuário: Status: %1$d %2$s. @@ -1426,7 +1447,7 @@ A alta qualidade pode ser desbloqueada em alguns vídeos que exigem dimensões e AVC (H. 64) tem uma resolução máxima de 1080p, e a reprodução de vídeo usará mais dados de internet do que VP9 ou AV1." • O menu de faixa de áudio está faltando. • O menu de faixa de áudio está faltando. - • Filmes ou vídeos pagos podem não reproduzir. + "• Filmes ou vídeos pagos podem não reproduzir." Efeitos colaterais da falsificação • O vídeo pode não reproduzir. O cliente usado para buscar dados de streaming está oculto em Estatísticas para nerds. @@ -1461,7 +1482,16 @@ AVC (H. 64) tem uma resolução máxima de 1080p, e a reprodução de vídeo usa • Mesmo que você altere esta configuração, ela poderá não entrar em vigor até que você reinicie o dispositivo. • Desativar esta configuração carrega mais anúncios do lado do servidor. • Você deve desativar esta configuração para tornar os anúncios em vídeo visíveis." + O botão criar não está alternado com o botão Notificações. + "O botão criar é alternado com o botão notificações. + +Nota: Ativar isso também oculta anúncios de vídeo à força." Alternar criar com notificações + "Desativar isso pode carregar mais anúncios do servidor. + +Além disso, os anúncios não serão mais bloqueados no Shorts. + +Se essa configuração não surtir efeito, tente alternar para o modo anônimo." Padrão • O histórico de exibição não funciona. "• Segue as configurações do histórico de exibição da conta do Google. diff --git a/src/main/resources/youtube/translations/ru-rRU/missing_strings.xml b/src/main/resources/youtube/translations/ru-rRU/missing_strings.xml index 6e2793cbe..0511088d7 100644 --- a/src/main/resources/youtube/translations/ru-rRU/missing_strings.xml +++ b/src/main/resources/youtube/translations/ru-rRU/missing_strings.xml @@ -2,6 +2,21 @@ Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. Long press video downloader package name + "Home / Subscription / Search results are filtered to hide videos with views less or greater than a specified number. + +Limitations: +• Shorts cannot be hidden. +• Videos with 0 views are not filtered." + About view count filtering + Videos in home feed are not filtered. + Videos in home feed are filtered. + Hide home videos by views + Search results are not filtered. + Search results are filtered. + Hide search results by views + Videos in subscriptions feed are not filtered. + Videos in subscriptions feed are filtered. + Hide subscription videos by views Xisr Yellow Adjust: Mark Start and End Time for segment Verify the Segment diff --git a/src/main/resources/youtube/translations/ru-rRU/strings.xml b/src/main/resources/youtube/translations/ru-rRU/strings.xml index f899db192..6d8e8dd34 100644 --- a/src/main/resources/youtube/translations/ru-rRU/strings.xml +++ b/src/main/resources/youtube/translations/ru-rRU/strings.xml @@ -206,6 +206,13 @@ • Нажать - прокрутка. • Нажать и удерживать - выбор текста." Взаимодействие с описанием видео + VP9 кодек включен. + "VP9 кодек отключен. + +• Максимальное разрешение 1080p. +• Воспроизведение видео будет использовать больше сетевых данных, чем с VP9. +• HDR воспроизведения нет, HDR видео все еще использует VP9 кодек." + VP9 кодек Тема Каир шкалы воспроизведения отключена. "Тема Каир шкалы воспроизведения включена. @@ -277,9 +284,9 @@ Управление громкостью жестом Подмена DPI для планшетного интерфейса. Планшетный интерфейс - Прозрачная панель навигации отключена. - Прозрачная панель навигации включена. - Прозрачная панель навигации + Полупрозрачность отключена. + Полупрозрачность включена. + Полупрозрачная панель навигации Переход в полноэкранный режим жестом вниз в нижней части плеера отключен. Переход в полноэкранный режим жестом вниз в нижней части плеера включен. Жест под плеером @@ -446,6 +453,9 @@ Shorts Расширенные эпизоды отображены. Расширенные эпизоды скрыты. Расширенные эпизоды под видео + Расширяемые секции отображены. + Расширяемые секции скрыты. + Расширяемые секции Кнопка \"Субтитры\" в ленте отображена. Кнопка \"Субтитры\" в ленте скрыта. Кнопка \"Субтитры\" в ленте @@ -469,8 +479,6 @@ Shorts Секции \"Для вас\" отображены. Секции \"Для вас\" скрыты. Секция \"Для вас\" - Реклама в полном экране была заблокирована. (Взаимодействие: %s) - Реклама в полном экране была закрыта. Полноэкранная реклама отображена. Полноэкранная реклама скрыта. Полноэкранная реклама @@ -526,7 +534,6 @@ Shorts Фильтр комментариев отключен. Фильтр комментариев включен. Фильтр комментариев - Только целые слова Фильтр видео в \"Главная\" отключен. Фильтр видео в \"Главная\" включен. Фильтр видео в \"Главная\" @@ -1381,6 +1388,7 @@ Shorts Сбросить счетчик пропущенных сегментов? Это <b>%s</b>. Вы создали <b>%s</b> сегментов + Нажмите здесь для просмотра Ваших сегментов. Ваше имя пользователя: <b>%s</b> Нажмите, чтобы изменить имя пользователя Невозможно изменить имя пользователя: Статус: %1$d %2$s. @@ -1474,7 +1482,7 @@ Shorts AVC (H.264) имеет максимальное разрешение 1080p, и будет использовать больше интернет данных, чем VP9 или AV1." • Меню \"Звуковая дорожка\" не доступно. • Меню \"Звуковая дорожка\" VR не доступно. - • Фильмы или платные видео могут не проигрываться. + "• Фильмы или платные видео могут не проигрываться." Эффекты от подмены • Видео может не воспроизводиться. Клиент, используемый для получения данных потока, скрыт в Статистике для сисадминов. @@ -1510,7 +1518,16 @@ AVC (H.264) имеет максимальное разрешение 1080p, и • Если подмена кнопки не происходит, перезагрузите устройство. • Отключение этого параметра загружает больше рекламы со стороны сервера. • Чтобы видеореклама была видна, следует отключить этот параметр." + Кнопки \"Создать\" и \"Уведомления\" не поменяны местами. + "Кнопки \"Создать\" и \"Уведомления\" поменяны местами. + +Примечание: Включение опции принудительно скрывает видеорекламу." Подмена кнопки \"Создать\" на \"Уведомления\" + "Отключение этого параметра может привести к загрузке большего количества рекламы с сервера. + +Кроме того, реклама больше не будет блокироваться в Shorts. + +Если эта настройка не вступила в силу, попробуйте перейти в режим инкогнито." По умолчанию • История просмотра не работает. "• Статус истории просмотров обычный. diff --git a/src/main/resources/youtube/translations/tr-rTR/missing_strings.xml b/src/main/resources/youtube/translations/tr-rTR/missing_strings.xml index ac7a03fe4..bf7c53888 100644 --- a/src/main/resources/youtube/translations/tr-rTR/missing_strings.xml +++ b/src/main/resources/youtube/translations/tr-rTR/missing_strings.xml @@ -18,33 +18,31 @@ Settings → Autoplay → Autoplay next video" Limitation: This setting may not apply to videos that do not include the 'Listen on YouTube Music' banner." Disable playback speed for music + VP9 codec is enabled. + "VP9 codec is disabled. + +• Maximum resolution is 1080p. +• Video playback will use more internet data than VP9. +• To get HDR playback, HDR video still uses the VP9 codec." + Disable VP9 codec Package name of your installed external downloader app, such as YTDLnis. - Playlist downloader package name Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. Long press video downloader package name Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore + Expandable shelves are shown. + Expandable shelves are hidden. + Hide expandable shelves Surrounding a keyword/phrase with double-quotes will prevent partial matches of video titles and channel names.<br><br>For example,<br><b>\"ai\"</b> will hide the video: <b>How does AI work?</b><br>but will not hide: <b>What does fair use mean?</b> Match whole words - Match full word Add quotes to use keyword: %s. Keyword has conflicting declarations: %s. Keyword is too short and requires quotes: %s. - Ambient mode menu is shown. - Ambient mode menu is hidden. - Hide Ambient mode menu - Sleep timer menu is shown. - Sleep timer menu is hidden. - Hide Sleep timer menu - Promotion alert banner is shown. - Promotion alert banner is hidden. - Hide promotion alert banner Disabled comments button or with label \"0\" is shown. Disabled comments button or with label \"0\" is hidden. Hide disabled comments button "Floating buttons like 'Use this sound' are shown in the Shorts channel tab." "Floating buttons like 'Use this sound' are hidden in the Shorts channel tab." - Hide floating button Location button is shown. Location button is hidden. Hide location button @@ -52,17 +50,27 @@ Limitation: This setting may not apply to videos that do not include the 'Listen Search suggestions button is hidden. Hide search suggestions button Shopping button is shown. - Shopping button is hidden. - Hide Shopping button - Trends button is shown. - Trends button is hidden. - Hide Trends button Use template button is shown. Use template button is hidden. Hide Use template button Use this sound button is shown. Use this sound button is hidden. Hide Use this sound button + "Home / Subscription / Search results are filtered to hide videos with views less or greater than a specified number. + +Limitations: +• Shorts cannot be hidden. +• Videos with 0 views are not filtered." + About view count filtering + Videos in home feed are not filtered. + Videos in home feed are filtered. + Hide home videos by views + Search results are not filtered. + Search results are filtered. + Hide search results by views + Videos in subscriptions feed are not filtered. + Videos in subscriptions feed are filtered. + Hide subscription videos by views MMT Blue MMT Green MMT Yellow @@ -72,10 +80,7 @@ Limitation: This setting may not apply to videos that do not include the 'Listen Xisr Yellow If shown, the native playlist download button opens the native in-app downloader. Native playlist download button is always shown, and in public playlists, it opens your external downloader. - Override playlist download button Native video download button opens the native in-app downloader. - Native video download button opens your external downloader. - Override video download button Spoof the streaming data to prevent playback issues. Spoof streaming data A toast will not be shown when changing the default playback speed. @@ -91,6 +96,7 @@ Limitation: This setting may not apply to videos that do not include the 'Listen Forward by Specified Time (Default: 150ms) Publish Created Segment Rewind by Specified Time (Default: 150ms) + Tap here to view your segments. iOS video codec is AVC (H.264), VP9, or AV1. iOS video codec is AVC (H.264). Force iOS AVC (H.264) @@ -99,7 +105,8 @@ Limitation: This setting may not apply to videos that do not include the 'Listen AVC (H.264) has a maximum resolution of 1080p, and video playback will use more internet data than VP9 or AV1." • Audio track menu is missing. • Audio track menu is missing. - • Movies or paid videos may not play. + "• Movies or paid videos may not play. +• Livestreams start from the beginning." Spoofing side effects • Video may not play. Client used to fetch streaming data is hidden in Stats for nerds. @@ -114,6 +121,15 @@ AVC (H.264) has a maximum resolution of 1080p, and video playback will use more iOS Default client Turning off this setting may cause video playback issues. + Create button is not switched with Notifications button. + "Create button is switched with Notifications button. + +Note: Enabling this also forcibly hides video ads." + "Disabling this might load more ads from the server. + +Also, ads will no longer be blocked in Shorts. + +If this setting do not take effect, try switching to Incognito mode." "• Follows the watch history settings of Google account. • Watch history may not work due to DNS or VPN." • Follows the watch history settings of Google account. diff --git a/src/main/resources/youtube/translations/tr-rTR/strings.xml b/src/main/resources/youtube/translations/tr-rTR/strings.xml index 61dfbc80c..3b5d4add2 100644 --- a/src/main/resources/youtube/translations/tr-rTR/strings.xml +++ b/src/main/resources/youtube/translations/tr-rTR/strings.xml @@ -302,6 +302,7 @@ Siz sekmesi→ Kanalı görüntüle→ Menü→ Ayarlar" Lütfen web sitesinden %2$s dosyasını indirin." Dikkat %s kurulmamış. Lütfen önce indiriniz. + Oynatma listesi indirici paket ismi Yüklü olan harici indirme uygulamanızın paket adı, örneğin NewPipe veya YTDLnis gibi. Video indirici paket adı "Aşağıdaki durumlarda video tam ekrana geçecektir: @@ -433,8 +434,6 @@ Mağaza" \'Sizin için\' rafları gizlenmiyor. \'Sizin için\' rafları gizleniyor. \'Sizin için\' rafını gizle - Tam ekran reklamlar engellendi. (İletişim Türü: %s) - Tam ekran reklamlar kapatıldı. Tam ekran reklamları görünür. Tam ekran reklamları gizli. Tam ekran reklamlarını gizle @@ -572,6 +571,9 @@ Ortasında büyük harf bulunan kelimeler büyük harfle birlikte girilmelidir ( Videoyu küçült butonu gösteriliyor Videoyu küçült butonu devre dışı. Sol üstteki videoyu küçültme butonunu gizle + Ambiyans modu menüsü görünür. + Ambiyans modu menüsü gizli. + Ambiyans mod menüsünü gizle \"Ses Parçası\" menüsü gösteriliyor. \"Ses Parçası\" menüsü gizleniyor. Ses parçası menüsünü gizle @@ -614,6 +616,9 @@ Ortasında büyük harf bulunan kelimeler büyük harfle birlikte girilmelidir ( \"Bildir\" butonu gösteriliyor. \"Bildir\" butonu gizleniyor. Rapor Menüsünü Sakla + Uyku zamanlayıcısı menüsü görünür. + Uyku zamanlayıcısı menüsü gizli. + Uyku zamanlayıcısı menüsünü gizle \"Sabit ses\" butonu gösteriliyor. \"Sabit ses\" butonu gizleniyor. \"Sabit ses\" butonunu gizle @@ -644,6 +649,9 @@ Ortasında büyük harf bulunan kelimeler büyük harfle birlikte girilmelidir ( Bu, yorum bölümünün boyutunu değiştirir, dolayısıyla yorum bölümünde canlı sohbet tekrarını açmak imkansızdır. Bu, yorum bölümünün boyutunu değiştirmez, dolayısıyla yorum bölümünde canlı sohbet tekrarını açmak mümkündür. Önizleme yorumu tipini gizle + Promosyon uyarı afişi gösteriliyor. + Promosyon uyarı afişi gizli. + Promosyon uyarı afişini gizle Yorumlar butonu gösteriliyor. Yorumlar butonu gizleniyor. \"Yorumlar\" butonunu gizle @@ -737,6 +745,7 @@ Altyazılar" \"Beğenme\" butonu gösteriliyor. \"Beğenme\" butonu gizleniyor. Beğenmeme butonunu gizle + Butonları gizle Video bağlantı etiketi gösteriliyor Video bağlantı etiketi gizlendi. Tüm video bağlantısı etiketini gizle @@ -795,6 +804,8 @@ Bilinen sorun: Arama sonuçlarındaki resmi başlıklar da gizlenebiliyor."Mağaza düğmesi görünür. Mağaza düğmesi gizli. Mağaza düğmesini gizle + Alışveriş butonu gizli. + Alışveriş butonunu gizle Ses düğmesi görünür. Ses düğmesi gizli. Ses düğmesini gizle @@ -813,6 +824,9 @@ Bilinen sorun: Arama sonuçlarındaki resmi başlıklar da gizlenebiliyor."Araç çubuğu gösteriliyor. Araç çubuğu gizli. Araç çubuğunu göster + Trend butonu görünür. + Trend butonu gizli. + Trends butonunu gizle Başlık görünür Başlık gizli Video başlığını gizle @@ -960,6 +974,9 @@ Geri almak için dokunun ve basılı tutun." \"Beyaz liste iletişim kutusunu açmak için dokunun. Beyaz liste ayarı iletişim kutusunu açmak için dokunun ve basılı tutun. Beyaz liste düğmesini göster + Oynatma listesi indirme butonunu geçersiz kıl + İndirme düğmesi harici indiricinizi açar. + Video indirme butonunu geçersiz kıl Hariç tutulan Dahil Normal diff --git a/src/main/resources/youtube/translations/uk-rUA/missing_strings.xml b/src/main/resources/youtube/translations/uk-rUA/missing_strings.xml index 62688cae7..d22a1f7f3 100644 --- a/src/main/resources/youtube/translations/uk-rUA/missing_strings.xml +++ b/src/main/resources/youtube/translations/uk-rUA/missing_strings.xml @@ -1,5 +1,18 @@ - Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. - Long press video downloader package name + "Home / Subscription / Search results are filtered to hide videos with views less or greater than a specified number. + +Limitations: +• Shorts cannot be hidden. +• Videos with 0 views are not filtered." + About view count filtering + Videos in home feed are not filtered. + Videos in home feed are filtered. + Hide home videos by views + Search results are not filtered. + Search results are filtered. + Hide search results by views + Videos in subscriptions feed are not filtered. + Videos in subscriptions feed are filtered. + Hide subscription videos by views diff --git a/src/main/resources/youtube/translations/uk-rUA/strings.xml b/src/main/resources/youtube/translations/uk-rUA/strings.xml index b6dba4655..fef40e440 100644 --- a/src/main/resources/youtube/translations/uk-rUA/strings.xml +++ b/src/main/resources/youtube/translations/uk-rUA/strings.xml @@ -196,6 +196,13 @@ • Натисніть, щоб прокрутити. • Натисніть і утримуйте, щоб вибрати текст." Вимкнути взаємодію з описом відео + Кодек VP9 увімкнено. + "Кодек VP9 вимкнено. + +• Максимальна роздільна здатність - 1080p. +• Відтворення відео використовуватиме більше інтернет даних ніж VP9. +• Щоб отримати відтворювання HDR, HDR відео використовує кодек VP9." + Вимкнути кодек VP9 Смугу прогресу Каїр вимкнено. "Смугу прогресу Каїр увімкнено. @@ -439,6 +446,9 @@ Розширювані фішки показується. Розширювані фішки приховано. Приховати розширювану фішку під відео + Висувні полиці показується. + Висувні полиці приховано. + Приховати висувні полиці Кнопку субтитрів показується. Кнопку субтитрів приховано. Приховати кнопку субтитрів в стрічці @@ -462,8 +472,6 @@ Полицю \'Для вас\' показується. Полицю \'Для вас\' приховано. Приховати полицю \'Для вас\' - Повноекранну рекламу заблоковано. (Тип діалогу: %s) - Повноекранну рекламу закрито. Повноекранну рекламу показується. Повноекранну рекламу приховано. Приховати повноекранну рекламу @@ -517,7 +525,6 @@ Коментарі не фільтрується. Коментарі фільтрується. Приховати коментарі за ключовими словами - Слово повністю збігається Відео у головній стрічці не фільтруються. Відео у головній стрічці фільтруються. Приховати відео на головній за ключовими словами. @@ -1367,6 +1374,7 @@ Скинути лічильник пропущених сегментів? Це <b>%s</b>. Ви створили <b>%s</b> сегментів + Натисніть тут для перегляду Ваших сегментів. Ваше ім\'я користувача: <b>%s</b> Натисніть тут, щоб змінити ім\'я користувача Не вдалося змінити ім\'я користувача: Статус: %1$d %2$s @@ -1457,7 +1465,8 @@ AVC (H.264) має максимальну роздільну здатність 1080p, а для відтворення відео використовується більше інтернет-даних, ніж VP9 або AV1." • Меню звукової доріжки відсутнє. • Меню звукової доріжки відсутнє. - • Фільми чи платні відео можуть не відтворюватися. + "• Фільми чи платні відео можуть не відтворюватися. +• Прямі трансляції починаються з початку." Побічні ефекти імітування • Відео може не відтворюватися. Клієнт, що використовується для отримання даних трансляції приховано у Статистика для сисадмінів. @@ -1492,7 +1501,16 @@ AVC (H.264) має максимальну роздільну здатність • Навіть якщо ви зміните це налаштування, воно може не набути чинності, доки ви не перезапустите пристрій. • Вимкнувши це налаштування, вантажиться більше реклами з боку сервера. • Ви повинні вимкнути це налаштування, щоб зробити відеорекламу видимою." + Кнопку Створити не міняється з кнопкою Сповіщення. + "Кнопку Створити міняється з кнопкою Сповіщення. + +Примітка: Увімкнення також примусово приховує відеорекламу." Поміняти Створити зі Сповіщення + "Вимкнення може спричинити вантаження більше реклами з сервера. + +А також, рекламу більше не блокуватиметься в Shorts. + +Якщо це налаштування не діє, спробуйте перемкнути Анонімний режим." Стандартна • Історію перегляду заблоковано. "• Дотримується налаштувань історії перегляду облікового запису Google. diff --git a/src/main/resources/youtube/translations/vi-rVN/missing_strings.xml b/src/main/resources/youtube/translations/vi-rVN/missing_strings.xml index f0eaa3ea4..26b7e32ef 100644 --- a/src/main/resources/youtube/translations/vi-rVN/missing_strings.xml +++ b/src/main/resources/youtube/translations/vi-rVN/missing_strings.xml @@ -7,7 +7,21 @@ Long press video downloader package name Displays the optimization dialog for GMSCore at each application startup. Show optimization dialog for GMSCore - Match full word + "Home / Subscription / Search results are filtered to hide videos with views less or greater than a specified number. + +Limitations: +• Shorts cannot be hidden. +• Videos with 0 views are not filtered." + About view count filtering + Videos in home feed are not filtered. + Videos in home feed are filtered. + Hide home videos by views + Search results are not filtered. + Search results are filtered. + Hide search results by views + Videos in subscriptions feed are not filtered. + Videos in subscriptions feed are filtered. + Hide subscription videos by views MMT Blue MMT Green MMT Yellow diff --git a/src/main/resources/youtube/translations/vi-rVN/strings.xml b/src/main/resources/youtube/translations/vi-rVN/strings.xml index 911d9e80b..a9a77f2a0 100644 --- a/src/main/resources/youtube/translations/vi-rVN/strings.xml +++ b/src/main/resources/youtube/translations/vi-rVN/strings.xml @@ -179,8 +179,8 @@ Hạn chế: Cài đặt này có thể sẽ không áp dụng cho các video kh Các nút Thích và Không thích sẽ sáng lên khi được nhắc đến. Các nút Thích và Không thích sẽ không sáng lên khi được nhắc đến. Tắt hoạt ảnh các nút Thích và Không thích - "Tắt giao thức QUIC của CronetEngine để giảm độ trễ khi phát video." - Tắt giao thức QUIC + "Vô hiệu hoá giao thức QUIC của CronetEngine để giảm độ trễ khi phát video." + Vô hiệu hoá giao thức QUIC Trinh phát Shorts sẽ tiếp tục khi ứng dụng khởi chạy. Trinh phát Shorts sẽ không tiếp tục khi ứng dụng khởi chạy. Tắt tiếp tục trình phát Shorts @@ -200,6 +200,13 @@ Hạn chế: Cài đặt này có thể sẽ không áp dụng cho các video kh • Nhấn để cuộn. • Nhấn và giữ để chọn văn bản." Tắt tương tác mô tả video + Bộ giải mã VP9 đã được kích hoạt. + "Bộ giải mã VP9 đã bị vô hiệu hoá. + +• Độ phân giải tối đa sẽ là 1080p. +• Việc phát video sẽ sử dụng nhiều dữ liệu di động hơn so với VP9. +• Để có thể phát video HDR, bộ giải mã VP9 vẫn sẽ được sử dụng." + Vô hiệu hoá bộ giải mã VP9 Thanh điều hướng kiểu Cairo đã được vô hiệu hoá. "Thanh điều hướng kiểu Cairo đã được bật @@ -235,8 +242,8 @@ Hạn chế: Chủ đề Cairo cũng được áp dụng cho dấu chấm thông Đang chuyển hướng URL khi mở các liên kết xuất hiện trên YouTube. Đang bỏ qua chuyển hướng URL khi mở các liên kết xuất hiện trên YouTube. Mở liên kết trực tiếp - Bật codec OPUS nếu phản hồi của trình phát bao gồm codec OPUS. - Bật Codec OPUS + Kích hoạt bộ giải mã OPUS nếu phản hồi của trình phát bao gồm bộ giải mã OPUS. + Kích hoạt bộ giải mã OPUS Thay đổi DPI để sử dụng một số bố cục điện thoại. Bố cục điện thoại Không lưu và khôi phục độ sáng khi thoát ra hoặc vào chế độ toàn màn hình. @@ -348,7 +355,7 @@ Một số thành phần có thể không bị ẩn." Nút Chuyển đến cửa hàng đã ẩn. Ẩn nút Chuyển đến cửa hàng "Ẩn các kệ sau: - • Tin nóng + • Tin nổi bật • Tiếp tục xem • Khám phá thêm kênh • Nghe lại @@ -438,6 +445,9 @@ Cửa hàng" Bảng giới thiệu mở rộng được hiển thị bên dưới video. Bảng giới thiệu mở rộng đã ẩn bên dưới video. Ẩn bảng giới thiệu mở rộng + Kệ Hiện thêm đã được hiển thị. + Kệ Hiện thêm đã bị ẩn. + Ẩn kệ Hiện thêm Nút Phụ đề được hiển thị. Nút Phụ đề đã ẩn. Ẩn nút Phụ đề @@ -461,8 +471,6 @@ Cửa hàng" Kệ Dành cho bạn được hiển thị. Kệ Dành cho bạn đã ẩn. Ẩn kệ Dành cho bạn - Quảng cáo toàn màn hình đã bị chặn. (Loại hộp thoại: %s) - Quảng cáo toàn màn hình đã bị đóng. Quảng cáo toàn màn hình được hiển thị. Quảng cáo toàn màn hình đã ẩn. Ẩn quảng cáo toàn màn hình @@ -559,9 +567,9 @@ Bộ lọc có phân biệt chữ hoa chữ thường, vì vậy bạn cần nh Kệ Sản phẩm được hiển thị. Kệ Sản phẩm đã ẩn. Ẩn kệ Sản phẩm - Danh sách kết hợp được hiển thị. - Danh sách kết hợp đã ẩn. - Ẩn Danh sách kết hợp + Danh sách phát kết hợp được hiển thị. + Danh sách phát kết hợp đã ẩn. + Ẩn Danh sách phát kết hợp Phim và chương trình truyền hình được hiển thị. Phim và chương trình truyền hình đã ẩn. Ẩn phim và chương trình truyền hình @@ -962,9 +970,9 @@ Cài đặt → Tự động phát → Tự động phát video tiếp theo."Kết quả tìm kiếm từ web được hiển thị. Kết quả tìm kiếm từ web đã ẩn. Ẩn kết quả tìm kiếm từ web - Lớp phủ zoom đã được hiển thị. - Lớp phủ zoom đã bị ẩn. - Ẩn lớp phủ zoom + Lớp phủ khi chụm để thu phóng đã được hiển thị. + Lớp phủ khi chụm để thu phóng đã bị ẩn. + Ẩn lớp phủ khi chụm để thu phóng AFN Xanh AFN Đỏ Tùy chỉnh @@ -1123,10 +1131,10 @@ Nhấn và giữ để mở hộp thoại cài đặt Danh sách trắng.Lề trên bảng nút thao tác nhanh phải nằm trong khoảng 0 - 32. Đã đặt lại về mặc định. Giá trị khoảng cách từ thanh tiến trình đến bảng nút thao tác nhanh trong khoảng từ 0 đến 32. Lề trên bảng nút thao tác nhanh - "Buộc từ chối phản hồi codec AV1. -Một codec khác sẽ được áp dụng sau khoảng 20 giây tải bộ đệm." - Từ chối phản hồi codec AV1 - Quá trình dự phòng gây ra khoảng 20 giây tải bộ đệm. + "Buộc từ chối phản hồi của bộ giải mã phần mềm AV1. +Một bộ giải mã khác sẽ được áp dụng sau khoảng 20 giây tải bộ đệm." + Từ chối phản hồi của bộ giải mã phần mềm AV1 + Quá trình dự phòng sẽ tạo ra khoảng 20 giây tải bộ đệm. Thay đổi tốc độ phát chỉ áp dụng cho video hiện tại. Thay đổi tốc độ phát áp dụng cho tất cả video. Lưu thay đổi tốc độ phát @@ -1146,8 +1154,8 @@ Một codec khác sẽ được áp dụng sau khoảng 20 giây tải bộ đ "Đóng hộp thoại cảnh báo nội dung cần cân nhắc trước khi xem. Tuỳ chọn này chỉ tự động chấp nhận hộp thoại cảnh báo, không thể bỏ qua giới hạn về độ tuổi." Đóng hộp thoại cảnh báo trước khi xem - Thay thế codec AV1 bằng codec VP9. - Thay thế codec AV1 + Thay thế bộ giải mã phần mềm AV1 bằng bộ giải mã VP9. + Thay thế bộ giải mã phần mềm AV1 Tên người dùng của kênh đã được sử dụng. Tên kênh đã được sử dụng. Thay thế tên người dùng của kênh @@ -1352,6 +1360,7 @@ Hạn chế: Lượt không thích có thể không hiển thị nếu người Đặt lại bộ đếm phân đoạn đã bỏ qua? Đó là <b>%s</b>. Bạn đã tạo <b>%s</b> phân đoạn + Nhấn vào đây để xem các phân đoạn của bạn. Tên người dùng của bạn: <b>%s</b> Nhấn vào đây để thay đổi tên người dùng của bạn Không thể thay đổi tên người dùng: Trạng thái: %1$d %2$s. @@ -1435,15 +1444,16 @@ Nếu muốn tắt tính năng này sau đó, bạn nên xóa dữ liệu ứng "Giả lập kích thước thiết bị đến giá trị tối đa. Chất lượng cao có thể được mở khóa trên một số video yêu cầu kích thước thiết bị lớn, nhưng không phải tất cả các video." Giả mạo kích thước thiết bị - Codec video trên iOS là AVC (H.264), VP9, or AV1. - Codec video trên iOS là AVC (H.264). + Bộ giải mã video trên iOS là AVC (H.264), VP9, hoặc là AV1. + Bộ giải mã video trên iOS là AVC (H.264). Buộc iOS sử dụng AVC (H.264) "Bật chức năng này có thể tăng cường thời lượng pin và khắc phục tình trạng giật lag khi phát video. AVC (H.264) có độ phân giải tối đa 1080p, và phát video sẽ dùng nhiều dữ liệu di động hơn với VP9 hoặc AV1." • Mục Bản âm thanh bị thiếu. • Mục Bản âm thanh bị thiếu. - • Phim hoặc video trả phí có thể không phát được. + "• Phim hoặc video trả phí có thể không phát được. +• Video phát trực tiếp sẽ khởi chạy từ đầu." Hạn chế của việc giả mạo • Video có thể không phát được. Máy khách được sử dụng để lấy dữ liệu phát trực tiếp sẽ bị ẩn trong Thống kê chi tiết. @@ -1478,7 +1488,16 @@ AVC (H.264) có độ phân giải tối đa 1080p, và phát video sẽ dùng n • Tuỳ chọn này có thể không có hiệu lực cho đến khi khởi động lại thiết bị. • Tắt tuỳ chọn này sẽ tải thêm quảng cáo từ phía máy chủ. • Tắt tuỳ chọn này có thể hiển thị quảng cáo dạng video." + Nút Tạo không được hoán đổi với nút Thông báo. + "Nút Tạo đã được hoán đổi với nút Thông báo. + +Lưu ý: Việc bật tuỳ chọn này cũng sẽ ẩn các quảng cáo trong video." Hoán đổi nút Tạo và nút Thông báo + "Tắt tùy chọn này có thể hiện quảng cáo từ máy chủ. + +Ngoài ra, quảng cáo sẽ không còn bị chặn trong trình phát Shorts. + +Nếu cài đặt này không có hiệu lực, hãy thử chuyển sang chế độ Ẩn danh." Nguyên gốc • Nhật ký xem bị chặn. "• Tuân theo cài đặt Nhật ký xem của tài khoản Google. @@ -1489,7 +1508,7 @@ AVC (H.264) có độ phân giải tối đa 1080p, và phát video sẽ dùng n Quản lý toàn bộ lịch sử Gốc Thay thế miền - Chặn Nhật ký xem + Chặn nhật ký Kiểu nhật ký Không thể thêm kênh \'%1$s\' vào Danh sách trắng %2$s. Kênh \'%1$s\' đã được thêm vào Danh sách trắng %2$s. diff --git a/src/main/resources/youtube/translations/zh-rCN/missing_strings.xml b/src/main/resources/youtube/translations/zh-rCN/missing_strings.xml index 0ae3cf346..cf0a420f0 100644 --- a/src/main/resources/youtube/translations/zh-rCN/missing_strings.xml +++ b/src/main/resources/youtube/translations/zh-rCN/missing_strings.xml @@ -1,23 +1,20 @@ - "Auto switch mix playlists is enabled when autoplay is turned on. - -Autoplay can be changed in YouTube settings: -Settings → Autoplay → Autoplay next video" - Auto switch mix playlists is disabled. - Disable switch mix playlists - Enabling this feature will disable automatic switching to YouTube Mix when playing music while autoplay is turned on. - Default playback speed is enabled for music. - "Default playback speed is disabled for music. - -Limitation: This setting may not apply to videos that do not include the 'Listen on YouTube Music' banner." - Disable playback speed for music Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. Long press video downloader package name - Ambient mode menu is shown. - Ambient mode menu is hidden. - Hide Ambient mode menu - Promotion alert banner is shown. - Promotion alert banner is hidden. - Hide promotion alert banner + "Home / Subscription / Search results are filtered to hide videos with views less or greater than a specified number. + +Limitations: +• Shorts cannot be hidden. +• Videos with 0 views are not filtered." + About view count filtering + Videos in home feed are not filtered. + Videos in home feed are filtered. + Hide home videos by views + Search results are not filtered. + Search results are filtered. + Hide search results by views + Videos in subscriptions feed are not filtered. + Videos in subscriptions feed are filtered. + Hide subscription videos by views diff --git a/src/main/resources/youtube/translations/zh-rCN/strings.xml b/src/main/resources/youtube/translations/zh-rCN/strings.xml index 9e86d08d4..d5335d82f 100644 --- a/src/main/resources/youtube/translations/zh-rCN/strings.xml +++ b/src/main/resources/youtube/translations/zh-rCN/strings.xml @@ -137,9 +137,21 @@ 已禁用自动播放器弹出面板 已启用自动播放器弹出面板 禁用播放器弹出面板 + "自动播放开启时自动切换混合播放列表 + +自动播放可以在 YouTube 设置中更改: +设置 → 自动播放→ 自动播放下一个视频" + 自动切换混合播放列表已禁用 + 禁用切换混合播放列表 + 启用此功能将禁止在自动播放音乐时自动切换到 YouTube Mix 直播默认播放速度已启用 直播默认播放速度已禁用 禁用直播默认播放速度 + 音乐默认播放速度已启用 + "音乐默认播放速度已禁用 + +限制:此设置可能不适用于不包含“监听YouTube Music”广告的视频" + 禁用音乐播放速度 启用互动面板 禁用互动面板 禁用互动面板 @@ -192,6 +204,13 @@ • 点击滚动 • 长按选择文本" 禁用视频描述交互 + VP9 编解码器已启用 + "VP9 编解码器已禁用 + +• 最大分辨率是 1080p +• 视频播放将使用比 VP9 更多的网络数据 +要获取 HDR 播放,HDR 视频仍使用VP9 编解码器" + 禁用 VP9 编解码器 Cairo 搜索栏已禁用 "Cairo 搜索栏已启用 @@ -430,6 +449,9 @@ 扩展面板已显示 扩展面板已隐藏 隐藏视频下方的扩展面板 + 扩展边框已显示 + 扩展边框已隐藏 + 隐藏扩展边框 显示字幕按钮 隐藏字幕按钮 隐藏动态字幕按钮 @@ -453,8 +475,6 @@ ”个性化“功能架已显示 ”个性化“功能架已隐藏 隐藏”个性化“功能架 - 全屏广告已屏蔽(对话类型: %s) - 全屏广告已关闭 全屏广告已显示 全屏广告已隐藏 隐藏全屏广告 @@ -508,7 +528,6 @@ 评论关键词过滤器已禁用 评论关键词过滤器已启用 评论关键词过滤 - 匹配完整单词 首页订阅内容的关键词过滤已禁用 首页订阅内容的关键词过滤已启用 启用首页关键词过滤器 @@ -597,6 +616,9 @@ 折叠按钮已显示 折叠按钮已隐藏 隐藏折叠按钮 + 氛围模式菜单已显示 + 氛围模式菜单已隐藏 + 隐藏氛围模式菜单 音轨菜单已显示 音轨菜单已隐藏 隐藏音轨菜单 @@ -672,6 +694,9 @@ 这会改变评论区的大小,因此无法在评论区打开即时聊天回放 这不会改变评论区的大小,因此可以在评论区打开即时聊天回放 预览评论类型 + 推广横幅广告已显示 + 推广横幅广告已隐藏 + 隐藏推广横幅广告 评论按钮已显示 评论按钮已隐藏 隐藏评论按钮 @@ -1347,6 +1372,7 @@ Note: 重置跳过的段视频计数器? 那是 <b>%s</b>。 你已经创建了 <b>%s</b> 段视频 + 点击此处查看您的片段 你的用户名:<b>%s</b> 点击这里更改你的用户名 无法更改用户名:状态:%1$d %2$s。 @@ -1436,7 +1462,7 @@ Note: AVC (H.264) 的最大解析度为 1080p,且视频播放将使用比 VP9 或 AV1 更多的网路数据" • 音轨菜单缺失 • 音轨菜单缺失 - • 电影或付费视频可能无法播放 + "• 电影或付费视频可能无法播放" 伪装副作用 • 视频可能无法播放 用于获取流媒体数据的客户端已在统计信息中隐藏 @@ -1471,7 +1497,16 @@ AVC (H.264) 的最大解析度为 1080p,且视频播放将使用比 VP9 或 AV • 更改此设置,可能需要重新启动设备才能生效 • 禁用此设置会从服务器端加载更多广告 • 你应该禁用此设置以显示视频广告" + 创建按钮未替换为通知按钮 + "创建按钮替换为通知按钮 + +注意:启用此选项也强制隐藏视频广告" 交换创建和通知按钮 + "禁用此功能可能会从服务器加载更多广告 + +此外,Shorts 中的广告将不再被屏蔽 + +如果此设置未生效,请尝试切换到隐身模式" Stock • 历史记录不可用 "• 遵循谷歌帐户的观看历史设置 diff --git a/src/main/resources/youtube/translations/zh-rTW/missing_strings.xml b/src/main/resources/youtube/translations/zh-rTW/missing_strings.xml index 7582f3f14..0511088d7 100644 --- a/src/main/resources/youtube/translations/zh-rTW/missing_strings.xml +++ b/src/main/resources/youtube/translations/zh-rTW/missing_strings.xml @@ -2,7 +2,21 @@ Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press. Long press video downloader package name - Match full word + "Home / Subscription / Search results are filtered to hide videos with views less or greater than a specified number. + +Limitations: +• Shorts cannot be hidden. +• Videos with 0 views are not filtered." + About view count filtering + Videos in home feed are not filtered. + Videos in home feed are filtered. + Hide home videos by views + Search results are not filtered. + Search results are filtered. + Hide search results by views + Videos in subscriptions feed are not filtered. + Videos in subscriptions feed are filtered. + Hide subscription videos by views Xisr Yellow Adjust: Mark Start and End Time for segment Verify the Segment diff --git a/src/main/resources/youtube/translations/zh-rTW/strings.xml b/src/main/resources/youtube/translations/zh-rTW/strings.xml index b0a233e03..2273c3dc2 100644 --- a/src/main/resources/youtube/translations/zh-rTW/strings.xml +++ b/src/main/resources/youtube/translations/zh-rTW/strings.xml @@ -205,6 +205,13 @@ ・點擊捲動。 ・點擊並按住以選擇文字。" 停用影片描述交互 + VP9 編解碼器已啟用。 + "VP9 編解碼器已停用。 + +• 最高解析度為 1080p。 +• 影片播放將使用比 VP9 更多的網路數據。 +• 若要獲得 HDR 播放,HDR 影片仍會使用 VP9 編解碼器。" + 停用 VP9 編解碼器 開羅搜尋欄已停用。 "開羅搜尋欄已啟用。 副作用:開羅主題也適用於通知點。" @@ -440,6 +447,9 @@ 影片下方的章節選擇欄已顯示 影片下方的章節選擇欄已隱藏 隱藏影片下方的章節選擇欄 + 可展開的選單已顯示。 + 可展開的選單已隱藏。 + 隱藏可展開的選單 字幕按鈕已顯示 字幕按鈕已隱藏 隱藏動態字幕按鈕 @@ -463,8 +473,6 @@ 「為你推薦」功能列已顯示。 「為你推薦」功能列已隱藏 隱藏「為你推薦」功能列 - 全螢幕廣告已攔截。(對話方塊類型: %s) - 全螢幕廣告已隱藏。 全螢幕廣告已顯示 全螢幕廣告已隱藏 隱藏全螢幕廣告 @@ -1362,6 +1370,7 @@ Note: 重置跳過片段影片計數器? 那是 <b>%s</b>。 你已經創建了 <b>%s</b> 段影片 + 點擊此處查看您的片段。 你的用戶名:<b>%s</b> 點擊這裡更改你的用戶名 無法更改用戶名:狀態:%1$d %2$s。 @@ -1453,7 +1462,7 @@ Note: AVC (H.264) 的最大解析度為 1080p,影片播放將比 VP9 或 AV1 使用更多的網路資料。" • 音軌選單遺失。 • 音軌選單遺失。 - • 電影或付費影片可能無法播放。 + "• 電影或付費影片可能無法播放。" 偽裝副作用 • 影片可能無法播放。 用於獲取串流資料的用戶端隱藏在統計資料中。 @@ -1488,7 +1497,16 @@ AVC (H.264) 的最大解析度為 1080p,影片播放將比 VP9 或 AV1 使用 • 變更這項設定可能需要重新啟動裝置 • 停用這項設定會從伺服器端載入更多廣告 • 你應該停用這項設定以顯示影片廣告" + 「建立」按鈕未與「通知」按鈕交換。 + "「建立」按鈕已與「通知」按鈕交換。 + +注意:啟用此功能也會強制隱藏影片廣告。" 交換創作和通知按鈕 + "停用此功能可能會從伺服器載入更多廣告。 + +此外,廣告將不再在 Shorts 中被封鎖。 + +若此設定未生效,請嘗試切換至無痕模式。" 預設 • 觀看歷史記錄不起作用。 "• 遵循Google 帳戶的觀看記錄設定。 From 7181daf068ffca0a129bfeaa4268428426dc00d4 Mon Sep 17 00:00:00 2001 From: Aaron Veil <70171475+anddea@users.noreply.github.com> Date: Mon, 16 Sep 2024 11:15:00 +0300 Subject: [PATCH 53/63] chore: Update revanced_prefs.xml --- .../youtube/settings/xml/revanced_prefs.xml | 401 +++++++++--------- 1 file changed, 200 insertions(+), 201 deletions(-) diff --git a/src/main/resources/youtube/settings/xml/revanced_prefs.xml b/src/main/resources/youtube/settings/xml/revanced_prefs.xml index 204fd0176..18c494d9d 100644 --- a/src/main/resources/youtube/settings/xml/revanced_prefs.xml +++ b/src/main/resources/youtube/settings/xml/revanced_prefs.xml @@ -7,12 +7,12 @@ @@ -35,14 +35,14 @@ @@ -85,34 +85,34 @@ SETTINGS: CHANGE_START_PAGE --> + SETTINGS: DISABLE_AUTO_AUDIO_TRACKS --> + SETTINGS: DISABLE_AUTO_CAPTIONS --> + SETTINGS: DISABLE_SPLASH_ANIMATION --> + SETTINGS: ENABLE_GRADIENT_LOADING_SCREEN --> + + + SETTINGS: HIDE_LAYOUT_COMPONENTS --> + SETTINGS: REMOVE_VIEWER_DISCRETION_DIALOG --> + + SETTINGS: LAYOUT_SWITCH --> @@ -154,10 +154,10 @@ - + - + SETTINGS: ALTERNATIVE_THUMBNAILS --> @@ -206,47 +206,46 @@ - - - + + - - - - - - - + + + + + + + - + - - - - + + + + - - - - - - - - - - - + + + + + + + + + + + - SETTINGS: HIDE_FEED_COMPONENTS --> + SETTINGS: HIDE_FEED_COMPONENTS --> @@ -258,25 +257,25 @@ PREFERENCE_SCREENS: PLAYER_BUTTONS --> + + + + + + + SETTINGS: HIDE_PLAYER_BUTTONS --> @@ -285,61 +284,61 @@ + SETTINGS: CHANGE_PLAYER_FLYOUT_MENU_TOGGLE --> + + + + + + + + SETTINGS: HIDE_PLAYER_FLYOUT_MENU --> + + + SETTINGS: FULLSCREEN_COMPONENTS --> + + SETTINGS: KEEP_LANDSCAPE_MODE --> + + + + + SETTINGS: SEEKBAR_COMPONENTS --> + SETTINGS: RESTORE_OLD_SEEKBAR_THUMBNAILS --> + SETTINGS: DISABLE_ROLLING_NUMBER_ANIMATIONS --> + + + SETTINGS: DESCRIPTION_COMPONENTS --> @@ -502,13 +501,13 @@ - - - - - - - + + + + + + + @@ -528,7 +527,7 @@ SETTINGS: SHORTS_COMPONENTS --> + SETTINGS: DISABLE_RESUMING_SHORTS_PLAYER --> + + + + + + + + + PREFERENCE_SCREEN: SWIPE_CONTROLS --> + SETTINGS: DISABLE_HDR_BRIGHTNESS --> + SETTINGS: ENABLE_WATCH_PANEL_GESTURES --> @@ -580,30 +579,30 @@ - - - + + + - - + + - - - + + + - - + + - - + + PREFERENCE_SCREEN: VIDEO --> + SETTINGS: REPLACE_AV1_CODEC --> @@ -628,7 +627,7 @@ + SETTINGS: DISABLE_QUIC_PROTOCOL --> + + SETTINGS: ENABLE_DEBUG_LOGGING --> + SETTINGS: ENABLE_EXTERNAL_BROWSER --> + SETTINGS: ENABLE_OPEN_LINKS_DIRECTLY --> @@ -663,10 +662,10 @@ - PREFERENCE: GMS_CORE_SETTINGS --> + PREFERENCE: GMS_CORE_SETTINGS --> + SETTINGS: SANITIZE_SHARING_LINKS --> From 441e1493fe81c0f2f9cbd13f03992f557b6eb025 Mon Sep 17 00:00:00 2001 From: Aaron Veil <70171475+anddea@users.noreply.github.com> Date: Mon, 16 Sep 2024 15:43:50 +0300 Subject: [PATCH 54/63] chore: update api --- api/revanced-patches.api | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/api/revanced-patches.api b/api/revanced-patches.api index 43e85fbc2..34f40f9fb 100644 --- a/api/revanced-patches.api +++ b/api/revanced-patches.api @@ -682,6 +682,12 @@ public abstract class app/revanced/patches/shared/ads/BaseAdsPatch : app/revance public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V } +public final class app/revanced/patches/shared/captions/BaseAutoCaptionsPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/shared/captions/BaseAutoCaptionsPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + public abstract class app/revanced/patches/shared/customspeed/BaseCustomPlaybackSpeedPatch : app/revanced/patcher/patch/BytecodePatch { public fun (Ljava/lang/String;F)V public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V @@ -1361,12 +1367,6 @@ public final class app/revanced/patches/youtube/utils/fix/doublebacktoclose/Doub public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V } -public final class app/revanced/patches/youtube/utils/fix/litho/ConversionContextObfuscationPatch : app/revanced/patcher/patch/BytecodePatch { - public static final field INSTANCE Lapp/revanced/patches/youtube/utils/fix/litho/ConversionContextObfuscationPatch; - public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V - public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V -} - public final class app/revanced/patches/youtube/utils/fix/shortsplayback/ShortsPlaybackPatch : app/revanced/patcher/patch/BytecodePatch { public static final field INSTANCE Lapp/revanced/patches/youtube/utils/fix/shortsplayback/ShortsPlaybackPatch; public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V @@ -1853,6 +1853,7 @@ public final class app/revanced/util/BytecodeUtilsKt { public static final fun containsWideLiteralInstructionIndex (Lcom/android/tools/smali/dexlib2/iface/Method;J)Z public static final fun findMutableMethodOf (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableClass;Lcom/android/tools/smali/dexlib2/iface/Method;)Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod; public static final fun findOpcodeIndicesReversed (Lcom/android/tools/smali/dexlib2/iface/Method;Lcom/android/tools/smali/dexlib2/Opcode;)Ljava/util/List; + public static final fun findOpcodeIndicesReversed (Lcom/android/tools/smali/dexlib2/iface/Method;Lkotlin/jvm/functions/Function1;)Ljava/util/List; public static final fun getException (Lapp/revanced/patcher/fingerprint/MethodFingerprint;)Lapp/revanced/patcher/patch/PatchException; public static final fun getStartsWithStringInstructionIndex (Lcom/android/tools/smali/dexlib2/iface/Method;Ljava/lang/String;)I public static final fun getStringInstructionIndex (Lcom/android/tools/smali/dexlib2/iface/Method;Ljava/lang/String;)I @@ -1900,11 +1901,23 @@ public final class app/revanced/util/BytecodeUtilsKt { public static final fun getWalkerMethod (Lapp/revanced/patcher/fingerprint/MethodFingerprintResult;Lapp/revanced/patcher/data/BytecodeContext;I)Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod; public static final fun getWalkerMethod (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;Lapp/revanced/patcher/data/BytecodeContext;I)Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod; public static final fun getWideLiteralInstructionIndex (Lcom/android/tools/smali/dexlib2/iface/Method;J)I + public static final fun indexOfFirstInstruction (Lcom/android/tools/smali/dexlib2/iface/Method;ILcom/android/tools/smali/dexlib2/Opcode;)I public static final fun indexOfFirstInstruction (Lcom/android/tools/smali/dexlib2/iface/Method;ILkotlin/jvm/functions/Function1;)I public static final fun indexOfFirstInstruction (Lcom/android/tools/smali/dexlib2/iface/Method;Lkotlin/jvm/functions/Function1;)I + public static synthetic fun indexOfFirstInstruction$default (Lcom/android/tools/smali/dexlib2/iface/Method;ILcom/android/tools/smali/dexlib2/Opcode;ILjava/lang/Object;)I public static synthetic fun indexOfFirstInstruction$default (Lcom/android/tools/smali/dexlib2/iface/Method;ILkotlin/jvm/functions/Function1;ILjava/lang/Object;)I + public static final fun indexOfFirstInstructionOrThrow (Lcom/android/tools/smali/dexlib2/iface/Method;ILcom/android/tools/smali/dexlib2/Opcode;)I public static final fun indexOfFirstInstructionOrThrow (Lcom/android/tools/smali/dexlib2/iface/Method;ILkotlin/jvm/functions/Function1;)I + public static synthetic fun indexOfFirstInstructionOrThrow$default (Lcom/android/tools/smali/dexlib2/iface/Method;ILcom/android/tools/smali/dexlib2/Opcode;ILjava/lang/Object;)I public static synthetic fun indexOfFirstInstructionOrThrow$default (Lcom/android/tools/smali/dexlib2/iface/Method;ILkotlin/jvm/functions/Function1;ILjava/lang/Object;)I + public static final fun indexOfFirstInstructionReversed (Lcom/android/tools/smali/dexlib2/iface/Method;Ljava/lang/Integer;Lcom/android/tools/smali/dexlib2/Opcode;)I + public static final fun indexOfFirstInstructionReversed (Lcom/android/tools/smali/dexlib2/iface/Method;Ljava/lang/Integer;Lkotlin/jvm/functions/Function1;)I + public static synthetic fun indexOfFirstInstructionReversed$default (Lcom/android/tools/smali/dexlib2/iface/Method;Ljava/lang/Integer;Lcom/android/tools/smali/dexlib2/Opcode;ILjava/lang/Object;)I + public static synthetic fun indexOfFirstInstructionReversed$default (Lcom/android/tools/smali/dexlib2/iface/Method;Ljava/lang/Integer;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)I + public static final fun indexOfFirstInstructionReversedOrThrow (Lcom/android/tools/smali/dexlib2/iface/Method;Ljava/lang/Integer;Lcom/android/tools/smali/dexlib2/Opcode;)I + public static final fun indexOfFirstInstructionReversedOrThrow (Lcom/android/tools/smali/dexlib2/iface/Method;Ljava/lang/Integer;Lkotlin/jvm/functions/Function1;)I + public static synthetic fun indexOfFirstInstructionReversedOrThrow$default (Lcom/android/tools/smali/dexlib2/iface/Method;Ljava/lang/Integer;Lcom/android/tools/smali/dexlib2/Opcode;ILjava/lang/Object;)I + public static synthetic fun indexOfFirstInstructionReversedOrThrow$default (Lcom/android/tools/smali/dexlib2/iface/Method;Ljava/lang/Integer;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)I public static final fun indexOfWideLiteralInstructionOrThrow (Lcom/android/tools/smali/dexlib2/iface/Method;J)I public static final fun injectHideViewCall (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;IILjava/lang/String;Ljava/lang/String;)V public static final fun literalInstructionBooleanHook (Lapp/revanced/patcher/fingerprint/MethodFingerprint;ILjava/lang/String;)V From 74c37ea7a054c380d082dda026ca94dd91ed25e8 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Mon, 16 Sep 2024 13:34:53 +0000 Subject: [PATCH 55/63] chore(release): 2.229.0-dev.5 [skip ci] # [2.229.0-dev.5](https://github.com/anddea/revanced-patches/compare/v2.229.0-dev.4...v2.229.0-dev.5) (2024-09-16) ### Bug Fixes * **YouTube Music - Disable auto captions:** Captions cannot be changed when `Disable forced auto captions` is turned on ([ec8d633](https://github.com/anddea/revanced-patches/commit/ec8d63331c5701979f89be90cf5cdfb746e02905)) * **YouTube Music - GmsCore support:** Can't share Stories to Facebook, Instagram and Snapchat ([01ec72a](https://github.com/anddea/revanced-patches/commit/01ec72a993391d31be06783d2a11a787412dc245)) ### Features * **Hide ads:** Remove `Close fullscreen ads` setting ([5dc3f7a](https://github.com/anddea/revanced-patches/commit/5dc3f7a4a8d80140fcef4d2a89b8ae101e3441b7)) * **YouTube - Hide feed components:** Add `Hide expandable shelves` setting ([482d48d](https://github.com/anddea/revanced-patches/commit/482d48d6a495302c14be0926e753548901bd0358)) * **YouTube - Hide feed components:** Selectively hide video by views for Home / Subscription / Search ([c842248](https://github.com/anddea/revanced-patches/commit/c842248e074399350ea73c1067bf1d5bc1f6da42)) * **YouTube - Video playback:** Add `Disable VP9 codec` setting ([559236b](https://github.com/anddea/revanced-patches/commit/559236b9681b24c22901c4a7b1d8df7c2e48de7e)) * **YouTube Music - Custom branding icon:** Update monochrome icon for `afn_red` & `afn_blue` ([88c4da1](https://github.com/anddea/revanced-patches/commit/88c4da1306a99d919ad3b092de937a8800d8c317)) * **YouTube Music:** Add support version `6.20.51` ([6d89cb0](https://github.com/anddea/revanced-patches/commit/6d89cb09228a5dd30bdc00caa040361c84a48032)) * **YouTube Music:** Drop support version `7.17.51` ([f49cd50](https://github.com/anddea/revanced-patches/commit/f49cd5068b6bf6827353d5c11c9b1e05eaf5f776)) --- CHANGELOG.md | 19 ++++++++++++ README.md | 76 +++++++++++++++++++++++------------------------ gradle.properties | 2 +- patches.json | 2 +- 4 files changed, 59 insertions(+), 40 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7439e018a..6784dfa79 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,22 @@ +# [2.229.0-dev.5](https://github.com/anddea/revanced-patches/compare/v2.229.0-dev.4...v2.229.0-dev.5) (2024-09-16) + + +### Bug Fixes + +* **YouTube Music - Disable auto captions:** Captions cannot be changed when `Disable forced auto captions` is turned on ([ec8d633](https://github.com/anddea/revanced-patches/commit/ec8d63331c5701979f89be90cf5cdfb746e02905)) +* **YouTube Music - GmsCore support:** Can't share Stories to Facebook, Instagram and Snapchat ([01ec72a](https://github.com/anddea/revanced-patches/commit/01ec72a993391d31be06783d2a11a787412dc245)) + + +### Features + +* **Hide ads:** Remove `Close fullscreen ads` setting ([5dc3f7a](https://github.com/anddea/revanced-patches/commit/5dc3f7a4a8d80140fcef4d2a89b8ae101e3441b7)) +* **YouTube - Hide feed components:** Add `Hide expandable shelves` setting ([482d48d](https://github.com/anddea/revanced-patches/commit/482d48d6a495302c14be0926e753548901bd0358)) +* **YouTube - Hide feed components:** Selectively hide video by views for Home / Subscription / Search ([c842248](https://github.com/anddea/revanced-patches/commit/c842248e074399350ea73c1067bf1d5bc1f6da42)) +* **YouTube - Video playback:** Add `Disable VP9 codec` setting ([559236b](https://github.com/anddea/revanced-patches/commit/559236b9681b24c22901c4a7b1d8df7c2e48de7e)) +* **YouTube Music - Custom branding icon:** Update monochrome icon for `afn_red` & `afn_blue` ([88c4da1](https://github.com/anddea/revanced-patches/commit/88c4da1306a99d919ad3b092de937a8800d8c317)) +* **YouTube Music:** Add support version `6.20.51` ([6d89cb0](https://github.com/anddea/revanced-patches/commit/6d89cb09228a5dd30bdc00caa040361c84a48032)) +* **YouTube Music:** Drop support version `7.17.51` ([f49cd50](https://github.com/anddea/revanced-patches/commit/f49cd5068b6bf6827353d5c11c9b1e05eaf5f776)) + # [2.229.0-dev.4](https://github.com/anddea/revanced-patches/compare/v2.229.0-dev.3...v2.229.0-dev.4) (2024-09-09) diff --git a/README.md b/README.md index 0ef9336f6..ab8639efd 100644 --- a/README.md +++ b/README.md @@ -79,42 +79,42 @@ Check the [wiki](https://github.com/anddea/revanced-patches/wiki) for resources | 💊 Patch | 📜 Description | 🏹 Target Version | |:--------:|:--------------:|:-----------------:| -| `Amoled` | Applies a pure black theme to some components. | 6.29.58 ~ 7.17.51 | -| `Bitrate default value` | Sets the audio quality to 'Always High' when you first install the app. | 6.29.58 ~ 7.17.51 | -| `Bypass image region restrictions` | Adds an option to use a different host for static images, so that images blocked in some countries can be received. | 6.29.58 ~ 7.17.51 | -| `Certificate spoof` | Enables YouTube Music to work with Android Auto by spoofing the YouTube Music certificate. | 6.29.58 ~ 7.17.51 | -| `Change share sheet` | Add option to change from in-app share sheet to system share sheet. | 6.29.58 ~ 7.17.51 | -| `Change start page` | Adds an option to set which page the app opens in instead of the homepage. | 6.29.58 ~ 7.17.51 | -| `Custom branding icon for YouTube Music` | Changes the YouTube Music app icon to the icon specified in options.json. | 6.29.58 ~ 7.17.51 | -| `Custom branding name for YouTube Music` | Renames the YouTube Music app to the name specified in options.json. | 6.29.58 ~ 7.17.51 | -| `Custom header for YouTube Music` | Applies a custom header in the top left corner within the app. | 6.29.58 ~ 7.17.51 | -| `Disable Cairo splash animation` | Adds an option to disable Cairo splash animation. | 7.06.54 ~ 7.17.51 | -| `Disable auto captions` | Adds an option to disable captions from being automatically enabled. | 6.29.58 ~ 7.17.51 | -| `Disable dislike redirection` | Adds an option to disable redirection to the next track when clicking the Dislike button. | 6.29.58 ~ 7.17.51 | -| `Enable OPUS codec` | Adds an option to use the OPUS audio codec instead of the MP4A audio codec. | 6.29.58 ~ 7.17.51 | -| `Enable debug logging` | Adds an option to enable debug logging. | 6.29.58 ~ 7.17.51 | -| `Enable landscape mode` | Adds an option to enable landscape mode when rotating the screen on phones. | 6.29.58 ~ 7.17.51 | -| `Flyout menu components` | Adds options to hide or change flyout menu components. | 6.29.58 ~ 7.17.51 | -| `GmsCore support` | Allows patched Google apps to run without root and under a different package name by using GmsCore instead of Google Play Services. | 6.29.58 ~ 7.17.51 | -| `Hide account components` | Adds options to hide components related to the account menu. | 6.29.58 ~ 7.17.51 | -| `Hide action bar components` | Adds options to hide action bar components and replace the offline download button with an external download button. | 6.29.58 ~ 7.17.51 | -| `Hide ads` | Adds options to hide ads. | 6.29.58 ~ 7.17.51 | -| `Hide layout components` | Adds options to hide general layout components. | 6.29.58 ~ 7.17.51 | -| `Hide overlay filter` | Removes, at compile time, the dark overlay that appears when player flyout menus are open. | 6.29.58 ~ 7.17.51 | -| `Hide player overlay filter` | Removes, at compile time, the dark overlay that appears when single-tapping in the player. | 6.29.58 ~ 7.17.51 | -| `Navigation bar components` | Adds options to hide or change components related to the navigation bar. | 6.29.58 ~ 7.17.51 | -| `Player components` | Adds options to hide or change components related to the player. | 6.29.58 ~ 7.17.51 | -| `Remove background playback restrictions` | Removes restrictions on background playback, including for kids videos. | 6.29.58 ~ 7.17.51 | -| `Remove viewer discretion dialog` | Adds an option to remove the dialog that appears when opening a video that has been age-restricted by accepting it automatically. This does not bypass the age restriction. | 6.29.58 ~ 7.17.51 | -| `Restore old style library shelf` | Adds an option to return the Library tab to the old style. | 6.29.58 ~ 7.17.51 | -| `Return YouTube Dislike` | Adds an option to show the dislike count of songs using the Return YouTube Dislike API. | 6.29.58 ~ 7.17.51 | -| `Sanitize sharing links` | Adds an option to remove tracking query parameters from URLs when sharing links. | 6.29.58 ~ 7.17.51 | -| `Settings for YouTube Music` | Applies mandatory patches to implement ReVanced Extended settings into the application. | 6.29.58 ~ 7.17.51 | -| `SponsorBlock` | Adds options to enable and configure SponsorBlock, which can skip undesired video segments, such as non-music sections. | 6.29.58 ~ 7.17.51 | -| `Spoof app version` | Adds options to spoof the YouTube Music client version. This can remove the radio mode restriction in Canadian regions or disable real-time lyrics. | 6.29.58 ~ 7.17.51 | -| `Translations` | Adds Crowdin translations for YouTube Music. | 6.29.58 ~ 7.17.51 | -| `Video playback` | Adds options to customize settings related to video playback, such as default video quality and playback speed. | 6.29.58 ~ 7.17.51 | -| `Visual preferences icons` | Adds icons to specific preferences in the settings. | 6.29.58 ~ 7.17.51 | +| `Amoled` | Applies a pure black theme to some components. | 6.20.51 ~ 7.16.52 | +| `Bitrate default value` | Sets the audio quality to 'Always High' when you first install the app. | 6.20.51 ~ 7.16.52 | +| `Bypass image region restrictions` | Adds an option to use a different host for static images, so that images blocked in some countries can be received. | 6.20.51 ~ 7.16.52 | +| `Certificate spoof` | Enables YouTube Music to work with Android Auto by spoofing the YouTube Music certificate. | 6.20.51 ~ 7.16.52 | +| `Change share sheet` | Add option to change from in-app share sheet to system share sheet. | 6.20.51 ~ 7.16.52 | +| `Change start page` | Adds an option to set which page the app opens in instead of the homepage. | 6.20.51 ~ 7.16.52 | +| `Custom branding icon for YouTube Music` | Changes the YouTube Music app icon to the icon specified in options.json. | 6.20.51 ~ 7.16.52 | +| `Custom branding name for YouTube Music` | Renames the YouTube Music app to the name specified in options.json. | 6.20.51 ~ 7.16.52 | +| `Custom header for YouTube Music` | Applies a custom header in the top left corner within the app. | 6.20.51 ~ 7.16.52 | +| `Disable Cairo splash animation` | Adds an option to disable Cairo splash animation. | 7.06.54 ~ 7.16.52 | +| `Disable auto captions` | Adds an option to disable captions from being automatically enabled. | 6.20.51 ~ 7.16.52 | +| `Disable dislike redirection` | Adds an option to disable redirection to the next track when clicking the Dislike button. | 6.20.51 ~ 7.16.52 | +| `Enable OPUS codec` | Adds an option to use the OPUS audio codec instead of the MP4A audio codec. | 6.20.51 ~ 7.16.52 | +| `Enable debug logging` | Adds an option to enable debug logging. | 6.20.51 ~ 7.16.52 | +| `Enable landscape mode` | Adds an option to enable landscape mode when rotating the screen on phones. | 6.20.51 ~ 7.16.52 | +| `Flyout menu components` | Adds options to hide or change flyout menu components. | 6.20.51 ~ 7.16.52 | +| `GmsCore support` | Allows patched Google apps to run without root and under a different package name by using GmsCore instead of Google Play Services. | 6.20.51 ~ 7.16.52 | +| `Hide account components` | Adds options to hide components related to the account menu. | 6.20.51 ~ 7.16.52 | +| `Hide action bar components` | Adds options to hide action bar components and replace the offline download button with an external download button. | 6.20.51 ~ 7.16.52 | +| `Hide ads` | Adds options to hide ads. | 6.20.51 ~ 7.16.52 | +| `Hide layout components` | Adds options to hide general layout components. | 6.20.51 ~ 7.16.52 | +| `Hide overlay filter` | Removes, at compile time, the dark overlay that appears when player flyout menus are open. | 6.20.51 ~ 7.16.52 | +| `Hide player overlay filter` | Removes, at compile time, the dark overlay that appears when single-tapping in the player. | 6.20.51 ~ 7.16.52 | +| `Navigation bar components` | Adds options to hide or change components related to the navigation bar. | 6.20.51 ~ 7.16.52 | +| `Player components` | Adds options to hide or change components related to the player. | 6.20.51 ~ 7.16.52 | +| `Remove background playback restrictions` | Removes restrictions on background playback, including for kids videos. | 6.20.51 ~ 7.16.52 | +| `Remove viewer discretion dialog` | Adds an option to remove the dialog that appears when opening a video that has been age-restricted by accepting it automatically. This does not bypass the age restriction. | 6.20.51 ~ 7.16.52 | +| `Restore old style library shelf` | Adds an option to return the Library tab to the old style. | 6.20.51 ~ 7.16.52 | +| `Return YouTube Dislike` | Adds an option to show the dislike count of songs using the Return YouTube Dislike API. | 6.20.51 ~ 7.16.52 | +| `Sanitize sharing links` | Adds an option to remove tracking query parameters from URLs when sharing links. | 6.20.51 ~ 7.16.52 | +| `Settings for YouTube Music` | Applies mandatory patches to implement ReVanced Extended settings into the application. | 6.20.51 ~ 7.16.52 | +| `SponsorBlock` | Adds options to enable and configure SponsorBlock, which can skip undesired video segments, such as non-music sections. | 6.20.51 ~ 7.16.52 | +| `Spoof app version` | Adds options to spoof the YouTube Music client version. This can remove the radio mode restriction in Canadian regions or disable real-time lyrics. | 6.20.51 ~ 7.16.52 | +| `Translations` | Adds Crowdin translations for YouTube Music. | 6.20.51 ~ 7.16.52 | +| `Video playback` | Adds options to customize settings related to video playback, such as default video quality and playback speed. | 6.20.51 ~ 7.16.52 | +| `Visual preferences icons` | Adds icons to specific preferences in the settings. | 6.20.51 ~ 7.16.52 | ### [📦 `com.reddit.frontpage`](https://play.google.com/store/apps/details?id=com.reddit.frontpage) @@ -174,12 +174,12 @@ Example: { "name": "com.google.android.apps.youtube.music", "versions": [ + "6.20.51", "6.29.58", "6.33.52", "6.42.55", "6.51.53", - "7.16.53", - "7.17.51" + "7.16.52" ] } ], diff --git a/gradle.properties b/gradle.properties index b9dc9a56e..19514f310 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.parallel = true org.gradle.caching = true kotlin.code.style = official -version = 2.229.0-dev.4 +version = 2.229.0-dev.5 diff --git a/patches.json b/patches.json index 868b5b060..3351cf383 100644 --- a/patches.json +++ b/patches.json @@ -1 +1 @@ -[{"name":"Alternative thumbnails","description":"Adds options to replace video thumbnails using the DeArrow API or image captures from the video.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Ambient mode control","description":"Adds options to disable Ambient mode and to bypass Ambient mode restrictions.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Amoled","description":"Applies a pure black theme to some components.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Bitrate default value","description":"Sets the audio quality to \u0027Always High\u0027 when you first install the app.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Bypass image region restrictions","description":"Adds an option to use a different host for static images, so that images blocked in some countries can be received.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Bypass image region restrictions","description":"Adds an option to use a different host for static images, so that images blocked in some countries can be received.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Certificate spoof","description":"Enables YouTube Music to work with Android Auto by spoofing the YouTube Music certificate.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change package name","description":"Changes the package name for Reddit to the name specified in options.json.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"PackageNameReddit","default":"com.reddit.frontpage","values":{"Clone":"com.reddit.frontpage.revanced","Default":"com.reddit.frontpage.rvx","Original":"com.reddit.frontpage"},"title":"Package name of Reddit","description":"The name of the package to rename the app to.","required":true}]},{"name":"Change player flyout menu toggles","description":"Adds an option to use text toggles instead of switch toggles within the additional settings menu.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change share sheet","description":"Add option to change from in-app share sheet to system share sheet.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change share sheet","description":"Add option to change from in-app share sheet to system share sheet.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change start page","description":"Adds an option to set which page the app opens in instead of the homepage.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change start page","description":"Adds an option to set which page the app opens in instead of the homepage.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change version code","description":"Changes the version code of the app to the value specified in options.json. Except when mounting, this can prevent app stores from updating the app and allow the app to be installed over an existing installation that has a higher version code. By default, the highest version code is set.","compatiblePackages":null,"use":false,"requiresIntegrations":false,"options":[{"key":"ChangeVersionCode","default":false,"values":null,"title":"Change version code","description":"Changes the version code of the app.","required":true},{"key":"VersionCode","default":"2147483647","values":null,"title":"Version code","description":"The version code to use. (1 ~ 2147483647)","required":true}]},{"name":"Custom Shorts action buttons","description":"Changes, at compile time, the icon of the action buttons of the Shorts player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"IconType","default":"round","values":{"Outline":"outline","OutlineCircle":"outlinecircle","Round":"round","YouTube":"youtube","YouTubeOutline":"youtubeoutline"},"title":"Shorts icon style ","description":"The style of the icons for the action buttons in the Shorts player.","required":true}]},{"name":"Custom branding icon for YouTube","description":"Changes the YouTube app icon to the icon specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppIcon","default":"Xisr Yellow","values":{"AFN Blue":"afn_blue","AFN Red":"afn_red","MMT":"mmt","MMT Blue":"mmt_blue","MMT Green":"mmt_green","MMT Yellow":"mmt_yellow","Revancify Blue":"revancify_blue","Revancify Red":"revancify_red","Vanced Black":"vanced_black","Vanced Light":"vanced_light","Xisr Yellow":"xisr_yellow","YouTube":"youtube"},"title":"App icon","description":"The icon to apply to the app.\n\nIf a path to a folder is provided, the folder must contain the following folders:\n\n- mipmap-xxxhdpi\n- mipmap-xxhdpi\n- mipmap-xhdpi\n- mipmap-hdpi\n- mipmap-mdpi\n\nEach of these folders must contain the following files:\n\n- adaptiveproduct_youtube_background_color_108.png\n- adaptiveproduct_youtube_foreground_color_108.png\n- ic_launcher.png\n- ic_launcher_round.png","required":true},{"key":"ChangeHeader","default":true,"values":null,"title":"Change header","description":"Apply the custom branding icon to the header.","required":true},{"key":"CustomHeader","default":"","values":null,"title":"Custom header","description":"The header to apply to the app.\n\nIf a path to a folder is provided, the folder must contain one or more of the following folders, depending on the DPI of the device:\n\n- drawable-xxxhdpi\n- drawable-xxhdpi\n- drawable-xhdpi\n- drawable-hdpi\n- drawable-mdpi\n\nEach of the folders must contain all of the following files:\n\n- yt_premium_wordmark_header_dark.png\n- yt_premium_wordmark_header_light.png\n- yt_wordmark_header_dark.png\n- yt_wordmark_header_light.png\n\nThe image dimensions must be as follows:\n- drawable-xxxhdpi: 512px x 192px\n- drawable-xxhdpi: 387px x 144px\n- drawable-xhdpi: 258px x 96px\n- drawable-hdpi: 194px x 72px\n- drawable-mdpi: 129px x 48px","required":true},{"key":"ChangeSplashIcon","default":true,"values":null,"title":"Change splash icons","description":"Apply the custom branding icon to the splash screen.","required":true},{"key":"RestoreOldSplashAnimation","default":true,"values":null,"title":"Restore old splash animation","description":"Restore the old style splash animation.","required":true}]},{"name":"Custom branding icon for YouTube Music","description":"Changes the YouTube Music app icon to the icon specified in options.json.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppIcon","default":"Xisr Yellow","values":{"AFN Blue":"afn_blue","AFN Red":"afn_red","MMT":"mmt","MMT Blue":"mmt_blue","MMT Green":"mmt_green","MMT Yellow":"mmt_yellow","Revancify Blue":"revancify_blue","Revancify Red":"revancify_red","Vanced Black":"vanced_black","Vanced Light":"vanced_light","Xisr Yellow":"xisr_yellow","YouTube Music":"youtube_music"},"title":"App icon","description":"The icon to apply to the app.\n\nIf a path to a folder is provided, the folder must contain the following folders:\n\n- mipmap-xxxhdpi\n- mipmap-xxhdpi\n- mipmap-xhdpi\n- mipmap-hdpi\n- mipmap-mdpi\n\nEach of these folders must contain the following files:\n\n- adaptiveproduct_youtube_music_background_color_108.png\n- adaptiveproduct_youtube_music_foreground_color_108.png\n- ic_launcher_release.png","required":true},{"key":"ChangeHeader","default":true,"values":null,"title":"Change header","description":"Apply the custom branding icon to the header.","required":true},{"key":"ChangeSplashIcon","default":true,"values":null,"title":"Change splash icons","description":"Apply the custom branding icon to the splash screen.","required":true},{"key":"RestoreOldSplashIcon","default":false,"values":null,"title":"Restore old splash icon","description":"Restore the old style splash icon.\n\nIf you enable both the old style splash icon and the Cairo splash animation,\n\nOld style splash icon will appear first and then the Cairo splash animation will start.","required":true}]},{"name":"Custom branding name for Reddit","description":"Renames the Reddit app to the name specified in options.json.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppName","default":"Reddit","values":{"Default":"RVX Reddit","Original":"Reddit"},"title":"App name","description":"The name of the app.","required":true}]},{"name":"Custom branding name for YouTube","description":"Renames the YouTube app to the name specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppName","default":"RVX","values":{"ReVanced Extended":"ReVanced Extended","RVX":"RVX","YouTube RVX":"YouTube RVX","YouTube":"YouTube"},"title":"App name","description":"The name of the app.","required":true}]},{"name":"Custom branding name for YouTube Music","description":"Renames the YouTube Music app to the name specified in options.json.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppNameNotification","default":"RVX Music","values":{"ReVanced Extended Music":"ReVanced Extended Music","RVX Music":"RVX Music","YouTube Music":"YouTube Music","YT Music":"YT Music"},"title":"App name in notification panel","description":"The name of the app as it appears in the notification panel.","required":true},{"key":"AppNameLauncher","default":"RVX Music","values":{"ReVanced Extended Music":"ReVanced Extended Music","RVX Music":"RVX Music","YouTube Music":"YouTube Music","YT Music":"YT Music"},"title":"App name in launcher","description":"The name of the app as it appears in the launcher.","required":true}]},{"name":"Custom double tap length","description":"Adds Double-tap to seek values that are specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"DoubleTapLengthArrays","default":"3, 5, 10, 15, 20, 30, 60, 120, 180","values":null,"title":"Double-tap to seek values","description":"A list of custom Double-tap to seek lengths to be added, separated by commas.","required":true}]},{"name":"Custom header for YouTube Music","description":"Applies a custom header in the top left corner within the app.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"CustomHeader","default":"custom_branding_icon","values":{"Custom branding icon":"custom_branding_icon"},"title":"Custom header","description":"The header to apply to the app.\n\nPatch option \u0027Custom branding icon\u0027 applies only when:\n\n1. Patch \u0027Custom branding icon for YouTube Music\u0027 is included.\n2. Patch option for \u0027Custom branding icon for YouTube Music\u0027 is selected from the preset.\n\nIf a path to a folder is provided, the folder must contain one or more of the following folders, depending on the DPI of the device:\n\n- drawable-xxxhdpi\n- drawable-xxhdpi\n- drawable-xhdpi\n- drawable-hdpi\n- drawable-mdpi\n\nEach of the folders must contain all of the following files:\n\n- action_bar_logo.png\n- logo_music.png\n- ytm_logo.png\n\nThe image \u0027action_bar_logo.png\u0027 dimensions must be as follows:\n\n- drawable-xxxhdpi: 320px x 96px\n- drawable-xxhdpi: 240px x 72px\n- drawable-xhdpi: 160px x 48px\n- drawable-hdpi: 121px x 36px\n- drawable-mdpi: 80px x 24px\n\nThe image \u0027logo_music.png\u0027 dimensions must be as follows:\n\n- drawable-xxxhdpi: 576px x 200px\n- drawable-xxhdpi: 432px x 150px\n- drawable-xhdpi: 288px x 100px\n- drawable-hdpi: 217px x 76px\n- drawable-mdpi: 144px x 50px\n\nThe image \u0027ytm_logo.png\u0027 dimensions must be as follows:\n\n- drawable-xxxhdpi: 412px x 144px\n- drawable-xxhdpi: 309px x 108px\n- drawable-xhdpi: 206px x 72px\n- drawable-hdpi: 155px x 54px\n- drawable-mdpi: 103px x 36px","required":true}]},{"name":"Description components","description":"Adds options to hide and disable description components.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable Cairo splash animation","description":"Adds an option to disable Cairo splash animation.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["7.06.54","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable QUIC protocol","description":"Adds an option to disable CronetEngine\u0027s QUIC protocol.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable auto audio tracks","description":"Adds an option to disable audio tracks from being automatically enabled.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable auto captions","description":"Adds an option to disable captions from being automatically enabled.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable auto captions","description":"Adds an option to disable captions from being automatically enabled.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable dislike redirection","description":"Adds an option to disable redirection to the next track when clicking the Dislike button.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable haptic feedback","description":"Adds options to disable haptic feedback when swiping in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable resuming Shorts on startup","description":"Adds an option to disable the Shorts player from resuming on app startup when Shorts were last being watched.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable screenshot popup","description":"Adds an option to disable the popup that appears when taking a screenshot.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable splash animation","description":"Adds an option to disable the splash animation on app startup.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable OPUS codec","description":"Adds an option to use the OPUS audio codec instead of the MP4A audio codec.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable OPUS codec","description":"Adds an options to enable the OPUS audio codec if the player response includes.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable debug logging","description":"Adds an option to enable debug logging.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable debug logging","description":"Adds an option to enable debug logging.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable external browser","description":"Adds an option to always open links in your browser instead of in the in-app-browser.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable gradient loading screen","description":"Adds an option to enable the gradient loading screen.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable landscape mode","description":"Adds an option to enable landscape mode when rotating the screen on phones.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable open links directly","description":"Adds an option to skip over redirection URLs in external links.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Flyout menu components","description":"Adds options to hide or change flyout menu components.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Force player buttons background","description":"Changes, at compile time, the dark background surrounding the video player controls.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"BackgroundColor","default":"?ytOverlayBackgroundMediumLight","values":{"Default":"?ytOverlayBackgroundMediumLight","Transparent":"@android:color/transparent","Opacity10":"#1a000000","Opacity20":"#33000000","Opacity30":"#4d000000","Opacity40":"#66000000","Opacity50":"#80000000","Opacity60":"#99000000","Opacity70":"#b3000000","Opacity80":"#cc000000","Opacity90":"#e6000000","Opacity100":"#ff000000"},"title":"Background color","description":"Specify a background color for player buttons using a hex color code. The first two symbols of the hex code represent the alpha channel, which is used to change the opacity.","required":false}]},{"name":"Force snackbar theme","description":"Force snackbar background color to match selected theme.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"CornerRadius","default":"8.0dip","values":null,"title":"Corner radius","description":"Specify a corner radius for the snackbar.","required":false},{"key":"BackgroundColor","default":"?ytChipBackground","values":{"Chip":"?ytChipBackground","Base":"?ytBaseBackground"},"title":"Background color","description":"Specify a background color for the snackbar. You can specify hex color.","required":false},{"key":"StrokeColor","default":"none","values":{"None":"none","Accent":"?attr/colorAccent","Inverted":"?attr/ytInvertedBackground"},"title":"Stroke color","description":"Specify a stroke color for the snackbar. You can specify hex color.","required":false}]},{"name":"Fullscreen components","description":"Adds options to hide or change components related to fullscreen.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"GmsCore support","description":"Allows patched Google apps to run without root and under a different package name by using GmsCore instead of Google Play Services.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"GmsCoreVendorGroupId","default":"app.revanced","values":{"ReVanced":"app.revanced"},"title":"GmsCore vendor group ID","description":"The vendor\u0027s group ID for GmsCore.","required":true},{"key":"CheckGmsCore","default":true,"values":null,"title":"Check GmsCore","description":"Check if GmsCore is installed on the device and has battery optimizations disabled when the app starts. \n\nIf GmsCore is not installed the app will not work, so disabling this is not recommended.","required":true},{"key":"PackageNameYouTube","default":"anddea.youtube","values":{"Clone":"bill.youtube","Default":"anddea.youtube"},"title":"Package name of YouTube","description":"The name of the package to use in GmsCore support.","required":true},{"key":"PackageNameYouTubeMusic","default":"anddea.youtube.music","values":{"Clone":"bill.youtube.music","Default":"anddea.youtube.music"},"title":"Package name of YouTube Music","description":"The name of the package to use in GmsCore support.","required":true}]},{"name":"GmsCore support","description":"Allows patched Google apps to run without root and under a different package name by using GmsCore instead of Google Play Services.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"GmsCoreVendorGroupId","default":"app.revanced","values":{"ReVanced":"app.revanced"},"title":"GmsCore vendor group ID","description":"The vendor\u0027s group ID for GmsCore.","required":true},{"key":"CheckGmsCore","default":true,"values":null,"title":"Check GmsCore","description":"Check if GmsCore is installed on the device and has battery optimizations disabled when the app starts. \n\nIf GmsCore is not installed the app will not work, so disabling this is not recommended.","required":true},{"key":"PackageNameYouTube","default":"anddea.youtube","values":{"Clone":"bill.youtube","Default":"anddea.youtube"},"title":"Package name of YouTube","description":"The name of the package to use in GmsCore support.","required":true},{"key":"PackageNameYouTubeMusic","default":"anddea.youtube.music","values":{"Clone":"bill.youtube.music","Default":"anddea.youtube.music"},"title":"Package name of YouTube Music","description":"The name of the package to use in GmsCore support.","required":true}]},{"name":"Hide Recently Visited shelf","description":"Adds an option to hide the Recently Visited shelf in the sidebar.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide Shorts dimming","description":"Removes, at compile time, the dimming effect at the top and bottom of Shorts videos.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide account components","description":"Adds options to hide components related to the account menu.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide action bar components","description":"Adds options to hide action bar components and replace the offline download button with an external download button.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide action buttons","description":"Adds options to hide action buttons under videos.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide ads","description":"Adds options to hide ads.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":true,"options":[]},{"name":"Hide ads","description":"Adds options to hide ads.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide ads","description":"Adds options to hide ads.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide comments components","description":"Adds options to hide components related to comments.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide feed components","description":"Adds options to hide components related to feeds.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide feed flyout menu","description":"Adds the ability to hide feed flyout menu components using a custom filter.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide layout components","description":"Adds options to hide general layout components.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide layout components","description":"Adds options to hide general layout components.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide navigation buttons","description":"Adds options to hide buttons in the navigation bar.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide overlay filter","description":"Removes, at compile time, the dark overlay that appears when player flyout menus are open.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide player buttons","description":"Adds options to hide buttons in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide player flyout menu","description":"Adds options to hide player flyout menu components.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide player overlay filter","description":"Removes, at compile time, the dark overlay that appears when single-tapping in the player.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide recommended communities shelf","description":"Adds an option to hide the recommended communities shelves in subreddits.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hook download actions","description":"Adds support to download videos with an external downloader app using the in-app download button.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Layout switch","description":"Adds an option to spoof the dpi in order to use a tablet or phone layout.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"MaterialYou","description":"Applies the MaterialYou theme for Android 12+ devices.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Miniplayer","description":"Adds options to change the in app minimized player, and if patching target 19.16+ adds options to use modern miniplayers.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Navigation bar components","description":"Adds options to hide or change components related to the navigation bar.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Navigation bar components","description":"Adds options to hide or change components related to the navigation bar.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Open links directly","description":"Adds an option to skip over redirection URLs in external links.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Open links externally","description":"Adds an option to always open links in your browser instead of in the in-app-browser.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Overlay buttons","description":"Adds options to display overlay buttons in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"IconType","default":"rounded","values":{"Bold":"bold","Rounded":"rounded","Thin":"thin"},"title":"Icon type","description":"The icon type.","required":true},{"key":"BottomMargin","default":"5.0dip","values":{"Wider":"10.0dip","Default":"5.0dip"},"title":"Bottom margin","description":"The bottom margin for the overlay buttons and timestamp.","required":true},{"key":"ChangeTopButtons","default":false,"values":null,"title":"Change top buttons","description":"Change the icons at the top of the player.","required":true}]},{"name":"Player components","description":"Adds options to hide or change components related to the player.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Player components","description":"Adds options to hide or change components related to the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Premium icon","description":"Unlocks premium app icons.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove background playback restrictions","description":"Removes restrictions on background playback, including for kids videos.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove background playback restrictions","description":"Removes restrictions on background playback, including for music and kids videos.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove subreddit dialog","description":"Adds options to remove the NSFW community warning and notifications suggestion dialogs by dismissing them automatically.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove viewer discretion dialog","description":"Adds an option to remove the dialog that appears when opening a video that has been age-restricted by accepting it automatically. This does not bypass the age restriction.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove viewer discretion dialog","description":"Adds an option to remove the dialog that appears when opening a video that has been age-restricted by accepting it automatically. This does not bypass the age restriction.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Restore old style library shelf","description":"Adds an option to return the Library tab to the old style.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Return YouTube Dislike","description":"Adds an option to show the dislike count of songs using the Return YouTube Dislike API.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Return YouTube Dislike","description":"Adds an option to show the dislike count of videos using the Return YouTube Dislike API.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Sanitize sharing links","description":"Adds an option to remove tracking query parameters from URLs when sharing links.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Sanitize sharing links","description":"Adds an option to remove tracking query parameters from URLs when sharing links.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Sanitize sharing links","description":"Adds an option to remove tracking query parameters from URLs when sharing links.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Seekbar components","description":"Adds options to hide or change components related to the seekbar.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Settings for Reddit","description":"Applies mandatory patches to implement ReVanced Extended settings into the application.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"RVXSettingsMenuName","default":"ReVanced Extended","values":null,"title":"RVX settings menu name","description":"The name of the RVX settings menu.","required":true}]},{"name":"Settings for YouTube","description":"Applies mandatory patches to implement ReVanced Extended settings into the application.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"InsertPosition","default":"About","values":{"Parent settings":"@string/parent_tools_key","General":"@string/general_key","Account":"@string/account_switcher_key","Data saving":"@string/data_saving_settings_key","Autoplay":"@string/auto_play_key","Video quality preferences":"@string/video_quality_settings_key","Background":"@string/offline_key","Watch on TV":"@string/pair_with_tv_key","Manage all history":"@string/history_key","Your data in YouTube":"@string/your_data_key","Privacy":"@string/privacy_key","History \u0026 privacy":"@string/privacy_key","Try experimental new features":"@string/premium_early_access_browse_page_key","Purchases and memberships":"@string/subscription_product_setting_key","Billing \u0026 payments":"@string/billing_and_payment_key","Billing and payments":"@string/billing_and_payment_key","Notifications":"@string/notification_key","Connected apps":"@string/connected_accounts_browse_page_key","Live chat":"@string/live_chat_key","Captions":"@string/captions_key","Accessibility":"@string/accessibility_settings_key","About":"@string/about_key"},"title":"Insert position","description":"The settings menu name that the RVX settings menu should be above.","required":true},{"key":"RVXSettingsMenuName","default":"ReVanced Extended","values":null,"title":"RVX settings menu name","description":"The name of the RVX settings menu.","required":true}]},{"name":"Settings for YouTube Music","description":"Applies mandatory patches to implement ReVanced Extended settings into the application.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"RVXSettingsMenuName","default":"ReVanced Extended","values":null,"title":"RVX settings menu name","description":"The name of the RVX settings menu.","required":true}]},{"name":"Shorts components","description":"Adds options to hide or change components related to YouTube Shorts.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"SponsorBlock","description":"Adds options to enable and configure SponsorBlock, which can skip undesired video segments, such as non-music sections.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"SponsorBlock","description":"Adds options to enable and configure SponsorBlock, which can skip undesired video segments, such as sponsored content.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"OutlineIcon","default":true,"values":null,"title":"Outline icons","description":"Apply the outline icon.","required":true}]},{"name":"Spoof app version","description":"Adds options to spoof the YouTube Music client version. This can remove the radio mode restriction in Canadian regions or disable real-time lyrics.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Spoof app version","description":"Adds options to spoof the YouTube client version. This can be used to restore old UI elements and features.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Spoof streaming data","description":"Adds options to spoof the streaming data to allow video playback.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Spoof watch history","description":"Adds an option to change the domain of the watch history or check its status.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Swipe controls","description":"Adds options for controlling volume and brightness with swiping, and whether to enter fullscreen when swiping down below the player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Theme","description":"Changes the app\u0027s theme to the values specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"DarkThemeBackgroundColor","default":"@android:color/black","values":{"Amoled Black":"@android:color/black","Catppuccin (Mocha)":"#FF181825","Dark Pink":"#FF290025","Dark Blue":"#FF001029","Dark Green":"#FF002905","Dark Yellow":"#FF282900","Dark Orange":"#FF291800","Dark Red":"#FF290000"},"title":"Dark theme background color","description":"Can be a hex color (#AARRGGBB) or a color resource reference.","required":true},{"key":"LightThemeBackgroundColor","default":"@android:color/white","values":{"White":"@android:color/white","Catppuccin (Latte)":"#FFE6E9EF","Light Pink":"#FFFCCFF3","Light Blue":"#FFD1E0FF","Light Green":"#FFCCFFCC","Light Yellow":"#FFFDFFCC","Light Orange":"#FFFFE6CC","Light Red":"#FFFFD6D6"},"title":"Light theme background color","description":"Can be a hex color (#AARRGGBB) or a color resource reference.","required":true}]},{"name":"Toolbar components","description":"Adds options to hide or change components located on the toolbar, such as toolbar buttons, search bar, and header.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Translations","description":"Adds Crowdin translations for YouTube Music.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"CustomLanguage","default":"","values":null,"title":"Custom language file","description":"The file path to the strings.xml file.\nPlease note that applying the strings.xml file will overwrite all existing language translations.","required":false},{"key":"SelectedLanguages","default":"bg-rBG, bn, cs-rCZ, el-rGR, es-rES, fr-rFR, hu-rHU, id-rID, in, it-rIT, ja-rJP, ko-rKR, nl-rNL, pl-rPL, pt-rBR, ro-rRO, ru-rRU, tr-rTR, uk-rUA, vi-rVN, zh-rCN, zh-rTW","values":null,"title":"Selected RVX languages","description":"Selected RVX languages that will be added.","required":false},{"key":"SelectedAppLanguages","default":"af, am, ar, ar-rXB, as, az, b+es+419, b+sr+Latn, be, bg, bn, bs, ca, cs, da, de, el, en-rAU, en-rCA, en-rGB, en-rIN, en-rXA, en-rXC, es, es-rUS, et, eu, fa, fi, fr, fr-rCA, gl, gu, hi, hr, hu, hy, id, in, is, it, iw, ja, ka, kk, km, kn, ko, ky, lo, lt, lv, mk, ml, mn, mr, ms, my, nb, ne, nl, no, or, pa, pl, pt, pt-rBR, pt-rPT, ro, ru, si, sk, sl, sq, sr, sv, sw, ta, te, th, tl, tr, uk, ur, uz, vi, zh, zh-rCN, zh-rHK, zh-rTW, zu","values":null,"title":"Selected app languages","description":"Selected app languages that will be kept, languages that are not in the list will be removed from the app.","required":false}]},{"name":"Translations","description":"Add Crowdin translations for YouTube.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"CustomLanguage","default":"","values":null,"title":"Custom language file","description":"The file path to the strings.xml file.\nPlease note that applying the strings.xml file will overwrite all existing language translations.","required":false},{"key":"SelectedLanguages","default":"ar, bg-rBG, bn, de-rDE, el-rGR, es-rES, fi-rFI, fr-rFR, hu-rHU, id-rID, in, it-rIT, ja-rJP, ko-rKR, pl-rPL, pt-rBR, ru-rRU, tr-rTR, uk-rUA, vi-rVN, zh-rCN, zh-rTW","values":null,"title":"Selected RVX languages","description":"Selected RVX languages that will be added.","required":false},{"key":"SelectedAppLanguages","default":"af, am, ar, ar-rXB, as, az, b+es+419, b+sr+Latn, be, bg, bn, bs, ca, cs, da, de, el, en-rAU, en-rCA, en-rGB, en-rIN, en-rXA, en-rXC, es, es-rUS, et, eu, fa, fi, fr, fr-rCA, gl, gu, hi, hr, hu, hy, id, in, is, it, iw, ja, ka, kk, km, kn, ko, ky, lo, lt, lv, mk, ml, mn, mr, ms, my, nb, ne, nl, no, or, pa, pl, pt, pt-rBR, pt-rPT, ro, ru, si, sk, sl, sq, sr, sv, sw, ta, te, th, tl, tr, uk, ur, uz, vi, zh, zh-rCN, zh-rHK, zh-rTW, zu","values":null,"title":"Selected app languages","description":"Selected app languages that will be kept, languages that are not in the list will be removed from the app.","required":false}]},{"name":"Video playback","description":"Adds options to customize settings related to video playback, such as default video quality and playback speed.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Video playback","description":"Adds options to customize settings related to video playback, such as default video quality and playback speed.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Visual preferences icons","description":"Adds icons to specific preferences in the settings.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.29.58","6.33.52","6.42.55","6.51.53","7.16.53","7.17.51"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"ExtendedIcon","default":"Extension","values":{"Custom branding icon":"custom_branding_icon","Extension":"extension","Gear":"gear","ReVanced":"revanced","ReVanced Colored":"revanced_colored"},"title":"Extended icon","description":"Apply different icons for Extended preference.","required":false}]},{"name":"Visual preferences icons","description":"Adds icons to specific preferences in the settings.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"ExtendedIcon","default":"Extension","values":{"Custom branding icon":"custom_branding_icon","Extension":"extension","Gear":"gear","ReVanced":"revanced","ReVanced Colored":"revanced_colored"},"title":"RVX settings menu icon","description":"The icon for the RVX settings menu.","required":true}]}] \ No newline at end of file +[{"name":"Alternative thumbnails","description":"Adds options to replace video thumbnails using the DeArrow API or image captures from the video.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Ambient mode control","description":"Adds options to disable Ambient mode and to bypass Ambient mode restrictions.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Amoled","description":"Applies a pure black theme to some components.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Bitrate default value","description":"Sets the audio quality to \u0027Always High\u0027 when you first install the app.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Bypass image region restrictions","description":"Adds an option to use a different host for static images, so that images blocked in some countries can be received.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Bypass image region restrictions","description":"Adds an option to use a different host for static images, so that images blocked in some countries can be received.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Certificate spoof","description":"Enables YouTube Music to work with Android Auto by spoofing the YouTube Music certificate.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change package name","description":"Changes the package name for Reddit to the name specified in options.json.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"PackageNameReddit","default":"com.reddit.frontpage","values":{"Clone":"com.reddit.frontpage.revanced","Default":"com.reddit.frontpage.rvx","Original":"com.reddit.frontpage"},"title":"Package name of Reddit","description":"The name of the package to rename the app to.","required":true}]},{"name":"Change player flyout menu toggles","description":"Adds an option to use text toggles instead of switch toggles within the additional settings menu.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change share sheet","description":"Add option to change from in-app share sheet to system share sheet.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change share sheet","description":"Add option to change from in-app share sheet to system share sheet.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change start page","description":"Adds an option to set which page the app opens in instead of the homepage.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change start page","description":"Adds an option to set which page the app opens in instead of the homepage.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change version code","description":"Changes the version code of the app to the value specified in options.json. Except when mounting, this can prevent app stores from updating the app and allow the app to be installed over an existing installation that has a higher version code. By default, the highest version code is set.","compatiblePackages":null,"use":false,"requiresIntegrations":false,"options":[{"key":"ChangeVersionCode","default":false,"values":null,"title":"Change version code","description":"Changes the version code of the app.","required":true},{"key":"VersionCode","default":"2147483647","values":null,"title":"Version code","description":"The version code to use. (1 ~ 2147483647)","required":true}]},{"name":"Custom Shorts action buttons","description":"Changes, at compile time, the icon of the action buttons of the Shorts player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"IconType","default":"round","values":{"Outline":"outline","OutlineCircle":"outlinecircle","Round":"round","YouTube":"youtube","YouTubeOutline":"youtubeoutline"},"title":"Shorts icon style ","description":"The style of the icons for the action buttons in the Shorts player.","required":true}]},{"name":"Custom branding icon for YouTube","description":"Changes the YouTube app icon to the icon specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppIcon","default":"Xisr Yellow","values":{"AFN Blue":"afn_blue","AFN Red":"afn_red","MMT":"mmt","MMT Blue":"mmt_blue","MMT Green":"mmt_green","MMT Yellow":"mmt_yellow","Revancify Blue":"revancify_blue","Revancify Red":"revancify_red","Vanced Black":"vanced_black","Vanced Light":"vanced_light","Xisr Yellow":"xisr_yellow","YouTube":"youtube"},"title":"App icon","description":"The icon to apply to the app.\n\nIf a path to a folder is provided, the folder must contain the following folders:\n\n- mipmap-xxxhdpi\n- mipmap-xxhdpi\n- mipmap-xhdpi\n- mipmap-hdpi\n- mipmap-mdpi\n\nEach of these folders must contain the following files:\n\n- adaptiveproduct_youtube_background_color_108.png\n- adaptiveproduct_youtube_foreground_color_108.png\n- ic_launcher.png\n- ic_launcher_round.png","required":true},{"key":"ChangeHeader","default":true,"values":null,"title":"Change header","description":"Apply the custom branding icon to the header.","required":true},{"key":"CustomHeader","default":"","values":null,"title":"Custom header","description":"The header to apply to the app.\n\nIf a path to a folder is provided, the folder must contain one or more of the following folders, depending on the DPI of the device:\n\n- drawable-xxxhdpi\n- drawable-xxhdpi\n- drawable-xhdpi\n- drawable-hdpi\n- drawable-mdpi\n\nEach of the folders must contain all of the following files:\n\n- yt_premium_wordmark_header_dark.png\n- yt_premium_wordmark_header_light.png\n- yt_wordmark_header_dark.png\n- yt_wordmark_header_light.png\n\nThe image dimensions must be as follows:\n- drawable-xxxhdpi: 512px x 192px\n- drawable-xxhdpi: 387px x 144px\n- drawable-xhdpi: 258px x 96px\n- drawable-hdpi: 194px x 72px\n- drawable-mdpi: 129px x 48px","required":true},{"key":"ChangeSplashIcon","default":true,"values":null,"title":"Change splash icons","description":"Apply the custom branding icon to the splash screen.","required":true},{"key":"RestoreOldSplashAnimation","default":true,"values":null,"title":"Restore old splash animation","description":"Restore the old style splash animation.","required":true}]},{"name":"Custom branding icon for YouTube Music","description":"Changes the YouTube Music app icon to the icon specified in options.json.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppIcon","default":"Xisr Yellow","values":{"AFN Blue":"afn_blue","AFN Red":"afn_red","MMT":"mmt","MMT Blue":"mmt_blue","MMT Green":"mmt_green","MMT Yellow":"mmt_yellow","Revancify Blue":"revancify_blue","Revancify Red":"revancify_red","Vanced Black":"vanced_black","Vanced Light":"vanced_light","Xisr Yellow":"xisr_yellow","YouTube Music":"youtube_music"},"title":"App icon","description":"The icon to apply to the app.\n\nIf a path to a folder is provided, the folder must contain the following folders:\n\n- mipmap-xxxhdpi\n- mipmap-xxhdpi\n- mipmap-xhdpi\n- mipmap-hdpi\n- mipmap-mdpi\n\nEach of these folders must contain the following files:\n\n- adaptiveproduct_youtube_music_background_color_108.png\n- adaptiveproduct_youtube_music_foreground_color_108.png\n- ic_launcher_release.png","required":true},{"key":"ChangeHeader","default":true,"values":null,"title":"Change header","description":"Apply the custom branding icon to the header.","required":true},{"key":"ChangeSplashIcon","default":true,"values":null,"title":"Change splash icons","description":"Apply the custom branding icon to the splash screen.","required":true},{"key":"RestoreOldSplashIcon","default":false,"values":null,"title":"Restore old splash icon","description":"Restore the old style splash icon.\n\nIf you enable both the old style splash icon and the Cairo splash animation,\n\nOld style splash icon will appear first and then the Cairo splash animation will start.","required":true}]},{"name":"Custom branding name for Reddit","description":"Renames the Reddit app to the name specified in options.json.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppName","default":"Reddit","values":{"Default":"RVX Reddit","Original":"Reddit"},"title":"App name","description":"The name of the app.","required":true}]},{"name":"Custom branding name for YouTube","description":"Renames the YouTube app to the name specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppName","default":"RVX","values":{"ReVanced Extended":"ReVanced Extended","RVX":"RVX","YouTube RVX":"YouTube RVX","YouTube":"YouTube"},"title":"App name","description":"The name of the app.","required":true}]},{"name":"Custom branding name for YouTube Music","description":"Renames the YouTube Music app to the name specified in options.json.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppNameNotification","default":"RVX Music","values":{"ReVanced Extended Music":"ReVanced Extended Music","RVX Music":"RVX Music","YouTube Music":"YouTube Music","YT Music":"YT Music"},"title":"App name in notification panel","description":"The name of the app as it appears in the notification panel.","required":true},{"key":"AppNameLauncher","default":"RVX Music","values":{"ReVanced Extended Music":"ReVanced Extended Music","RVX Music":"RVX Music","YouTube Music":"YouTube Music","YT Music":"YT Music"},"title":"App name in launcher","description":"The name of the app as it appears in the launcher.","required":true}]},{"name":"Custom double tap length","description":"Adds Double-tap to seek values that are specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"DoubleTapLengthArrays","default":"3, 5, 10, 15, 20, 30, 60, 120, 180","values":null,"title":"Double-tap to seek values","description":"A list of custom Double-tap to seek lengths to be added, separated by commas.","required":true}]},{"name":"Custom header for YouTube Music","description":"Applies a custom header in the top left corner within the app.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"CustomHeader","default":"custom_branding_icon","values":{"Custom branding icon":"custom_branding_icon"},"title":"Custom header","description":"The header to apply to the app.\n\nPatch option \u0027Custom branding icon\u0027 applies only when:\n\n1. Patch \u0027Custom branding icon for YouTube Music\u0027 is included.\n2. Patch option for \u0027Custom branding icon for YouTube Music\u0027 is selected from the preset.\n\nIf a path to a folder is provided, the folder must contain one or more of the following folders, depending on the DPI of the device:\n\n- drawable-xxxhdpi\n- drawable-xxhdpi\n- drawable-xhdpi\n- drawable-hdpi\n- drawable-mdpi\n\nEach of the folders must contain all of the following files:\n\n- action_bar_logo.png\n- logo_music.png\n- ytm_logo.png\n\nThe image \u0027action_bar_logo.png\u0027 dimensions must be as follows:\n\n- drawable-xxxhdpi: 320px x 96px\n- drawable-xxhdpi: 240px x 72px\n- drawable-xhdpi: 160px x 48px\n- drawable-hdpi: 121px x 36px\n- drawable-mdpi: 80px x 24px\n\nThe image \u0027logo_music.png\u0027 dimensions must be as follows:\n\n- drawable-xxxhdpi: 576px x 200px\n- drawable-xxhdpi: 432px x 150px\n- drawable-xhdpi: 288px x 100px\n- drawable-hdpi: 217px x 76px\n- drawable-mdpi: 144px x 50px\n\nThe image \u0027ytm_logo.png\u0027 dimensions must be as follows:\n\n- drawable-xxxhdpi: 412px x 144px\n- drawable-xxhdpi: 309px x 108px\n- drawable-xhdpi: 206px x 72px\n- drawable-hdpi: 155px x 54px\n- drawable-mdpi: 103px x 36px","required":true}]},{"name":"Description components","description":"Adds options to hide and disable description components.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable Cairo splash animation","description":"Adds an option to disable Cairo splash animation.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["7.06.54","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable QUIC protocol","description":"Adds an option to disable CronetEngine\u0027s QUIC protocol.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable auto audio tracks","description":"Adds an option to disable audio tracks from being automatically enabled.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable auto captions","description":"Adds an option to disable captions from being automatically enabled.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable auto captions","description":"Adds an option to disable captions from being automatically enabled.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable dislike redirection","description":"Adds an option to disable redirection to the next track when clicking the Dislike button.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable haptic feedback","description":"Adds options to disable haptic feedback when swiping in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable resuming Shorts on startup","description":"Adds an option to disable the Shorts player from resuming on app startup when Shorts were last being watched.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable screenshot popup","description":"Adds an option to disable the popup that appears when taking a screenshot.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable splash animation","description":"Adds an option to disable the splash animation on app startup.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable OPUS codec","description":"Adds an option to use the OPUS audio codec instead of the MP4A audio codec.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable OPUS codec","description":"Adds an options to enable the OPUS audio codec if the player response includes.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable debug logging","description":"Adds an option to enable debug logging.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable debug logging","description":"Adds an option to enable debug logging.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable external browser","description":"Adds an option to always open links in your browser instead of in the in-app-browser.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable gradient loading screen","description":"Adds an option to enable the gradient loading screen.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable landscape mode","description":"Adds an option to enable landscape mode when rotating the screen on phones.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable open links directly","description":"Adds an option to skip over redirection URLs in external links.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Flyout menu components","description":"Adds options to hide or change flyout menu components.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Force player buttons background","description":"Changes, at compile time, the dark background surrounding the video player controls.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"BackgroundColor","default":"?ytOverlayBackgroundMediumLight","values":{"Default":"?ytOverlayBackgroundMediumLight","Transparent":"@android:color/transparent","Opacity10":"#1a000000","Opacity20":"#33000000","Opacity30":"#4d000000","Opacity40":"#66000000","Opacity50":"#80000000","Opacity60":"#99000000","Opacity70":"#b3000000","Opacity80":"#cc000000","Opacity90":"#e6000000","Opacity100":"#ff000000"},"title":"Background color","description":"Specify a background color for player buttons using a hex color code. The first two symbols of the hex code represent the alpha channel, which is used to change the opacity.","required":false}]},{"name":"Force snackbar theme","description":"Force snackbar background color to match selected theme.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"CornerRadius","default":"8.0dip","values":null,"title":"Corner radius","description":"Specify a corner radius for the snackbar.","required":false},{"key":"BackgroundColor","default":"?ytChipBackground","values":{"Chip":"?ytChipBackground","Base":"?ytBaseBackground"},"title":"Background color","description":"Specify a background color for the snackbar. You can specify hex color.","required":false},{"key":"StrokeColor","default":"none","values":{"None":"none","Accent":"?attr/colorAccent","Inverted":"?attr/ytInvertedBackground"},"title":"Stroke color","description":"Specify a stroke color for the snackbar. You can specify hex color.","required":false}]},{"name":"Fullscreen components","description":"Adds options to hide or change components related to fullscreen.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"GmsCore support","description":"Allows patched Google apps to run without root and under a different package name by using GmsCore instead of Google Play Services.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"GmsCoreVendorGroupId","default":"app.revanced","values":{"ReVanced":"app.revanced"},"title":"GmsCore vendor group ID","description":"The vendor\u0027s group ID for GmsCore.","required":true},{"key":"CheckGmsCore","default":true,"values":null,"title":"Check GmsCore","description":"Check if GmsCore is installed on the device and has battery optimizations disabled when the app starts. \n\nIf GmsCore is not installed the app will not work, so disabling this is not recommended.","required":true},{"key":"PackageNameYouTube","default":"anddea.youtube","values":{"Clone":"bill.youtube","Default":"anddea.youtube"},"title":"Package name of YouTube","description":"The name of the package to use in GmsCore support.","required":true},{"key":"PackageNameYouTubeMusic","default":"anddea.youtube.music","values":{"Clone":"bill.youtube.music","Default":"anddea.youtube.music"},"title":"Package name of YouTube Music","description":"The name of the package to use in GmsCore support.","required":true}]},{"name":"GmsCore support","description":"Allows patched Google apps to run without root and under a different package name by using GmsCore instead of Google Play Services.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"GmsCoreVendorGroupId","default":"app.revanced","values":{"ReVanced":"app.revanced"},"title":"GmsCore vendor group ID","description":"The vendor\u0027s group ID for GmsCore.","required":true},{"key":"CheckGmsCore","default":true,"values":null,"title":"Check GmsCore","description":"Check if GmsCore is installed on the device and has battery optimizations disabled when the app starts. \n\nIf GmsCore is not installed the app will not work, so disabling this is not recommended.","required":true},{"key":"PackageNameYouTube","default":"anddea.youtube","values":{"Clone":"bill.youtube","Default":"anddea.youtube"},"title":"Package name of YouTube","description":"The name of the package to use in GmsCore support.","required":true},{"key":"PackageNameYouTubeMusic","default":"anddea.youtube.music","values":{"Clone":"bill.youtube.music","Default":"anddea.youtube.music"},"title":"Package name of YouTube Music","description":"The name of the package to use in GmsCore support.","required":true}]},{"name":"Hide Recently Visited shelf","description":"Adds an option to hide the Recently Visited shelf in the sidebar.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide Shorts dimming","description":"Removes, at compile time, the dimming effect at the top and bottom of Shorts videos.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide account components","description":"Adds options to hide components related to the account menu.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide action bar components","description":"Adds options to hide action bar components and replace the offline download button with an external download button.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide action buttons","description":"Adds options to hide action buttons under videos.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide ads","description":"Adds options to hide ads.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":true,"options":[]},{"name":"Hide ads","description":"Adds options to hide ads.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide ads","description":"Adds options to hide ads.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide comments components","description":"Adds options to hide components related to comments.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide feed components","description":"Adds options to hide components related to feeds.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide feed flyout menu","description":"Adds the ability to hide feed flyout menu components using a custom filter.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide layout components","description":"Adds options to hide general layout components.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide layout components","description":"Adds options to hide general layout components.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide navigation buttons","description":"Adds options to hide buttons in the navigation bar.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide overlay filter","description":"Removes, at compile time, the dark overlay that appears when player flyout menus are open.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide player buttons","description":"Adds options to hide buttons in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide player flyout menu","description":"Adds options to hide player flyout menu components.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide player overlay filter","description":"Removes, at compile time, the dark overlay that appears when single-tapping in the player.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide recommended communities shelf","description":"Adds an option to hide the recommended communities shelves in subreddits.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hook download actions","description":"Adds support to download videos with an external downloader app using the in-app download button.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Layout switch","description":"Adds an option to spoof the dpi in order to use a tablet or phone layout.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"MaterialYou","description":"Applies the MaterialYou theme for Android 12+ devices.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Miniplayer","description":"Adds options to change the in app minimized player, and if patching target 19.16+ adds options to use modern miniplayers.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Navigation bar components","description":"Adds options to hide or change components related to the navigation bar.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Navigation bar components","description":"Adds options to hide or change components related to the navigation bar.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Open links directly","description":"Adds an option to skip over redirection URLs in external links.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Open links externally","description":"Adds an option to always open links in your browser instead of in the in-app-browser.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Overlay buttons","description":"Adds options to display overlay buttons in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"IconType","default":"rounded","values":{"Bold":"bold","Rounded":"rounded","Thin":"thin"},"title":"Icon type","description":"The icon type.","required":true},{"key":"BottomMargin","default":"5.0dip","values":{"Wider":"10.0dip","Default":"5.0dip"},"title":"Bottom margin","description":"The bottom margin for the overlay buttons and timestamp.","required":true},{"key":"ChangeTopButtons","default":false,"values":null,"title":"Change top buttons","description":"Change the icons at the top of the player.","required":true}]},{"name":"Player components","description":"Adds options to hide or change components related to the player.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Player components","description":"Adds options to hide or change components related to the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Premium icon","description":"Unlocks premium app icons.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove background playback restrictions","description":"Removes restrictions on background playback, including for kids videos.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove background playback restrictions","description":"Removes restrictions on background playback, including for music and kids videos.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove subreddit dialog","description":"Adds options to remove the NSFW community warning and notifications suggestion dialogs by dismissing them automatically.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove viewer discretion dialog","description":"Adds an option to remove the dialog that appears when opening a video that has been age-restricted by accepting it automatically. This does not bypass the age restriction.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove viewer discretion dialog","description":"Adds an option to remove the dialog that appears when opening a video that has been age-restricted by accepting it automatically. This does not bypass the age restriction.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Restore old style library shelf","description":"Adds an option to return the Library tab to the old style.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Return YouTube Dislike","description":"Adds an option to show the dislike count of songs using the Return YouTube Dislike API.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Return YouTube Dislike","description":"Adds an option to show the dislike count of videos using the Return YouTube Dislike API.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Sanitize sharing links","description":"Adds an option to remove tracking query parameters from URLs when sharing links.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Sanitize sharing links","description":"Adds an option to remove tracking query parameters from URLs when sharing links.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Sanitize sharing links","description":"Adds an option to remove tracking query parameters from URLs when sharing links.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Seekbar components","description":"Adds options to hide or change components related to the seekbar.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Settings for Reddit","description":"Applies mandatory patches to implement ReVanced Extended settings into the application.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"RVXSettingsMenuName","default":"ReVanced Extended","values":null,"title":"RVX settings menu name","description":"The name of the RVX settings menu.","required":true}]},{"name":"Settings for YouTube","description":"Applies mandatory patches to implement ReVanced Extended settings into the application.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"InsertPosition","default":"About","values":{"Parent settings":"@string/parent_tools_key","General":"@string/general_key","Account":"@string/account_switcher_key","Data saving":"@string/data_saving_settings_key","Autoplay":"@string/auto_play_key","Video quality preferences":"@string/video_quality_settings_key","Background":"@string/offline_key","Watch on TV":"@string/pair_with_tv_key","Manage all history":"@string/history_key","Your data in YouTube":"@string/your_data_key","Privacy":"@string/privacy_key","History \u0026 privacy":"@string/privacy_key","Try experimental new features":"@string/premium_early_access_browse_page_key","Purchases and memberships":"@string/subscription_product_setting_key","Billing \u0026 payments":"@string/billing_and_payment_key","Billing and payments":"@string/billing_and_payment_key","Notifications":"@string/notification_key","Connected apps":"@string/connected_accounts_browse_page_key","Live chat":"@string/live_chat_key","Captions":"@string/captions_key","Accessibility":"@string/accessibility_settings_key","About":"@string/about_key"},"title":"Insert position","description":"The settings menu name that the RVX settings menu should be above.","required":true},{"key":"RVXSettingsMenuName","default":"ReVanced Extended","values":null,"title":"RVX settings menu name","description":"The name of the RVX settings menu.","required":true}]},{"name":"Settings for YouTube Music","description":"Applies mandatory patches to implement ReVanced Extended settings into the application.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"RVXSettingsMenuName","default":"ReVanced Extended","values":null,"title":"RVX settings menu name","description":"The name of the RVX settings menu.","required":true}]},{"name":"Shorts components","description":"Adds options to hide or change components related to YouTube Shorts.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"SponsorBlock","description":"Adds options to enable and configure SponsorBlock, which can skip undesired video segments, such as non-music sections.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"SponsorBlock","description":"Adds options to enable and configure SponsorBlock, which can skip undesired video segments, such as sponsored content.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"OutlineIcon","default":true,"values":null,"title":"Outline icons","description":"Apply the outline icon.","required":true}]},{"name":"Spoof app version","description":"Adds options to spoof the YouTube Music client version. This can remove the radio mode restriction in Canadian regions or disable real-time lyrics.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Spoof app version","description":"Adds options to spoof the YouTube client version. This can be used to restore old UI elements and features.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Spoof streaming data","description":"Adds options to spoof the streaming data to allow video playback.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Spoof watch history","description":"Adds an option to change the domain of the watch history or check its status.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Swipe controls","description":"Adds options for controlling volume and brightness with swiping, and whether to enter fullscreen when swiping down below the player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Theme","description":"Changes the app\u0027s theme to the values specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"DarkThemeBackgroundColor","default":"@android:color/black","values":{"Amoled Black":"@android:color/black","Catppuccin (Mocha)":"#FF181825","Dark Pink":"#FF290025","Dark Blue":"#FF001029","Dark Green":"#FF002905","Dark Yellow":"#FF282900","Dark Orange":"#FF291800","Dark Red":"#FF290000"},"title":"Dark theme background color","description":"Can be a hex color (#AARRGGBB) or a color resource reference.","required":true},{"key":"LightThemeBackgroundColor","default":"@android:color/white","values":{"White":"@android:color/white","Catppuccin (Latte)":"#FFE6E9EF","Light Pink":"#FFFCCFF3","Light Blue":"#FFD1E0FF","Light Green":"#FFCCFFCC","Light Yellow":"#FFFDFFCC","Light Orange":"#FFFFE6CC","Light Red":"#FFFFD6D6"},"title":"Light theme background color","description":"Can be a hex color (#AARRGGBB) or a color resource reference.","required":true}]},{"name":"Toolbar components","description":"Adds options to hide or change components located on the toolbar, such as toolbar buttons, search bar, and header.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Translations","description":"Adds Crowdin translations for YouTube Music.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"CustomLanguage","default":"","values":null,"title":"Custom language file","description":"The file path to the strings.xml file.\nPlease note that applying the strings.xml file will overwrite all existing language translations.","required":false},{"key":"SelectedLanguages","default":"bg-rBG, bn, cs-rCZ, el-rGR, es-rES, fr-rFR, hu-rHU, id-rID, in, it-rIT, ja-rJP, ko-rKR, nl-rNL, pl-rPL, pt-rBR, ro-rRO, ru-rRU, tr-rTR, uk-rUA, vi-rVN, zh-rCN, zh-rTW","values":null,"title":"Selected RVX languages","description":"Selected RVX languages that will be added.","required":false},{"key":"SelectedAppLanguages","default":"af, am, ar, ar-rXB, as, az, b+es+419, b+sr+Latn, be, bg, bn, bs, ca, cs, da, de, el, en-rAU, en-rCA, en-rGB, en-rIN, en-rXA, en-rXC, es, es-rUS, et, eu, fa, fi, fr, fr-rCA, gl, gu, hi, hr, hu, hy, id, in, is, it, iw, ja, ka, kk, km, kn, ko, ky, lo, lt, lv, mk, ml, mn, mr, ms, my, nb, ne, nl, no, or, pa, pl, pt, pt-rBR, pt-rPT, ro, ru, si, sk, sl, sq, sr, sv, sw, ta, te, th, tl, tr, uk, ur, uz, vi, zh, zh-rCN, zh-rHK, zh-rTW, zu","values":null,"title":"Selected app languages","description":"Selected app languages that will be kept, languages that are not in the list will be removed from the app.","required":false}]},{"name":"Translations","description":"Add Crowdin translations for YouTube.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"CustomLanguage","default":"","values":null,"title":"Custom language file","description":"The file path to the strings.xml file.\nPlease note that applying the strings.xml file will overwrite all existing language translations.","required":false},{"key":"SelectedLanguages","default":"ar, bg-rBG, bn, de-rDE, el-rGR, es-rES, fi-rFI, fr-rFR, hu-rHU, id-rID, in, it-rIT, ja-rJP, ko-rKR, pl-rPL, pt-rBR, ru-rRU, tr-rTR, uk-rUA, vi-rVN, zh-rCN, zh-rTW","values":null,"title":"Selected RVX languages","description":"Selected RVX languages that will be added.","required":false},{"key":"SelectedAppLanguages","default":"af, am, ar, ar-rXB, as, az, b+es+419, b+sr+Latn, be, bg, bn, bs, ca, cs, da, de, el, en-rAU, en-rCA, en-rGB, en-rIN, en-rXA, en-rXC, es, es-rUS, et, eu, fa, fi, fr, fr-rCA, gl, gu, hi, hr, hu, hy, id, in, is, it, iw, ja, ka, kk, km, kn, ko, ky, lo, lt, lv, mk, ml, mn, mr, ms, my, nb, ne, nl, no, or, pa, pl, pt, pt-rBR, pt-rPT, ro, ru, si, sk, sl, sq, sr, sv, sw, ta, te, th, tl, tr, uk, ur, uz, vi, zh, zh-rCN, zh-rHK, zh-rTW, zu","values":null,"title":"Selected app languages","description":"Selected app languages that will be kept, languages that are not in the list will be removed from the app.","required":false}]},{"name":"Video playback","description":"Adds options to customize settings related to video playback, such as default video quality and playback speed.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Video playback","description":"Adds options to customize settings related to video playback, such as default video quality and playback speed.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Visual preferences icons","description":"Adds icons to specific preferences in the settings.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"ExtendedIcon","default":"Extension","values":{"Custom branding icon":"custom_branding_icon","Extension":"extension","Gear":"gear","ReVanced":"revanced","ReVanced Colored":"revanced_colored"},"title":"Extended icon","description":"Apply different icons for Extended preference.","required":false}]},{"name":"Visual preferences icons","description":"Adds icons to specific preferences in the settings.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"ExtendedIcon","default":"Extension","values":{"Custom branding icon":"custom_branding_icon","Extension":"extension","Gear":"gear","ReVanced":"revanced","ReVanced Colored":"revanced_colored"},"title":"RVX settings menu icon","description":"The icon for the RVX settings menu.","required":true}]}] \ No newline at end of file From 8e0d6a08bbec51d8371cf5d71c4825d994bd798e Mon Sep 17 00:00:00 2001 From: Patriot99 <31535921+Patriot99@users.noreply.github.com> Date: Tue, 17 Sep 2024 12:14:20 +0200 Subject: [PATCH 56/63] chore(YouTube - Translations): Update `Polish` (#833) --- .../translations/pl-rPL/missing_strings.xml | 18 ------------------ .../youtube/translations/pl-rPL/strings.xml | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 18 deletions(-) delete mode 100644 src/main/resources/youtube/translations/pl-rPL/missing_strings.xml diff --git a/src/main/resources/youtube/translations/pl-rPL/missing_strings.xml b/src/main/resources/youtube/translations/pl-rPL/missing_strings.xml deleted file mode 100644 index d22a1f7f3..000000000 --- a/src/main/resources/youtube/translations/pl-rPL/missing_strings.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - "Home / Subscription / Search results are filtered to hide videos with views less or greater than a specified number. - -Limitations: -• Shorts cannot be hidden. -• Videos with 0 views are not filtered." - About view count filtering - Videos in home feed are not filtered. - Videos in home feed are filtered. - Hide home videos by views - Search results are not filtered. - Search results are filtered. - Hide search results by views - Videos in subscriptions feed are not filtered. - Videos in subscriptions feed are filtered. - Hide subscription videos by views - diff --git a/src/main/resources/youtube/translations/pl-rPL/strings.xml b/src/main/resources/youtube/translations/pl-rPL/strings.xml index 7ce8d1584..87a76d2f9 100644 --- a/src/main/resources/youtube/translations/pl-rPL/strings.xml +++ b/src/main/resources/youtube/translations/pl-rPL/strings.xml @@ -948,7 +948,16 @@ Autoodtwarzanie można zmienić w ustawieniach YouTube: Transkrypcje Widoczne Ukryte + Na stronie głównej Reklamy w filmach + Włączone + Wyłączone + Włączone + Wyłączone + W wynikach wyszukiwania + Włączone + Wyłączone + Na stronie subskrypcji Filmy o czasie trwania większym od tej liczby zostaną ukryte Dłuższe od czasu trwania Filmy o czasie trwania mniejszym od tej liczby zostaną ukryte @@ -962,6 +971,12 @@ Autoodtwarzanie można zmienić w ustawieniach YouTube: Filmy z wyświetleniami mniejszymi niż ta liczba zostaną ukryte Mniej popularne tys. -> 1 000\nmln -> 1 000 000\nmld - > 1 000 000 000\n wyświetleń-> views + O filtrowaniu filmów po wyświetleniach + "Strona główna / subskrypcje / wyniki wyszukiwania są filtrowane, by ukrywać filmy z ilością wyświetleń mniejszą bądź większą od określonej liczby. + +Ograniczenia: +• Shortsy nie mogą zostać ukryte +• Filmy z 0 wyświetleń nie są filtrowane" Określ swój szablon językowy dla liczby wyświetleń pod każdym filmem w interfejsie użytkownika. Każdy klucz (litera/słowo w twoim języku) - > wartość (znaczenie klucza) musi znajdować się w nowej linii. Klucze muszą znajdować się przed znakiem \"->\". Jeśli zmienisz język aplikacji, musisz zresetować to ustawienie.\n\nPrzykłady:\nAngielski: 10K views = K -> 1000, views -> views\nPolski: 10 tys. wyświetleń = tys -> 1000, wyświetleń -> views Wyświetl klucze Widoczne From fd5b5e68a3dde895baa212e805293f0e3f57a1b6 Mon Sep 17 00:00:00 2001 From: Aaron Veil <70171475+anddea@users.noreply.github.com> Date: Tue, 17 Sep 2024 19:44:29 +0300 Subject: [PATCH 57/63] feat(YouTube - SponsorBlock): Make new segment window draggable --- .../youtube/utils/sponsorblock/SponsorBlockPatch.kt | 2 ++ .../default/drawable/revanced_sb_drag_handle.xml | 10 ++++++++++ .../outline/drawable/revanced_sb_drag_handle.xml | 10 ++++++++++ .../outline/layout/revanced_sb_new_segment.xml | 8 ++++++++ 4 files changed, 30 insertions(+) create mode 100644 src/main/resources/youtube/sponsorblock/default/drawable/revanced_sb_drag_handle.xml create mode 100644 src/main/resources/youtube/sponsorblock/outline/drawable/revanced_sb_drag_handle.xml diff --git a/src/main/kotlin/app/revanced/patches/youtube/utils/sponsorblock/SponsorBlockPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/utils/sponsorblock/SponsorBlockPatch.kt index 03c313f5d..4c13a016f 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/utils/sponsorblock/SponsorBlockPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/utils/sponsorblock/SponsorBlockPatch.kt @@ -59,6 +59,7 @@ object SponsorBlockPatch : BaseResourcePatch( "revanced_sb_adjust.xml", "revanced_sb_backward.xml", "revanced_sb_compare.xml", + "revanced_sb_drag_handle.xml", "revanced_sb_edit.xml", "revanced_sb_forward.xml", "revanced_sb_logo.xml", @@ -78,6 +79,7 @@ object SponsorBlockPatch : BaseResourcePatch( "drawable", "revanced_sb_adjust.xml", "revanced_sb_compare.xml", + "revanced_sb_drag_handle.xml", "revanced_sb_edit.xml", "revanced_sb_logo.xml", "revanced_sb_publish.xml", diff --git a/src/main/resources/youtube/sponsorblock/default/drawable/revanced_sb_drag_handle.xml b/src/main/resources/youtube/sponsorblock/default/drawable/revanced_sb_drag_handle.xml new file mode 100644 index 000000000..82e4ff452 --- /dev/null +++ b/src/main/resources/youtube/sponsorblock/default/drawable/revanced_sb_drag_handle.xml @@ -0,0 +1,10 @@ + + + diff --git a/src/main/resources/youtube/sponsorblock/outline/drawable/revanced_sb_drag_handle.xml b/src/main/resources/youtube/sponsorblock/outline/drawable/revanced_sb_drag_handle.xml new file mode 100644 index 000000000..82e4ff452 --- /dev/null +++ b/src/main/resources/youtube/sponsorblock/outline/drawable/revanced_sb_drag_handle.xml @@ -0,0 +1,10 @@ + + + diff --git a/src/main/resources/youtube/sponsorblock/outline/layout/revanced_sb_new_segment.xml b/src/main/resources/youtube/sponsorblock/outline/layout/revanced_sb_new_segment.xml index 7fbda428e..db33b9dab 100644 --- a/src/main/resources/youtube/sponsorblock/outline/layout/revanced_sb_new_segment.xml +++ b/src/main/resources/youtube/sponsorblock/outline/layout/revanced_sb_new_segment.xml @@ -10,6 +10,14 @@ android:gravity="start|center" android:orientation="vertical"> + + From b956855183f3f6c85a41e0d3812da6ff71ec8157 Mon Sep 17 00:00:00 2001 From: Aaron Veil <70171475+anddea@users.noreply.github.com> Date: Tue, 17 Sep 2024 20:08:42 +0300 Subject: [PATCH 58/63] feat(YouTube - Seekbar components): Add patch options to set Cairo seekbar colors --- .../player/seekbar/SeekbarComponentsPatch.kt | 37 ++++++++++++++++--- 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/seekbar/SeekbarComponentsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/player/seekbar/SeekbarComponentsPatch.kt index 17265a15d..04a6e3b86 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/player/seekbar/SeekbarComponentsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/player/seekbar/SeekbarComponentsPatch.kt @@ -5,8 +5,10 @@ import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.PatchException +import app.revanced.patcher.patch.options.PatchOption.PatchExtensions.stringPatchOption import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod import app.revanced.patcher.util.smali.ExternalLabel +import app.revanced.patches.music.player.components.PlayerComponentsResourcePatch import app.revanced.patches.shared.drawable.DrawableColorPatch import app.revanced.patches.youtube.player.seekbar.fingerprints.CairoSeekbarConfigFingerprint import app.revanced.patches.youtube.player.seekbar.fingerprints.ControlsOverlayStyleFingerprint @@ -29,14 +31,10 @@ import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.Inlin import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelTimeBarPlayedColor import app.revanced.patches.youtube.utils.settings.SettingsPatch import app.revanced.patches.youtube.utils.settings.SettingsPatch.contexts +import app.revanced.patches.youtube.utils.settings.SettingsPatch.updatePatchStatus import app.revanced.patches.youtube.video.information.VideoInformationPatch -import app.revanced.util.getTargetIndexOrThrow -import app.revanced.util.getTargetIndexWithMethodReferenceNameOrThrow -import app.revanced.util.getWalkerMethod -import app.revanced.util.getWideLiteralInstructionIndex -import app.revanced.util.literalInstructionBooleanHook +import app.revanced.util.* import app.revanced.util.patch.BaseBytecodePatch -import app.revanced.util.resultOrThrow import com.android.tools.smali.dexlib2.Opcode import com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction35c import com.android.tools.smali.dexlib2.dexbacked.reference.DexBackedMethodReference @@ -71,6 +69,20 @@ object SeekbarComponentsPatch : BaseBytecodePatch( TotalTimeFingerprint ) ) { + private val CairoStartColor by stringPatchOption( + key = "CairoStartColor", + default = "#ffff2791", + title = "Cairo start color", + description = "Set Cairo start color for the seekbar." + ) + + private val CairoEndColor by stringPatchOption( + key = "CairoEndColor", + default = "#ffff0033", + title = "Cairo end color", + description = "Set Cairo end color for the seekbar." + ) + override fun execute(context: BytecodeContext) { var settingArray = arrayOf( @@ -201,6 +213,19 @@ object SeekbarComponentsPatch : BaseBytecodePatch( scaleNode.replaceChild(replacementNode, shapeNode) } + contexts.xmlEditor["res/values/colors.xml"].use { editor -> + editor.file.doRecursively loop@{ node -> + if (node is Element && node.tagName == "color") { + if (node.getAttribute("name") == "yt_youtube_magenta") { + node.textContent = CairoStartColor + } + if (node.getAttribute("name") == "yt_youtube_red_cairo") { + node.textContent = CairoEndColor + } + } + } + } + // endregion // region patch for hide chapter From ac08786e3248f8d8a994b3941237e515396fd578 Mon Sep 17 00:00:00 2001 From: Xisrr1 <133952156+Xisrr1@users.noreply.github.com> Date: Tue, 17 Sep 2024 20:27:57 +0300 Subject: [PATCH 59/63] feat(YouTube - Custom branding icon): New themed icon for `Xisr Yellow` (#831) --- ...daptive_monochrome_ic_youtube_launcher.xml | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/main/resources/youtube/branding/xisr_yellow/monochrome/drawable/adaptive_monochrome_ic_youtube_launcher.xml b/src/main/resources/youtube/branding/xisr_yellow/monochrome/drawable/adaptive_monochrome_ic_youtube_launcher.xml index bccffaf59..2428be1bb 100644 --- a/src/main/resources/youtube/branding/xisr_yellow/monochrome/drawable/adaptive_monochrome_ic_youtube_launcher.xml +++ b/src/main/resources/youtube/branding/xisr_yellow/monochrome/drawable/adaptive_monochrome_ic_youtube_launcher.xml @@ -1,18 +1,18 @@ - - - - + + + + + From 0453052d891d2ec8f5c8ea3ed0310984c63794eb Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 17 Sep 2024 17:29:53 +0000 Subject: [PATCH 60/63] chore(release): 2.229.0-dev.6 [skip ci] # [2.229.0-dev.6](https://github.com/anddea/revanced-patches/compare/v2.229.0-dev.5...v2.229.0-dev.6) (2024-09-17) ### Features * **YouTube - Custom branding icon:** New themed icon for `Xisr Yellow` ([#831](https://github.com/anddea/revanced-patches/issues/831)) ([ac08786](https://github.com/anddea/revanced-patches/commit/ac08786e3248f8d8a994b3941237e515396fd578)) * **YouTube - Seekbar components:** Add patch options to set Cairo seekbar colors ([b956855](https://github.com/anddea/revanced-patches/commit/b956855183f3f6c85a41e0d3812da6ff71ec8157)) * **YouTube - SponsorBlock:** Make new segment window draggable ([fd5b5e6](https://github.com/anddea/revanced-patches/commit/fd5b5e68a3dde895baa212e805293f0e3f57a1b6)) --- CHANGELOG.md | 9 +++++++++ gradle.properties | 2 +- patches.json | 2 +- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6784dfa79..264617e0a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +# [2.229.0-dev.6](https://github.com/anddea/revanced-patches/compare/v2.229.0-dev.5...v2.229.0-dev.6) (2024-09-17) + + +### Features + +* **YouTube - Custom branding icon:** New themed icon for `Xisr Yellow` ([#831](https://github.com/anddea/revanced-patches/issues/831)) ([ac08786](https://github.com/anddea/revanced-patches/commit/ac08786e3248f8d8a994b3941237e515396fd578)) +* **YouTube - Seekbar components:** Add patch options to set Cairo seekbar colors ([b956855](https://github.com/anddea/revanced-patches/commit/b956855183f3f6c85a41e0d3812da6ff71ec8157)) +* **YouTube - SponsorBlock:** Make new segment window draggable ([fd5b5e6](https://github.com/anddea/revanced-patches/commit/fd5b5e68a3dde895baa212e805293f0e3f57a1b6)) + # [2.229.0-dev.5](https://github.com/anddea/revanced-patches/compare/v2.229.0-dev.4...v2.229.0-dev.5) (2024-09-16) diff --git a/gradle.properties b/gradle.properties index 19514f310..f6b3321f6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.parallel = true org.gradle.caching = true kotlin.code.style = official -version = 2.229.0-dev.5 +version = 2.229.0-dev.6 diff --git a/patches.json b/patches.json index 3351cf383..65b403fb8 100644 --- a/patches.json +++ b/patches.json @@ -1 +1 @@ -[{"name":"Alternative thumbnails","description":"Adds options to replace video thumbnails using the DeArrow API or image captures from the video.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Ambient mode control","description":"Adds options to disable Ambient mode and to bypass Ambient mode restrictions.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Amoled","description":"Applies a pure black theme to some components.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Bitrate default value","description":"Sets the audio quality to \u0027Always High\u0027 when you first install the app.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Bypass image region restrictions","description":"Adds an option to use a different host for static images, so that images blocked in some countries can be received.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Bypass image region restrictions","description":"Adds an option to use a different host for static images, so that images blocked in some countries can be received.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Certificate spoof","description":"Enables YouTube Music to work with Android Auto by spoofing the YouTube Music certificate.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change package name","description":"Changes the package name for Reddit to the name specified in options.json.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"PackageNameReddit","default":"com.reddit.frontpage","values":{"Clone":"com.reddit.frontpage.revanced","Default":"com.reddit.frontpage.rvx","Original":"com.reddit.frontpage"},"title":"Package name of Reddit","description":"The name of the package to rename the app to.","required":true}]},{"name":"Change player flyout menu toggles","description":"Adds an option to use text toggles instead of switch toggles within the additional settings menu.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change share sheet","description":"Add option to change from in-app share sheet to system share sheet.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change share sheet","description":"Add option to change from in-app share sheet to system share sheet.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change start page","description":"Adds an option to set which page the app opens in instead of the homepage.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change start page","description":"Adds an option to set which page the app opens in instead of the homepage.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change version code","description":"Changes the version code of the app to the value specified in options.json. Except when mounting, this can prevent app stores from updating the app and allow the app to be installed over an existing installation that has a higher version code. By default, the highest version code is set.","compatiblePackages":null,"use":false,"requiresIntegrations":false,"options":[{"key":"ChangeVersionCode","default":false,"values":null,"title":"Change version code","description":"Changes the version code of the app.","required":true},{"key":"VersionCode","default":"2147483647","values":null,"title":"Version code","description":"The version code to use. (1 ~ 2147483647)","required":true}]},{"name":"Custom Shorts action buttons","description":"Changes, at compile time, the icon of the action buttons of the Shorts player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"IconType","default":"round","values":{"Outline":"outline","OutlineCircle":"outlinecircle","Round":"round","YouTube":"youtube","YouTubeOutline":"youtubeoutline"},"title":"Shorts icon style ","description":"The style of the icons for the action buttons in the Shorts player.","required":true}]},{"name":"Custom branding icon for YouTube","description":"Changes the YouTube app icon to the icon specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppIcon","default":"Xisr Yellow","values":{"AFN Blue":"afn_blue","AFN Red":"afn_red","MMT":"mmt","MMT Blue":"mmt_blue","MMT Green":"mmt_green","MMT Yellow":"mmt_yellow","Revancify Blue":"revancify_blue","Revancify Red":"revancify_red","Vanced Black":"vanced_black","Vanced Light":"vanced_light","Xisr Yellow":"xisr_yellow","YouTube":"youtube"},"title":"App icon","description":"The icon to apply to the app.\n\nIf a path to a folder is provided, the folder must contain the following folders:\n\n- mipmap-xxxhdpi\n- mipmap-xxhdpi\n- mipmap-xhdpi\n- mipmap-hdpi\n- mipmap-mdpi\n\nEach of these folders must contain the following files:\n\n- adaptiveproduct_youtube_background_color_108.png\n- adaptiveproduct_youtube_foreground_color_108.png\n- ic_launcher.png\n- ic_launcher_round.png","required":true},{"key":"ChangeHeader","default":true,"values":null,"title":"Change header","description":"Apply the custom branding icon to the header.","required":true},{"key":"CustomHeader","default":"","values":null,"title":"Custom header","description":"The header to apply to the app.\n\nIf a path to a folder is provided, the folder must contain one or more of the following folders, depending on the DPI of the device:\n\n- drawable-xxxhdpi\n- drawable-xxhdpi\n- drawable-xhdpi\n- drawable-hdpi\n- drawable-mdpi\n\nEach of the folders must contain all of the following files:\n\n- yt_premium_wordmark_header_dark.png\n- yt_premium_wordmark_header_light.png\n- yt_wordmark_header_dark.png\n- yt_wordmark_header_light.png\n\nThe image dimensions must be as follows:\n- drawable-xxxhdpi: 512px x 192px\n- drawable-xxhdpi: 387px x 144px\n- drawable-xhdpi: 258px x 96px\n- drawable-hdpi: 194px x 72px\n- drawable-mdpi: 129px x 48px","required":true},{"key":"ChangeSplashIcon","default":true,"values":null,"title":"Change splash icons","description":"Apply the custom branding icon to the splash screen.","required":true},{"key":"RestoreOldSplashAnimation","default":true,"values":null,"title":"Restore old splash animation","description":"Restore the old style splash animation.","required":true}]},{"name":"Custom branding icon for YouTube Music","description":"Changes the YouTube Music app icon to the icon specified in options.json.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppIcon","default":"Xisr Yellow","values":{"AFN Blue":"afn_blue","AFN Red":"afn_red","MMT":"mmt","MMT Blue":"mmt_blue","MMT Green":"mmt_green","MMT Yellow":"mmt_yellow","Revancify Blue":"revancify_blue","Revancify Red":"revancify_red","Vanced Black":"vanced_black","Vanced Light":"vanced_light","Xisr Yellow":"xisr_yellow","YouTube Music":"youtube_music"},"title":"App icon","description":"The icon to apply to the app.\n\nIf a path to a folder is provided, the folder must contain the following folders:\n\n- mipmap-xxxhdpi\n- mipmap-xxhdpi\n- mipmap-xhdpi\n- mipmap-hdpi\n- mipmap-mdpi\n\nEach of these folders must contain the following files:\n\n- adaptiveproduct_youtube_music_background_color_108.png\n- adaptiveproduct_youtube_music_foreground_color_108.png\n- ic_launcher_release.png","required":true},{"key":"ChangeHeader","default":true,"values":null,"title":"Change header","description":"Apply the custom branding icon to the header.","required":true},{"key":"ChangeSplashIcon","default":true,"values":null,"title":"Change splash icons","description":"Apply the custom branding icon to the splash screen.","required":true},{"key":"RestoreOldSplashIcon","default":false,"values":null,"title":"Restore old splash icon","description":"Restore the old style splash icon.\n\nIf you enable both the old style splash icon and the Cairo splash animation,\n\nOld style splash icon will appear first and then the Cairo splash animation will start.","required":true}]},{"name":"Custom branding name for Reddit","description":"Renames the Reddit app to the name specified in options.json.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppName","default":"Reddit","values":{"Default":"RVX Reddit","Original":"Reddit"},"title":"App name","description":"The name of the app.","required":true}]},{"name":"Custom branding name for YouTube","description":"Renames the YouTube app to the name specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppName","default":"RVX","values":{"ReVanced Extended":"ReVanced Extended","RVX":"RVX","YouTube RVX":"YouTube RVX","YouTube":"YouTube"},"title":"App name","description":"The name of the app.","required":true}]},{"name":"Custom branding name for YouTube Music","description":"Renames the YouTube Music app to the name specified in options.json.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppNameNotification","default":"RVX Music","values":{"ReVanced Extended Music":"ReVanced Extended Music","RVX Music":"RVX Music","YouTube Music":"YouTube Music","YT Music":"YT Music"},"title":"App name in notification panel","description":"The name of the app as it appears in the notification panel.","required":true},{"key":"AppNameLauncher","default":"RVX Music","values":{"ReVanced Extended Music":"ReVanced Extended Music","RVX Music":"RVX Music","YouTube Music":"YouTube Music","YT Music":"YT Music"},"title":"App name in launcher","description":"The name of the app as it appears in the launcher.","required":true}]},{"name":"Custom double tap length","description":"Adds Double-tap to seek values that are specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"DoubleTapLengthArrays","default":"3, 5, 10, 15, 20, 30, 60, 120, 180","values":null,"title":"Double-tap to seek values","description":"A list of custom Double-tap to seek lengths to be added, separated by commas.","required":true}]},{"name":"Custom header for YouTube Music","description":"Applies a custom header in the top left corner within the app.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"CustomHeader","default":"custom_branding_icon","values":{"Custom branding icon":"custom_branding_icon"},"title":"Custom header","description":"The header to apply to the app.\n\nPatch option \u0027Custom branding icon\u0027 applies only when:\n\n1. Patch \u0027Custom branding icon for YouTube Music\u0027 is included.\n2. Patch option for \u0027Custom branding icon for YouTube Music\u0027 is selected from the preset.\n\nIf a path to a folder is provided, the folder must contain one or more of the following folders, depending on the DPI of the device:\n\n- drawable-xxxhdpi\n- drawable-xxhdpi\n- drawable-xhdpi\n- drawable-hdpi\n- drawable-mdpi\n\nEach of the folders must contain all of the following files:\n\n- action_bar_logo.png\n- logo_music.png\n- ytm_logo.png\n\nThe image \u0027action_bar_logo.png\u0027 dimensions must be as follows:\n\n- drawable-xxxhdpi: 320px x 96px\n- drawable-xxhdpi: 240px x 72px\n- drawable-xhdpi: 160px x 48px\n- drawable-hdpi: 121px x 36px\n- drawable-mdpi: 80px x 24px\n\nThe image \u0027logo_music.png\u0027 dimensions must be as follows:\n\n- drawable-xxxhdpi: 576px x 200px\n- drawable-xxhdpi: 432px x 150px\n- drawable-xhdpi: 288px x 100px\n- drawable-hdpi: 217px x 76px\n- drawable-mdpi: 144px x 50px\n\nThe image \u0027ytm_logo.png\u0027 dimensions must be as follows:\n\n- drawable-xxxhdpi: 412px x 144px\n- drawable-xxhdpi: 309px x 108px\n- drawable-xhdpi: 206px x 72px\n- drawable-hdpi: 155px x 54px\n- drawable-mdpi: 103px x 36px","required":true}]},{"name":"Description components","description":"Adds options to hide and disable description components.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable Cairo splash animation","description":"Adds an option to disable Cairo splash animation.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["7.06.54","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable QUIC protocol","description":"Adds an option to disable CronetEngine\u0027s QUIC protocol.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable auto audio tracks","description":"Adds an option to disable audio tracks from being automatically enabled.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable auto captions","description":"Adds an option to disable captions from being automatically enabled.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable auto captions","description":"Adds an option to disable captions from being automatically enabled.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable dislike redirection","description":"Adds an option to disable redirection to the next track when clicking the Dislike button.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable haptic feedback","description":"Adds options to disable haptic feedback when swiping in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable resuming Shorts on startup","description":"Adds an option to disable the Shorts player from resuming on app startup when Shorts were last being watched.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable screenshot popup","description":"Adds an option to disable the popup that appears when taking a screenshot.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable splash animation","description":"Adds an option to disable the splash animation on app startup.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable OPUS codec","description":"Adds an option to use the OPUS audio codec instead of the MP4A audio codec.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable OPUS codec","description":"Adds an options to enable the OPUS audio codec if the player response includes.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable debug logging","description":"Adds an option to enable debug logging.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable debug logging","description":"Adds an option to enable debug logging.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable external browser","description":"Adds an option to always open links in your browser instead of in the in-app-browser.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable gradient loading screen","description":"Adds an option to enable the gradient loading screen.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable landscape mode","description":"Adds an option to enable landscape mode when rotating the screen on phones.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable open links directly","description":"Adds an option to skip over redirection URLs in external links.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Flyout menu components","description":"Adds options to hide or change flyout menu components.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Force player buttons background","description":"Changes, at compile time, the dark background surrounding the video player controls.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"BackgroundColor","default":"?ytOverlayBackgroundMediumLight","values":{"Default":"?ytOverlayBackgroundMediumLight","Transparent":"@android:color/transparent","Opacity10":"#1a000000","Opacity20":"#33000000","Opacity30":"#4d000000","Opacity40":"#66000000","Opacity50":"#80000000","Opacity60":"#99000000","Opacity70":"#b3000000","Opacity80":"#cc000000","Opacity90":"#e6000000","Opacity100":"#ff000000"},"title":"Background color","description":"Specify a background color for player buttons using a hex color code. The first two symbols of the hex code represent the alpha channel, which is used to change the opacity.","required":false}]},{"name":"Force snackbar theme","description":"Force snackbar background color to match selected theme.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"CornerRadius","default":"8.0dip","values":null,"title":"Corner radius","description":"Specify a corner radius for the snackbar.","required":false},{"key":"BackgroundColor","default":"?ytChipBackground","values":{"Chip":"?ytChipBackground","Base":"?ytBaseBackground"},"title":"Background color","description":"Specify a background color for the snackbar. You can specify hex color.","required":false},{"key":"StrokeColor","default":"none","values":{"None":"none","Accent":"?attr/colorAccent","Inverted":"?attr/ytInvertedBackground"},"title":"Stroke color","description":"Specify a stroke color for the snackbar. You can specify hex color.","required":false}]},{"name":"Fullscreen components","description":"Adds options to hide or change components related to fullscreen.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"GmsCore support","description":"Allows patched Google apps to run without root and under a different package name by using GmsCore instead of Google Play Services.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"GmsCoreVendorGroupId","default":"app.revanced","values":{"ReVanced":"app.revanced"},"title":"GmsCore vendor group ID","description":"The vendor\u0027s group ID for GmsCore.","required":true},{"key":"CheckGmsCore","default":true,"values":null,"title":"Check GmsCore","description":"Check if GmsCore is installed on the device and has battery optimizations disabled when the app starts. \n\nIf GmsCore is not installed the app will not work, so disabling this is not recommended.","required":true},{"key":"PackageNameYouTube","default":"anddea.youtube","values":{"Clone":"bill.youtube","Default":"anddea.youtube"},"title":"Package name of YouTube","description":"The name of the package to use in GmsCore support.","required":true},{"key":"PackageNameYouTubeMusic","default":"anddea.youtube.music","values":{"Clone":"bill.youtube.music","Default":"anddea.youtube.music"},"title":"Package name of YouTube Music","description":"The name of the package to use in GmsCore support.","required":true}]},{"name":"GmsCore support","description":"Allows patched Google apps to run without root and under a different package name by using GmsCore instead of Google Play Services.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"GmsCoreVendorGroupId","default":"app.revanced","values":{"ReVanced":"app.revanced"},"title":"GmsCore vendor group ID","description":"The vendor\u0027s group ID for GmsCore.","required":true},{"key":"CheckGmsCore","default":true,"values":null,"title":"Check GmsCore","description":"Check if GmsCore is installed on the device and has battery optimizations disabled when the app starts. \n\nIf GmsCore is not installed the app will not work, so disabling this is not recommended.","required":true},{"key":"PackageNameYouTube","default":"anddea.youtube","values":{"Clone":"bill.youtube","Default":"anddea.youtube"},"title":"Package name of YouTube","description":"The name of the package to use in GmsCore support.","required":true},{"key":"PackageNameYouTubeMusic","default":"anddea.youtube.music","values":{"Clone":"bill.youtube.music","Default":"anddea.youtube.music"},"title":"Package name of YouTube Music","description":"The name of the package to use in GmsCore support.","required":true}]},{"name":"Hide Recently Visited shelf","description":"Adds an option to hide the Recently Visited shelf in the sidebar.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide Shorts dimming","description":"Removes, at compile time, the dimming effect at the top and bottom of Shorts videos.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide account components","description":"Adds options to hide components related to the account menu.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide action bar components","description":"Adds options to hide action bar components and replace the offline download button with an external download button.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide action buttons","description":"Adds options to hide action buttons under videos.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide ads","description":"Adds options to hide ads.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":true,"options":[]},{"name":"Hide ads","description":"Adds options to hide ads.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide ads","description":"Adds options to hide ads.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide comments components","description":"Adds options to hide components related to comments.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide feed components","description":"Adds options to hide components related to feeds.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide feed flyout menu","description":"Adds the ability to hide feed flyout menu components using a custom filter.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide layout components","description":"Adds options to hide general layout components.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide layout components","description":"Adds options to hide general layout components.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide navigation buttons","description":"Adds options to hide buttons in the navigation bar.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide overlay filter","description":"Removes, at compile time, the dark overlay that appears when player flyout menus are open.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide player buttons","description":"Adds options to hide buttons in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide player flyout menu","description":"Adds options to hide player flyout menu components.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide player overlay filter","description":"Removes, at compile time, the dark overlay that appears when single-tapping in the player.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide recommended communities shelf","description":"Adds an option to hide the recommended communities shelves in subreddits.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hook download actions","description":"Adds support to download videos with an external downloader app using the in-app download button.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Layout switch","description":"Adds an option to spoof the dpi in order to use a tablet or phone layout.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"MaterialYou","description":"Applies the MaterialYou theme for Android 12+ devices.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Miniplayer","description":"Adds options to change the in app minimized player, and if patching target 19.16+ adds options to use modern miniplayers.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Navigation bar components","description":"Adds options to hide or change components related to the navigation bar.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Navigation bar components","description":"Adds options to hide or change components related to the navigation bar.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Open links directly","description":"Adds an option to skip over redirection URLs in external links.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Open links externally","description":"Adds an option to always open links in your browser instead of in the in-app-browser.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Overlay buttons","description":"Adds options to display overlay buttons in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"IconType","default":"rounded","values":{"Bold":"bold","Rounded":"rounded","Thin":"thin"},"title":"Icon type","description":"The icon type.","required":true},{"key":"BottomMargin","default":"5.0dip","values":{"Wider":"10.0dip","Default":"5.0dip"},"title":"Bottom margin","description":"The bottom margin for the overlay buttons and timestamp.","required":true},{"key":"ChangeTopButtons","default":false,"values":null,"title":"Change top buttons","description":"Change the icons at the top of the player.","required":true}]},{"name":"Player components","description":"Adds options to hide or change components related to the player.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Player components","description":"Adds options to hide or change components related to the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Premium icon","description":"Unlocks premium app icons.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove background playback restrictions","description":"Removes restrictions on background playback, including for kids videos.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove background playback restrictions","description":"Removes restrictions on background playback, including for music and kids videos.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove subreddit dialog","description":"Adds options to remove the NSFW community warning and notifications suggestion dialogs by dismissing them automatically.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove viewer discretion dialog","description":"Adds an option to remove the dialog that appears when opening a video that has been age-restricted by accepting it automatically. This does not bypass the age restriction.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove viewer discretion dialog","description":"Adds an option to remove the dialog that appears when opening a video that has been age-restricted by accepting it automatically. This does not bypass the age restriction.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Restore old style library shelf","description":"Adds an option to return the Library tab to the old style.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Return YouTube Dislike","description":"Adds an option to show the dislike count of songs using the Return YouTube Dislike API.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Return YouTube Dislike","description":"Adds an option to show the dislike count of videos using the Return YouTube Dislike API.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Sanitize sharing links","description":"Adds an option to remove tracking query parameters from URLs when sharing links.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Sanitize sharing links","description":"Adds an option to remove tracking query parameters from URLs when sharing links.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Sanitize sharing links","description":"Adds an option to remove tracking query parameters from URLs when sharing links.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Seekbar components","description":"Adds options to hide or change components related to the seekbar.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Settings for Reddit","description":"Applies mandatory patches to implement ReVanced Extended settings into the application.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"RVXSettingsMenuName","default":"ReVanced Extended","values":null,"title":"RVX settings menu name","description":"The name of the RVX settings menu.","required":true}]},{"name":"Settings for YouTube","description":"Applies mandatory patches to implement ReVanced Extended settings into the application.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"InsertPosition","default":"About","values":{"Parent settings":"@string/parent_tools_key","General":"@string/general_key","Account":"@string/account_switcher_key","Data saving":"@string/data_saving_settings_key","Autoplay":"@string/auto_play_key","Video quality preferences":"@string/video_quality_settings_key","Background":"@string/offline_key","Watch on TV":"@string/pair_with_tv_key","Manage all history":"@string/history_key","Your data in YouTube":"@string/your_data_key","Privacy":"@string/privacy_key","History \u0026 privacy":"@string/privacy_key","Try experimental new features":"@string/premium_early_access_browse_page_key","Purchases and memberships":"@string/subscription_product_setting_key","Billing \u0026 payments":"@string/billing_and_payment_key","Billing and payments":"@string/billing_and_payment_key","Notifications":"@string/notification_key","Connected apps":"@string/connected_accounts_browse_page_key","Live chat":"@string/live_chat_key","Captions":"@string/captions_key","Accessibility":"@string/accessibility_settings_key","About":"@string/about_key"},"title":"Insert position","description":"The settings menu name that the RVX settings menu should be above.","required":true},{"key":"RVXSettingsMenuName","default":"ReVanced Extended","values":null,"title":"RVX settings menu name","description":"The name of the RVX settings menu.","required":true}]},{"name":"Settings for YouTube Music","description":"Applies mandatory patches to implement ReVanced Extended settings into the application.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"RVXSettingsMenuName","default":"ReVanced Extended","values":null,"title":"RVX settings menu name","description":"The name of the RVX settings menu.","required":true}]},{"name":"Shorts components","description":"Adds options to hide or change components related to YouTube Shorts.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"SponsorBlock","description":"Adds options to enable and configure SponsorBlock, which can skip undesired video segments, such as non-music sections.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"SponsorBlock","description":"Adds options to enable and configure SponsorBlock, which can skip undesired video segments, such as sponsored content.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"OutlineIcon","default":true,"values":null,"title":"Outline icons","description":"Apply the outline icon.","required":true}]},{"name":"Spoof app version","description":"Adds options to spoof the YouTube Music client version. This can remove the radio mode restriction in Canadian regions or disable real-time lyrics.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Spoof app version","description":"Adds options to spoof the YouTube client version. This can be used to restore old UI elements and features.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Spoof streaming data","description":"Adds options to spoof the streaming data to allow video playback.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Spoof watch history","description":"Adds an option to change the domain of the watch history or check its status.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Swipe controls","description":"Adds options for controlling volume and brightness with swiping, and whether to enter fullscreen when swiping down below the player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Theme","description":"Changes the app\u0027s theme to the values specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"DarkThemeBackgroundColor","default":"@android:color/black","values":{"Amoled Black":"@android:color/black","Catppuccin (Mocha)":"#FF181825","Dark Pink":"#FF290025","Dark Blue":"#FF001029","Dark Green":"#FF002905","Dark Yellow":"#FF282900","Dark Orange":"#FF291800","Dark Red":"#FF290000"},"title":"Dark theme background color","description":"Can be a hex color (#AARRGGBB) or a color resource reference.","required":true},{"key":"LightThemeBackgroundColor","default":"@android:color/white","values":{"White":"@android:color/white","Catppuccin (Latte)":"#FFE6E9EF","Light Pink":"#FFFCCFF3","Light Blue":"#FFD1E0FF","Light Green":"#FFCCFFCC","Light Yellow":"#FFFDFFCC","Light Orange":"#FFFFE6CC","Light Red":"#FFFFD6D6"},"title":"Light theme background color","description":"Can be a hex color (#AARRGGBB) or a color resource reference.","required":true}]},{"name":"Toolbar components","description":"Adds options to hide or change components located on the toolbar, such as toolbar buttons, search bar, and header.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Translations","description":"Adds Crowdin translations for YouTube Music.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"CustomLanguage","default":"","values":null,"title":"Custom language file","description":"The file path to the strings.xml file.\nPlease note that applying the strings.xml file will overwrite all existing language translations.","required":false},{"key":"SelectedLanguages","default":"bg-rBG, bn, cs-rCZ, el-rGR, es-rES, fr-rFR, hu-rHU, id-rID, in, it-rIT, ja-rJP, ko-rKR, nl-rNL, pl-rPL, pt-rBR, ro-rRO, ru-rRU, tr-rTR, uk-rUA, vi-rVN, zh-rCN, zh-rTW","values":null,"title":"Selected RVX languages","description":"Selected RVX languages that will be added.","required":false},{"key":"SelectedAppLanguages","default":"af, am, ar, ar-rXB, as, az, b+es+419, b+sr+Latn, be, bg, bn, bs, ca, cs, da, de, el, en-rAU, en-rCA, en-rGB, en-rIN, en-rXA, en-rXC, es, es-rUS, et, eu, fa, fi, fr, fr-rCA, gl, gu, hi, hr, hu, hy, id, in, is, it, iw, ja, ka, kk, km, kn, ko, ky, lo, lt, lv, mk, ml, mn, mr, ms, my, nb, ne, nl, no, or, pa, pl, pt, pt-rBR, pt-rPT, ro, ru, si, sk, sl, sq, sr, sv, sw, ta, te, th, tl, tr, uk, ur, uz, vi, zh, zh-rCN, zh-rHK, zh-rTW, zu","values":null,"title":"Selected app languages","description":"Selected app languages that will be kept, languages that are not in the list will be removed from the app.","required":false}]},{"name":"Translations","description":"Add Crowdin translations for YouTube.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"CustomLanguage","default":"","values":null,"title":"Custom language file","description":"The file path to the strings.xml file.\nPlease note that applying the strings.xml file will overwrite all existing language translations.","required":false},{"key":"SelectedLanguages","default":"ar, bg-rBG, bn, de-rDE, el-rGR, es-rES, fi-rFI, fr-rFR, hu-rHU, id-rID, in, it-rIT, ja-rJP, ko-rKR, pl-rPL, pt-rBR, ru-rRU, tr-rTR, uk-rUA, vi-rVN, zh-rCN, zh-rTW","values":null,"title":"Selected RVX languages","description":"Selected RVX languages that will be added.","required":false},{"key":"SelectedAppLanguages","default":"af, am, ar, ar-rXB, as, az, b+es+419, b+sr+Latn, be, bg, bn, bs, ca, cs, da, de, el, en-rAU, en-rCA, en-rGB, en-rIN, en-rXA, en-rXC, es, es-rUS, et, eu, fa, fi, fr, fr-rCA, gl, gu, hi, hr, hu, hy, id, in, is, it, iw, ja, ka, kk, km, kn, ko, ky, lo, lt, lv, mk, ml, mn, mr, ms, my, nb, ne, nl, no, or, pa, pl, pt, pt-rBR, pt-rPT, ro, ru, si, sk, sl, sq, sr, sv, sw, ta, te, th, tl, tr, uk, ur, uz, vi, zh, zh-rCN, zh-rHK, zh-rTW, zu","values":null,"title":"Selected app languages","description":"Selected app languages that will be kept, languages that are not in the list will be removed from the app.","required":false}]},{"name":"Video playback","description":"Adds options to customize settings related to video playback, such as default video quality and playback speed.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Video playback","description":"Adds options to customize settings related to video playback, such as default video quality and playback speed.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Visual preferences icons","description":"Adds icons to specific preferences in the settings.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"ExtendedIcon","default":"Extension","values":{"Custom branding icon":"custom_branding_icon","Extension":"extension","Gear":"gear","ReVanced":"revanced","ReVanced Colored":"revanced_colored"},"title":"Extended icon","description":"Apply different icons for Extended preference.","required":false}]},{"name":"Visual preferences icons","description":"Adds icons to specific preferences in the settings.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"ExtendedIcon","default":"Extension","values":{"Custom branding icon":"custom_branding_icon","Extension":"extension","Gear":"gear","ReVanced":"revanced","ReVanced Colored":"revanced_colored"},"title":"RVX settings menu icon","description":"The icon for the RVX settings menu.","required":true}]}] \ No newline at end of file +[{"name":"Alternative thumbnails","description":"Adds options to replace video thumbnails using the DeArrow API or image captures from the video.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Ambient mode control","description":"Adds options to disable Ambient mode and to bypass Ambient mode restrictions.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Amoled","description":"Applies a pure black theme to some components.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Bitrate default value","description":"Sets the audio quality to \u0027Always High\u0027 when you first install the app.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Bypass image region restrictions","description":"Adds an option to use a different host for static images, so that images blocked in some countries can be received.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Bypass image region restrictions","description":"Adds an option to use a different host for static images, so that images blocked in some countries can be received.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Certificate spoof","description":"Enables YouTube Music to work with Android Auto by spoofing the YouTube Music certificate.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change package name","description":"Changes the package name for Reddit to the name specified in options.json.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"PackageNameReddit","default":"com.reddit.frontpage","values":{"Clone":"com.reddit.frontpage.revanced","Default":"com.reddit.frontpage.rvx","Original":"com.reddit.frontpage"},"title":"Package name of Reddit","description":"The name of the package to rename the app to.","required":true}]},{"name":"Change player flyout menu toggles","description":"Adds an option to use text toggles instead of switch toggles within the additional settings menu.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change share sheet","description":"Add option to change from in-app share sheet to system share sheet.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change share sheet","description":"Add option to change from in-app share sheet to system share sheet.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change start page","description":"Adds an option to set which page the app opens in instead of the homepage.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change start page","description":"Adds an option to set which page the app opens in instead of the homepage.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change version code","description":"Changes the version code of the app to the value specified in options.json. Except when mounting, this can prevent app stores from updating the app and allow the app to be installed over an existing installation that has a higher version code. By default, the highest version code is set.","compatiblePackages":null,"use":false,"requiresIntegrations":false,"options":[{"key":"ChangeVersionCode","default":false,"values":null,"title":"Change version code","description":"Changes the version code of the app.","required":true},{"key":"VersionCode","default":"2147483647","values":null,"title":"Version code","description":"The version code to use. (1 ~ 2147483647)","required":true}]},{"name":"Custom Shorts action buttons","description":"Changes, at compile time, the icon of the action buttons of the Shorts player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"IconType","default":"round","values":{"Outline":"outline","OutlineCircle":"outlinecircle","Round":"round","YouTube":"youtube","YouTubeOutline":"youtubeoutline"},"title":"Shorts icon style ","description":"The style of the icons for the action buttons in the Shorts player.","required":true}]},{"name":"Custom branding icon for YouTube","description":"Changes the YouTube app icon to the icon specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppIcon","default":"Xisr Yellow","values":{"AFN Blue":"afn_blue","AFN Red":"afn_red","MMT":"mmt","MMT Blue":"mmt_blue","MMT Green":"mmt_green","MMT Yellow":"mmt_yellow","Revancify Blue":"revancify_blue","Revancify Red":"revancify_red","Vanced Black":"vanced_black","Vanced Light":"vanced_light","Xisr Yellow":"xisr_yellow","YouTube":"youtube"},"title":"App icon","description":"The icon to apply to the app.\n\nIf a path to a folder is provided, the folder must contain the following folders:\n\n- mipmap-xxxhdpi\n- mipmap-xxhdpi\n- mipmap-xhdpi\n- mipmap-hdpi\n- mipmap-mdpi\n\nEach of these folders must contain the following files:\n\n- adaptiveproduct_youtube_background_color_108.png\n- adaptiveproduct_youtube_foreground_color_108.png\n- ic_launcher.png\n- ic_launcher_round.png","required":true},{"key":"ChangeHeader","default":true,"values":null,"title":"Change header","description":"Apply the custom branding icon to the header.","required":true},{"key":"CustomHeader","default":"","values":null,"title":"Custom header","description":"The header to apply to the app.\n\nIf a path to a folder is provided, the folder must contain one or more of the following folders, depending on the DPI of the device:\n\n- drawable-xxxhdpi\n- drawable-xxhdpi\n- drawable-xhdpi\n- drawable-hdpi\n- drawable-mdpi\n\nEach of the folders must contain all of the following files:\n\n- yt_premium_wordmark_header_dark.png\n- yt_premium_wordmark_header_light.png\n- yt_wordmark_header_dark.png\n- yt_wordmark_header_light.png\n\nThe image dimensions must be as follows:\n- drawable-xxxhdpi: 512px x 192px\n- drawable-xxhdpi: 387px x 144px\n- drawable-xhdpi: 258px x 96px\n- drawable-hdpi: 194px x 72px\n- drawable-mdpi: 129px x 48px","required":true},{"key":"ChangeSplashIcon","default":true,"values":null,"title":"Change splash icons","description":"Apply the custom branding icon to the splash screen.","required":true},{"key":"RestoreOldSplashAnimation","default":true,"values":null,"title":"Restore old splash animation","description":"Restore the old style splash animation.","required":true}]},{"name":"Custom branding icon for YouTube Music","description":"Changes the YouTube Music app icon to the icon specified in options.json.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppIcon","default":"Xisr Yellow","values":{"AFN Blue":"afn_blue","AFN Red":"afn_red","MMT":"mmt","MMT Blue":"mmt_blue","MMT Green":"mmt_green","MMT Yellow":"mmt_yellow","Revancify Blue":"revancify_blue","Revancify Red":"revancify_red","Vanced Black":"vanced_black","Vanced Light":"vanced_light","Xisr Yellow":"xisr_yellow","YouTube Music":"youtube_music"},"title":"App icon","description":"The icon to apply to the app.\n\nIf a path to a folder is provided, the folder must contain the following folders:\n\n- mipmap-xxxhdpi\n- mipmap-xxhdpi\n- mipmap-xhdpi\n- mipmap-hdpi\n- mipmap-mdpi\n\nEach of these folders must contain the following files:\n\n- adaptiveproduct_youtube_music_background_color_108.png\n- adaptiveproduct_youtube_music_foreground_color_108.png\n- ic_launcher_release.png","required":true},{"key":"ChangeHeader","default":true,"values":null,"title":"Change header","description":"Apply the custom branding icon to the header.","required":true},{"key":"ChangeSplashIcon","default":true,"values":null,"title":"Change splash icons","description":"Apply the custom branding icon to the splash screen.","required":true},{"key":"RestoreOldSplashIcon","default":false,"values":null,"title":"Restore old splash icon","description":"Restore the old style splash icon.\n\nIf you enable both the old style splash icon and the Cairo splash animation,\n\nOld style splash icon will appear first and then the Cairo splash animation will start.","required":true}]},{"name":"Custom branding name for Reddit","description":"Renames the Reddit app to the name specified in options.json.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppName","default":"Reddit","values":{"Default":"RVX Reddit","Original":"Reddit"},"title":"App name","description":"The name of the app.","required":true}]},{"name":"Custom branding name for YouTube","description":"Renames the YouTube app to the name specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppName","default":"RVX","values":{"ReVanced Extended":"ReVanced Extended","RVX":"RVX","YouTube RVX":"YouTube RVX","YouTube":"YouTube"},"title":"App name","description":"The name of the app.","required":true}]},{"name":"Custom branding name for YouTube Music","description":"Renames the YouTube Music app to the name specified in options.json.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppNameNotification","default":"RVX Music","values":{"ReVanced Extended Music":"ReVanced Extended Music","RVX Music":"RVX Music","YouTube Music":"YouTube Music","YT Music":"YT Music"},"title":"App name in notification panel","description":"The name of the app as it appears in the notification panel.","required":true},{"key":"AppNameLauncher","default":"RVX Music","values":{"ReVanced Extended Music":"ReVanced Extended Music","RVX Music":"RVX Music","YouTube Music":"YouTube Music","YT Music":"YT Music"},"title":"App name in launcher","description":"The name of the app as it appears in the launcher.","required":true}]},{"name":"Custom double tap length","description":"Adds Double-tap to seek values that are specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"DoubleTapLengthArrays","default":"3, 5, 10, 15, 20, 30, 60, 120, 180","values":null,"title":"Double-tap to seek values","description":"A list of custom Double-tap to seek lengths to be added, separated by commas.","required":true}]},{"name":"Custom header for YouTube Music","description":"Applies a custom header in the top left corner within the app.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"CustomHeader","default":"custom_branding_icon","values":{"Custom branding icon":"custom_branding_icon"},"title":"Custom header","description":"The header to apply to the app.\n\nPatch option \u0027Custom branding icon\u0027 applies only when:\n\n1. Patch \u0027Custom branding icon for YouTube Music\u0027 is included.\n2. Patch option for \u0027Custom branding icon for YouTube Music\u0027 is selected from the preset.\n\nIf a path to a folder is provided, the folder must contain one or more of the following folders, depending on the DPI of the device:\n\n- drawable-xxxhdpi\n- drawable-xxhdpi\n- drawable-xhdpi\n- drawable-hdpi\n- drawable-mdpi\n\nEach of the folders must contain all of the following files:\n\n- action_bar_logo.png\n- logo_music.png\n- ytm_logo.png\n\nThe image \u0027action_bar_logo.png\u0027 dimensions must be as follows:\n\n- drawable-xxxhdpi: 320px x 96px\n- drawable-xxhdpi: 240px x 72px\n- drawable-xhdpi: 160px x 48px\n- drawable-hdpi: 121px x 36px\n- drawable-mdpi: 80px x 24px\n\nThe image \u0027logo_music.png\u0027 dimensions must be as follows:\n\n- drawable-xxxhdpi: 576px x 200px\n- drawable-xxhdpi: 432px x 150px\n- drawable-xhdpi: 288px x 100px\n- drawable-hdpi: 217px x 76px\n- drawable-mdpi: 144px x 50px\n\nThe image \u0027ytm_logo.png\u0027 dimensions must be as follows:\n\n- drawable-xxxhdpi: 412px x 144px\n- drawable-xxhdpi: 309px x 108px\n- drawable-xhdpi: 206px x 72px\n- drawable-hdpi: 155px x 54px\n- drawable-mdpi: 103px x 36px","required":true}]},{"name":"Description components","description":"Adds options to hide and disable description components.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable Cairo splash animation","description":"Adds an option to disable Cairo splash animation.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["7.06.54","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable QUIC protocol","description":"Adds an option to disable CronetEngine\u0027s QUIC protocol.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable auto audio tracks","description":"Adds an option to disable audio tracks from being automatically enabled.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable auto captions","description":"Adds an option to disable captions from being automatically enabled.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable auto captions","description":"Adds an option to disable captions from being automatically enabled.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable dislike redirection","description":"Adds an option to disable redirection to the next track when clicking the Dislike button.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable haptic feedback","description":"Adds options to disable haptic feedback when swiping in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable resuming Shorts on startup","description":"Adds an option to disable the Shorts player from resuming on app startup when Shorts were last being watched.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable screenshot popup","description":"Adds an option to disable the popup that appears when taking a screenshot.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable splash animation","description":"Adds an option to disable the splash animation on app startup.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable OPUS codec","description":"Adds an option to use the OPUS audio codec instead of the MP4A audio codec.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable OPUS codec","description":"Adds an options to enable the OPUS audio codec if the player response includes.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable debug logging","description":"Adds an option to enable debug logging.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable debug logging","description":"Adds an option to enable debug logging.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable external browser","description":"Adds an option to always open links in your browser instead of in the in-app-browser.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable gradient loading screen","description":"Adds an option to enable the gradient loading screen.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable landscape mode","description":"Adds an option to enable landscape mode when rotating the screen on phones.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable open links directly","description":"Adds an option to skip over redirection URLs in external links.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Flyout menu components","description":"Adds options to hide or change flyout menu components.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Force player buttons background","description":"Changes, at compile time, the dark background surrounding the video player controls.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"BackgroundColor","default":"?ytOverlayBackgroundMediumLight","values":{"Default":"?ytOverlayBackgroundMediumLight","Transparent":"@android:color/transparent","Opacity10":"#1a000000","Opacity20":"#33000000","Opacity30":"#4d000000","Opacity40":"#66000000","Opacity50":"#80000000","Opacity60":"#99000000","Opacity70":"#b3000000","Opacity80":"#cc000000","Opacity90":"#e6000000","Opacity100":"#ff000000"},"title":"Background color","description":"Specify a background color for player buttons using a hex color code. The first two symbols of the hex code represent the alpha channel, which is used to change the opacity.","required":false}]},{"name":"Force snackbar theme","description":"Force snackbar background color to match selected theme.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"CornerRadius","default":"8.0dip","values":null,"title":"Corner radius","description":"Specify a corner radius for the snackbar.","required":false},{"key":"BackgroundColor","default":"?ytChipBackground","values":{"Chip":"?ytChipBackground","Base":"?ytBaseBackground"},"title":"Background color","description":"Specify a background color for the snackbar. You can specify hex color.","required":false},{"key":"StrokeColor","default":"none","values":{"None":"none","Accent":"?attr/colorAccent","Inverted":"?attr/ytInvertedBackground"},"title":"Stroke color","description":"Specify a stroke color for the snackbar. You can specify hex color.","required":false}]},{"name":"Fullscreen components","description":"Adds options to hide or change components related to fullscreen.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"GmsCore support","description":"Allows patched Google apps to run without root and under a different package name by using GmsCore instead of Google Play Services.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"GmsCoreVendorGroupId","default":"app.revanced","values":{"ReVanced":"app.revanced"},"title":"GmsCore vendor group ID","description":"The vendor\u0027s group ID for GmsCore.","required":true},{"key":"CheckGmsCore","default":true,"values":null,"title":"Check GmsCore","description":"Check if GmsCore is installed on the device and has battery optimizations disabled when the app starts. \n\nIf GmsCore is not installed the app will not work, so disabling this is not recommended.","required":true},{"key":"PackageNameYouTube","default":"anddea.youtube","values":{"Clone":"bill.youtube","Default":"anddea.youtube"},"title":"Package name of YouTube","description":"The name of the package to use in GmsCore support.","required":true},{"key":"PackageNameYouTubeMusic","default":"anddea.youtube.music","values":{"Clone":"bill.youtube.music","Default":"anddea.youtube.music"},"title":"Package name of YouTube Music","description":"The name of the package to use in GmsCore support.","required":true}]},{"name":"GmsCore support","description":"Allows patched Google apps to run without root and under a different package name by using GmsCore instead of Google Play Services.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"GmsCoreVendorGroupId","default":"app.revanced","values":{"ReVanced":"app.revanced"},"title":"GmsCore vendor group ID","description":"The vendor\u0027s group ID for GmsCore.","required":true},{"key":"CheckGmsCore","default":true,"values":null,"title":"Check GmsCore","description":"Check if GmsCore is installed on the device and has battery optimizations disabled when the app starts. \n\nIf GmsCore is not installed the app will not work, so disabling this is not recommended.","required":true},{"key":"PackageNameYouTube","default":"anddea.youtube","values":{"Clone":"bill.youtube","Default":"anddea.youtube"},"title":"Package name of YouTube","description":"The name of the package to use in GmsCore support.","required":true},{"key":"PackageNameYouTubeMusic","default":"anddea.youtube.music","values":{"Clone":"bill.youtube.music","Default":"anddea.youtube.music"},"title":"Package name of YouTube Music","description":"The name of the package to use in GmsCore support.","required":true}]},{"name":"Hide Recently Visited shelf","description":"Adds an option to hide the Recently Visited shelf in the sidebar.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide Shorts dimming","description":"Removes, at compile time, the dimming effect at the top and bottom of Shorts videos.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide account components","description":"Adds options to hide components related to the account menu.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide action bar components","description":"Adds options to hide action bar components and replace the offline download button with an external download button.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide action buttons","description":"Adds options to hide action buttons under videos.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide ads","description":"Adds options to hide ads.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":true,"options":[]},{"name":"Hide ads","description":"Adds options to hide ads.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide ads","description":"Adds options to hide ads.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide comments components","description":"Adds options to hide components related to comments.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide feed components","description":"Adds options to hide components related to feeds.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide feed flyout menu","description":"Adds the ability to hide feed flyout menu components using a custom filter.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide layout components","description":"Adds options to hide general layout components.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide layout components","description":"Adds options to hide general layout components.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide navigation buttons","description":"Adds options to hide buttons in the navigation bar.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide overlay filter","description":"Removes, at compile time, the dark overlay that appears when player flyout menus are open.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide player buttons","description":"Adds options to hide buttons in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide player flyout menu","description":"Adds options to hide player flyout menu components.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide player overlay filter","description":"Removes, at compile time, the dark overlay that appears when single-tapping in the player.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide recommended communities shelf","description":"Adds an option to hide the recommended communities shelves in subreddits.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hook download actions","description":"Adds support to download videos with an external downloader app using the in-app download button.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Layout switch","description":"Adds an option to spoof the dpi in order to use a tablet or phone layout.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"MaterialYou","description":"Applies the MaterialYou theme for Android 12+ devices.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Miniplayer","description":"Adds options to change the in app minimized player, and if patching target 19.16+ adds options to use modern miniplayers.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Navigation bar components","description":"Adds options to hide or change components related to the navigation bar.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Navigation bar components","description":"Adds options to hide or change components related to the navigation bar.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Open links directly","description":"Adds an option to skip over redirection URLs in external links.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Open links externally","description":"Adds an option to always open links in your browser instead of in the in-app-browser.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Overlay buttons","description":"Adds options to display overlay buttons in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"IconType","default":"rounded","values":{"Bold":"bold","Rounded":"rounded","Thin":"thin"},"title":"Icon type","description":"The icon type.","required":true},{"key":"BottomMargin","default":"5.0dip","values":{"Wider":"10.0dip","Default":"5.0dip"},"title":"Bottom margin","description":"The bottom margin for the overlay buttons and timestamp.","required":true},{"key":"ChangeTopButtons","default":false,"values":null,"title":"Change top buttons","description":"Change the icons at the top of the player.","required":true}]},{"name":"Player components","description":"Adds options to hide or change components related to the player.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Player components","description":"Adds options to hide or change components related to the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Premium icon","description":"Unlocks premium app icons.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove background playback restrictions","description":"Removes restrictions on background playback, including for kids videos.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove background playback restrictions","description":"Removes restrictions on background playback, including for music and kids videos.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove subreddit dialog","description":"Adds options to remove the NSFW community warning and notifications suggestion dialogs by dismissing them automatically.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove viewer discretion dialog","description":"Adds an option to remove the dialog that appears when opening a video that has been age-restricted by accepting it automatically. This does not bypass the age restriction.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove viewer discretion dialog","description":"Adds an option to remove the dialog that appears when opening a video that has been age-restricted by accepting it automatically. This does not bypass the age restriction.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Restore old style library shelf","description":"Adds an option to return the Library tab to the old style.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Return YouTube Dislike","description":"Adds an option to show the dislike count of songs using the Return YouTube Dislike API.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Return YouTube Dislike","description":"Adds an option to show the dislike count of videos using the Return YouTube Dislike API.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Sanitize sharing links","description":"Adds an option to remove tracking query parameters from URLs when sharing links.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Sanitize sharing links","description":"Adds an option to remove tracking query parameters from URLs when sharing links.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Sanitize sharing links","description":"Adds an option to remove tracking query parameters from URLs when sharing links.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Seekbar components","description":"Adds options to hide or change components related to the seekbar.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"CairoStartColor","default":"#ffff2791","values":null,"title":"Cairo start color","description":"Set Cairo start color for the seekbar.","required":false},{"key":"CairoEndColor","default":"#ffff0033","values":null,"title":"Cairo end color","description":"Set Cairo end color for the seekbar.","required":false}]},{"name":"Settings for Reddit","description":"Applies mandatory patches to implement ReVanced Extended settings into the application.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"RVXSettingsMenuName","default":"ReVanced Extended","values":null,"title":"RVX settings menu name","description":"The name of the RVX settings menu.","required":true}]},{"name":"Settings for YouTube","description":"Applies mandatory patches to implement ReVanced Extended settings into the application.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"InsertPosition","default":"About","values":{"Parent settings":"@string/parent_tools_key","General":"@string/general_key","Account":"@string/account_switcher_key","Data saving":"@string/data_saving_settings_key","Autoplay":"@string/auto_play_key","Video quality preferences":"@string/video_quality_settings_key","Background":"@string/offline_key","Watch on TV":"@string/pair_with_tv_key","Manage all history":"@string/history_key","Your data in YouTube":"@string/your_data_key","Privacy":"@string/privacy_key","History \u0026 privacy":"@string/privacy_key","Try experimental new features":"@string/premium_early_access_browse_page_key","Purchases and memberships":"@string/subscription_product_setting_key","Billing \u0026 payments":"@string/billing_and_payment_key","Billing and payments":"@string/billing_and_payment_key","Notifications":"@string/notification_key","Connected apps":"@string/connected_accounts_browse_page_key","Live chat":"@string/live_chat_key","Captions":"@string/captions_key","Accessibility":"@string/accessibility_settings_key","About":"@string/about_key"},"title":"Insert position","description":"The settings menu name that the RVX settings menu should be above.","required":true},{"key":"RVXSettingsMenuName","default":"ReVanced Extended","values":null,"title":"RVX settings menu name","description":"The name of the RVX settings menu.","required":true}]},{"name":"Settings for YouTube Music","description":"Applies mandatory patches to implement ReVanced Extended settings into the application.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"RVXSettingsMenuName","default":"ReVanced Extended","values":null,"title":"RVX settings menu name","description":"The name of the RVX settings menu.","required":true}]},{"name":"Shorts components","description":"Adds options to hide or change components related to YouTube Shorts.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"SponsorBlock","description":"Adds options to enable and configure SponsorBlock, which can skip undesired video segments, such as non-music sections.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"SponsorBlock","description":"Adds options to enable and configure SponsorBlock, which can skip undesired video segments, such as sponsored content.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"OutlineIcon","default":true,"values":null,"title":"Outline icons","description":"Apply the outline icon.","required":true}]},{"name":"Spoof app version","description":"Adds options to spoof the YouTube Music client version. This can remove the radio mode restriction in Canadian regions or disable real-time lyrics.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Spoof app version","description":"Adds options to spoof the YouTube client version. This can be used to restore old UI elements and features.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Spoof streaming data","description":"Adds options to spoof the streaming data to allow video playback.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Spoof watch history","description":"Adds an option to change the domain of the watch history or check its status.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Swipe controls","description":"Adds options for controlling volume and brightness with swiping, and whether to enter fullscreen when swiping down below the player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Theme","description":"Changes the app\u0027s theme to the values specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"DarkThemeBackgroundColor","default":"@android:color/black","values":{"Amoled Black":"@android:color/black","Catppuccin (Mocha)":"#FF181825","Dark Pink":"#FF290025","Dark Blue":"#FF001029","Dark Green":"#FF002905","Dark Yellow":"#FF282900","Dark Orange":"#FF291800","Dark Red":"#FF290000"},"title":"Dark theme background color","description":"Can be a hex color (#AARRGGBB) or a color resource reference.","required":true},{"key":"LightThemeBackgroundColor","default":"@android:color/white","values":{"White":"@android:color/white","Catppuccin (Latte)":"#FFE6E9EF","Light Pink":"#FFFCCFF3","Light Blue":"#FFD1E0FF","Light Green":"#FFCCFFCC","Light Yellow":"#FFFDFFCC","Light Orange":"#FFFFE6CC","Light Red":"#FFFFD6D6"},"title":"Light theme background color","description":"Can be a hex color (#AARRGGBB) or a color resource reference.","required":true}]},{"name":"Toolbar components","description":"Adds options to hide or change components located on the toolbar, such as toolbar buttons, search bar, and header.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Translations","description":"Adds Crowdin translations for YouTube Music.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"CustomLanguage","default":"","values":null,"title":"Custom language file","description":"The file path to the strings.xml file.\nPlease note that applying the strings.xml file will overwrite all existing language translations.","required":false},{"key":"SelectedLanguages","default":"bg-rBG, bn, cs-rCZ, el-rGR, es-rES, fr-rFR, hu-rHU, id-rID, in, it-rIT, ja-rJP, ko-rKR, nl-rNL, pl-rPL, pt-rBR, ro-rRO, ru-rRU, tr-rTR, uk-rUA, vi-rVN, zh-rCN, zh-rTW","values":null,"title":"Selected RVX languages","description":"Selected RVX languages that will be added.","required":false},{"key":"SelectedAppLanguages","default":"af, am, ar, ar-rXB, as, az, b+es+419, b+sr+Latn, be, bg, bn, bs, ca, cs, da, de, el, en-rAU, en-rCA, en-rGB, en-rIN, en-rXA, en-rXC, es, es-rUS, et, eu, fa, fi, fr, fr-rCA, gl, gu, hi, hr, hu, hy, id, in, is, it, iw, ja, ka, kk, km, kn, ko, ky, lo, lt, lv, mk, ml, mn, mr, ms, my, nb, ne, nl, no, or, pa, pl, pt, pt-rBR, pt-rPT, ro, ru, si, sk, sl, sq, sr, sv, sw, ta, te, th, tl, tr, uk, ur, uz, vi, zh, zh-rCN, zh-rHK, zh-rTW, zu","values":null,"title":"Selected app languages","description":"Selected app languages that will be kept, languages that are not in the list will be removed from the app.","required":false}]},{"name":"Translations","description":"Add Crowdin translations for YouTube.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"CustomLanguage","default":"","values":null,"title":"Custom language file","description":"The file path to the strings.xml file.\nPlease note that applying the strings.xml file will overwrite all existing language translations.","required":false},{"key":"SelectedLanguages","default":"ar, bg-rBG, bn, de-rDE, el-rGR, es-rES, fi-rFI, fr-rFR, hu-rHU, id-rID, in, it-rIT, ja-rJP, ko-rKR, pl-rPL, pt-rBR, ru-rRU, tr-rTR, uk-rUA, vi-rVN, zh-rCN, zh-rTW","values":null,"title":"Selected RVX languages","description":"Selected RVX languages that will be added.","required":false},{"key":"SelectedAppLanguages","default":"af, am, ar, ar-rXB, as, az, b+es+419, b+sr+Latn, be, bg, bn, bs, ca, cs, da, de, el, en-rAU, en-rCA, en-rGB, en-rIN, en-rXA, en-rXC, es, es-rUS, et, eu, fa, fi, fr, fr-rCA, gl, gu, hi, hr, hu, hy, id, in, is, it, iw, ja, ka, kk, km, kn, ko, ky, lo, lt, lv, mk, ml, mn, mr, ms, my, nb, ne, nl, no, or, pa, pl, pt, pt-rBR, pt-rPT, ro, ru, si, sk, sl, sq, sr, sv, sw, ta, te, th, tl, tr, uk, ur, uz, vi, zh, zh-rCN, zh-rHK, zh-rTW, zu","values":null,"title":"Selected app languages","description":"Selected app languages that will be kept, languages that are not in the list will be removed from the app.","required":false}]},{"name":"Video playback","description":"Adds options to customize settings related to video playback, such as default video quality and playback speed.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Video playback","description":"Adds options to customize settings related to video playback, such as default video quality and playback speed.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Visual preferences icons","description":"Adds icons to specific preferences in the settings.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"ExtendedIcon","default":"Extension","values":{"Custom branding icon":"custom_branding_icon","Extension":"extension","Gear":"gear","ReVanced":"revanced","ReVanced Colored":"revanced_colored"},"title":"Extended icon","description":"Apply different icons for Extended preference.","required":false}]},{"name":"Visual preferences icons","description":"Adds icons to specific preferences in the settings.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"ExtendedIcon","default":"Extension","values":{"Custom branding icon":"custom_branding_icon","Extension":"extension","Gear":"gear","ReVanced":"revanced","ReVanced Colored":"revanced_colored"},"title":"RVX settings menu icon","description":"The icon for the RVX settings menu.","required":true}]}] \ No newline at end of file From 28fc1d5527181a123129439a3384335a28c98346 Mon Sep 17 00:00:00 2001 From: Aaron Veil <70171475+anddea@users.noreply.github.com> Date: Thu, 19 Sep 2024 10:25:50 +0300 Subject: [PATCH 61/63] feat(YouTube - SponsorBlock): Add patch option to select new segment window alignment --- .../utils/sponsorblock/SponsorBlockPatch.kt | 31 +++++++++++++++++-- .../revanced_sb_inline_sponsor_overlay.xml | 1 + 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/app/revanced/patches/youtube/utils/sponsorblock/SponsorBlockPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/utils/sponsorblock/SponsorBlockPatch.kt index 4c13a016f..9ad219d0c 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/utils/sponsorblock/SponsorBlockPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/utils/sponsorblock/SponsorBlockPatch.kt @@ -3,13 +3,13 @@ package app.revanced.patches.youtube.utils.sponsorblock import app.revanced.patcher.data.ResourceContext import app.revanced.patcher.patch.PatchException import app.revanced.patcher.patch.options.PatchOption.PatchExtensions.booleanPatchOption +import app.revanced.patcher.patch.options.PatchOption.PatchExtensions.stringPatchOption import app.revanced.patches.youtube.utils.compatibility.Constants.COMPATIBLE_PACKAGE import app.revanced.patches.youtube.utils.settings.SettingsPatch -import app.revanced.util.ResourceGroup -import app.revanced.util.copyResources -import app.revanced.util.copyXmlNode +import app.revanced.util.* import app.revanced.util.inputStreamFromBundledResource import app.revanced.util.patch.BaseResourcePatch +import org.w3c.dom.Element @Suppress("DEPRECATION", "unused") object SponsorBlockPatch : BaseResourcePatch( @@ -21,6 +21,8 @@ object SponsorBlockPatch : BaseResourcePatch( ), compatiblePackages = COMPATIBLE_PACKAGE ) { + private const val RIGHT = "right" + private val OutlineIcon by booleanPatchOption( key = "OutlineIcon", default = true, @@ -29,6 +31,18 @@ object SponsorBlockPatch : BaseResourcePatch( required = true ) + private val NewSegmentAlignment by stringPatchOption( + key = "NewSegmentAlignment", + default = RIGHT, + values = mapOf( + "Right" to RIGHT, + "Left" to "left", + ), + title = "New segment alignment", + description = "Align new segment window.", + required = true + ) + override fun execute(context: ResourceContext) { /** * merge SponsorBlock drawables to main drawables @@ -90,6 +104,17 @@ object SponsorBlockPatch : BaseResourcePatch( } } + if (NewSegmentAlignment == "left") { + context.xmlEditor["res/layout/revanced_sb_inline_sponsor_overlay.xml"].use { editor -> + editor.file.doRecursively { node -> + if (node is Element && node.tagName == "app.revanced.integrations.youtube.sponsorblock.ui.NewSegmentLayout") { + node.setAttribute("android:layout_alignParentRight", "false") + node.setAttribute("android:layout_alignParentLeft", "true") + } + } + } + } + /** * merge xml nodes from the host to their real xml files */ diff --git a/src/main/resources/youtube/sponsorblock/shared/layout/revanced_sb_inline_sponsor_overlay.xml b/src/main/resources/youtube/sponsorblock/shared/layout/revanced_sb_inline_sponsor_overlay.xml index 69ffb616a..c99f56c2d 100644 --- a/src/main/resources/youtube/sponsorblock/shared/layout/revanced_sb_inline_sponsor_overlay.xml +++ b/src/main/resources/youtube/sponsorblock/shared/layout/revanced_sb_inline_sponsor_overlay.xml @@ -32,6 +32,7 @@ android:layout_alignParentRight="true" android:layout_alignParentBottom="true" android:layout_marginBottom="@dimen/brand_interaction_default_bottom_margin" + android:layout_marginStart="@dimen/margin_start" android:layout_marginEnd="@dimen/margin_end" android:focusable="true" android:visibility="gone" /> From 7048cd8474b73fcf966f49ab92f08788ca5b4107 Mon Sep 17 00:00:00 2001 From: Aaron Veil <70171475+anddea@users.noreply.github.com> Date: Thu, 19 Sep 2024 10:30:43 +0300 Subject: [PATCH 62/63] chore(Visual preferences icons): Update `YouTube`, `YouTube Music`, `Xisr Yellow` icons --- .../revanced_extended_settings_key_icon.xml | 2036 ++++++++--------- .../revanced_extended_settings_key_icon.xml | 31 + .../revanced_extended_settings_key_icon.xml | 1275 +++-------- .../revanced_extended_settings_key_icon.xml | 1048 +-------- 4 files changed, 1319 insertions(+), 3071 deletions(-) mode change 100644 => 100755 src/main/resources/music/branding/xisr_yellow/settings/drawable/revanced_extended_settings_key_icon.xml create mode 100644 src/main/resources/music/branding/youtube_music/settings/drawable/revanced_extended_settings_key_icon.xml mode change 100644 => 100755 src/main/resources/youtube/branding/xisr_yellow/settings/drawable/revanced_extended_settings_key_icon.xml diff --git a/src/main/resources/music/branding/xisr_yellow/settings/drawable/revanced_extended_settings_key_icon.xml b/src/main/resources/music/branding/xisr_yellow/settings/drawable/revanced_extended_settings_key_icon.xml old mode 100644 new mode 100755 index 85cbc17e9..14613a0f9 --- a/src/main/resources/music/branding/xisr_yellow/settings/drawable/revanced_extended_settings_key_icon.xml +++ b/src/main/resources/music/branding/xisr_yellow/settings/drawable/revanced_extended_settings_key_icon.xml @@ -1,1022 +1,1018 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + xmlns:android="http://schemas.android.com/apk/res/android" + android:width="48.0dp" + android:height="48.0dp" + android:viewportWidth="192.0" + android:viewportHeight="192.0"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/music/branding/youtube_music/settings/drawable/revanced_extended_settings_key_icon.xml b/src/main/resources/music/branding/youtube_music/settings/drawable/revanced_extended_settings_key_icon.xml new file mode 100644 index 000000000..a4b62d2bf --- /dev/null +++ b/src/main/resources/music/branding/youtube_music/settings/drawable/revanced_extended_settings_key_icon.xml @@ -0,0 +1,31 @@ + + + + + + + diff --git a/src/main/resources/youtube/branding/xisr_yellow/settings/drawable/revanced_extended_settings_key_icon.xml b/src/main/resources/youtube/branding/xisr_yellow/settings/drawable/revanced_extended_settings_key_icon.xml old mode 100644 new mode 100755 index a7fe4dc6c..c368c92bd --- a/src/main/resources/youtube/branding/xisr_yellow/settings/drawable/revanced_extended_settings_key_icon.xml +++ b/src/main/resources/youtube/branding/xisr_yellow/settings/drawable/revanced_extended_settings_key_icon.xml @@ -1,1022 +1,257 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + \ No newline at end of file diff --git a/src/main/resources/youtube/branding/youtube/settings/drawable/revanced_extended_settings_key_icon.xml b/src/main/resources/youtube/branding/youtube/settings/drawable/revanced_extended_settings_key_icon.xml index ed7f765a7..9de840ae5 100644 --- a/src/main/resources/youtube/branding/youtube/settings/drawable/revanced_extended_settings_key_icon.xml +++ b/src/main/resources/youtube/branding/youtube/settings/drawable/revanced_extended_settings_key_icon.xml @@ -1,1039 +1,25 @@ - - + android:viewportWidth="192.0" + android:viewportHeight="192.0"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + android:pivotX="96" + android:pivotY="96"> + + - \ No newline at end of file + From 6579f279a196993cf0f23330d84c9682da84c08b Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Thu, 19 Sep 2024 09:22:13 +0000 Subject: [PATCH 63/63] chore(release): 2.229.0-dev.7 [skip ci] # [2.229.0-dev.7](https://github.com/anddea/revanced-patches/compare/v2.229.0-dev.6...v2.229.0-dev.7) (2024-09-19) ### Features * **YouTube - SponsorBlock:** Add patch option to select new segment window alignment ([28fc1d5](https://github.com/anddea/revanced-patches/commit/28fc1d5527181a123129439a3384335a28c98346)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- patches.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 264617e0a..8eb8b6cac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [2.229.0-dev.7](https://github.com/anddea/revanced-patches/compare/v2.229.0-dev.6...v2.229.0-dev.7) (2024-09-19) + + +### Features + +* **YouTube - SponsorBlock:** Add patch option to select new segment window alignment ([28fc1d5](https://github.com/anddea/revanced-patches/commit/28fc1d5527181a123129439a3384335a28c98346)) + # [2.229.0-dev.6](https://github.com/anddea/revanced-patches/compare/v2.229.0-dev.5...v2.229.0-dev.6) (2024-09-17) diff --git a/gradle.properties b/gradle.properties index f6b3321f6..715bf177d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.parallel = true org.gradle.caching = true kotlin.code.style = official -version = 2.229.0-dev.6 +version = 2.229.0-dev.7 diff --git a/patches.json b/patches.json index 65b403fb8..7bcdacd9e 100644 --- a/patches.json +++ b/patches.json @@ -1 +1 @@ -[{"name":"Alternative thumbnails","description":"Adds options to replace video thumbnails using the DeArrow API or image captures from the video.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Ambient mode control","description":"Adds options to disable Ambient mode and to bypass Ambient mode restrictions.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Amoled","description":"Applies a pure black theme to some components.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Bitrate default value","description":"Sets the audio quality to \u0027Always High\u0027 when you first install the app.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Bypass image region restrictions","description":"Adds an option to use a different host for static images, so that images blocked in some countries can be received.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Bypass image region restrictions","description":"Adds an option to use a different host for static images, so that images blocked in some countries can be received.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Certificate spoof","description":"Enables YouTube Music to work with Android Auto by spoofing the YouTube Music certificate.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change package name","description":"Changes the package name for Reddit to the name specified in options.json.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"PackageNameReddit","default":"com.reddit.frontpage","values":{"Clone":"com.reddit.frontpage.revanced","Default":"com.reddit.frontpage.rvx","Original":"com.reddit.frontpage"},"title":"Package name of Reddit","description":"The name of the package to rename the app to.","required":true}]},{"name":"Change player flyout menu toggles","description":"Adds an option to use text toggles instead of switch toggles within the additional settings menu.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change share sheet","description":"Add option to change from in-app share sheet to system share sheet.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change share sheet","description":"Add option to change from in-app share sheet to system share sheet.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change start page","description":"Adds an option to set which page the app opens in instead of the homepage.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change start page","description":"Adds an option to set which page the app opens in instead of the homepage.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change version code","description":"Changes the version code of the app to the value specified in options.json. Except when mounting, this can prevent app stores from updating the app and allow the app to be installed over an existing installation that has a higher version code. By default, the highest version code is set.","compatiblePackages":null,"use":false,"requiresIntegrations":false,"options":[{"key":"ChangeVersionCode","default":false,"values":null,"title":"Change version code","description":"Changes the version code of the app.","required":true},{"key":"VersionCode","default":"2147483647","values":null,"title":"Version code","description":"The version code to use. (1 ~ 2147483647)","required":true}]},{"name":"Custom Shorts action buttons","description":"Changes, at compile time, the icon of the action buttons of the Shorts player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"IconType","default":"round","values":{"Outline":"outline","OutlineCircle":"outlinecircle","Round":"round","YouTube":"youtube","YouTubeOutline":"youtubeoutline"},"title":"Shorts icon style ","description":"The style of the icons for the action buttons in the Shorts player.","required":true}]},{"name":"Custom branding icon for YouTube","description":"Changes the YouTube app icon to the icon specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppIcon","default":"Xisr Yellow","values":{"AFN Blue":"afn_blue","AFN Red":"afn_red","MMT":"mmt","MMT Blue":"mmt_blue","MMT Green":"mmt_green","MMT Yellow":"mmt_yellow","Revancify Blue":"revancify_blue","Revancify Red":"revancify_red","Vanced Black":"vanced_black","Vanced Light":"vanced_light","Xisr Yellow":"xisr_yellow","YouTube":"youtube"},"title":"App icon","description":"The icon to apply to the app.\n\nIf a path to a folder is provided, the folder must contain the following folders:\n\n- mipmap-xxxhdpi\n- mipmap-xxhdpi\n- mipmap-xhdpi\n- mipmap-hdpi\n- mipmap-mdpi\n\nEach of these folders must contain the following files:\n\n- adaptiveproduct_youtube_background_color_108.png\n- adaptiveproduct_youtube_foreground_color_108.png\n- ic_launcher.png\n- ic_launcher_round.png","required":true},{"key":"ChangeHeader","default":true,"values":null,"title":"Change header","description":"Apply the custom branding icon to the header.","required":true},{"key":"CustomHeader","default":"","values":null,"title":"Custom header","description":"The header to apply to the app.\n\nIf a path to a folder is provided, the folder must contain one or more of the following folders, depending on the DPI of the device:\n\n- drawable-xxxhdpi\n- drawable-xxhdpi\n- drawable-xhdpi\n- drawable-hdpi\n- drawable-mdpi\n\nEach of the folders must contain all of the following files:\n\n- yt_premium_wordmark_header_dark.png\n- yt_premium_wordmark_header_light.png\n- yt_wordmark_header_dark.png\n- yt_wordmark_header_light.png\n\nThe image dimensions must be as follows:\n- drawable-xxxhdpi: 512px x 192px\n- drawable-xxhdpi: 387px x 144px\n- drawable-xhdpi: 258px x 96px\n- drawable-hdpi: 194px x 72px\n- drawable-mdpi: 129px x 48px","required":true},{"key":"ChangeSplashIcon","default":true,"values":null,"title":"Change splash icons","description":"Apply the custom branding icon to the splash screen.","required":true},{"key":"RestoreOldSplashAnimation","default":true,"values":null,"title":"Restore old splash animation","description":"Restore the old style splash animation.","required":true}]},{"name":"Custom branding icon for YouTube Music","description":"Changes the YouTube Music app icon to the icon specified in options.json.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppIcon","default":"Xisr Yellow","values":{"AFN Blue":"afn_blue","AFN Red":"afn_red","MMT":"mmt","MMT Blue":"mmt_blue","MMT Green":"mmt_green","MMT Yellow":"mmt_yellow","Revancify Blue":"revancify_blue","Revancify Red":"revancify_red","Vanced Black":"vanced_black","Vanced Light":"vanced_light","Xisr Yellow":"xisr_yellow","YouTube Music":"youtube_music"},"title":"App icon","description":"The icon to apply to the app.\n\nIf a path to a folder is provided, the folder must contain the following folders:\n\n- mipmap-xxxhdpi\n- mipmap-xxhdpi\n- mipmap-xhdpi\n- mipmap-hdpi\n- mipmap-mdpi\n\nEach of these folders must contain the following files:\n\n- adaptiveproduct_youtube_music_background_color_108.png\n- adaptiveproduct_youtube_music_foreground_color_108.png\n- ic_launcher_release.png","required":true},{"key":"ChangeHeader","default":true,"values":null,"title":"Change header","description":"Apply the custom branding icon to the header.","required":true},{"key":"ChangeSplashIcon","default":true,"values":null,"title":"Change splash icons","description":"Apply the custom branding icon to the splash screen.","required":true},{"key":"RestoreOldSplashIcon","default":false,"values":null,"title":"Restore old splash icon","description":"Restore the old style splash icon.\n\nIf you enable both the old style splash icon and the Cairo splash animation,\n\nOld style splash icon will appear first and then the Cairo splash animation will start.","required":true}]},{"name":"Custom branding name for Reddit","description":"Renames the Reddit app to the name specified in options.json.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppName","default":"Reddit","values":{"Default":"RVX Reddit","Original":"Reddit"},"title":"App name","description":"The name of the app.","required":true}]},{"name":"Custom branding name for YouTube","description":"Renames the YouTube app to the name specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppName","default":"RVX","values":{"ReVanced Extended":"ReVanced Extended","RVX":"RVX","YouTube RVX":"YouTube RVX","YouTube":"YouTube"},"title":"App name","description":"The name of the app.","required":true}]},{"name":"Custom branding name for YouTube Music","description":"Renames the YouTube Music app to the name specified in options.json.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppNameNotification","default":"RVX Music","values":{"ReVanced Extended Music":"ReVanced Extended Music","RVX Music":"RVX Music","YouTube Music":"YouTube Music","YT Music":"YT Music"},"title":"App name in notification panel","description":"The name of the app as it appears in the notification panel.","required":true},{"key":"AppNameLauncher","default":"RVX Music","values":{"ReVanced Extended Music":"ReVanced Extended Music","RVX Music":"RVX Music","YouTube Music":"YouTube Music","YT Music":"YT Music"},"title":"App name in launcher","description":"The name of the app as it appears in the launcher.","required":true}]},{"name":"Custom double tap length","description":"Adds Double-tap to seek values that are specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"DoubleTapLengthArrays","default":"3, 5, 10, 15, 20, 30, 60, 120, 180","values":null,"title":"Double-tap to seek values","description":"A list of custom Double-tap to seek lengths to be added, separated by commas.","required":true}]},{"name":"Custom header for YouTube Music","description":"Applies a custom header in the top left corner within the app.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"CustomHeader","default":"custom_branding_icon","values":{"Custom branding icon":"custom_branding_icon"},"title":"Custom header","description":"The header to apply to the app.\n\nPatch option \u0027Custom branding icon\u0027 applies only when:\n\n1. Patch \u0027Custom branding icon for YouTube Music\u0027 is included.\n2. Patch option for \u0027Custom branding icon for YouTube Music\u0027 is selected from the preset.\n\nIf a path to a folder is provided, the folder must contain one or more of the following folders, depending on the DPI of the device:\n\n- drawable-xxxhdpi\n- drawable-xxhdpi\n- drawable-xhdpi\n- drawable-hdpi\n- drawable-mdpi\n\nEach of the folders must contain all of the following files:\n\n- action_bar_logo.png\n- logo_music.png\n- ytm_logo.png\n\nThe image \u0027action_bar_logo.png\u0027 dimensions must be as follows:\n\n- drawable-xxxhdpi: 320px x 96px\n- drawable-xxhdpi: 240px x 72px\n- drawable-xhdpi: 160px x 48px\n- drawable-hdpi: 121px x 36px\n- drawable-mdpi: 80px x 24px\n\nThe image \u0027logo_music.png\u0027 dimensions must be as follows:\n\n- drawable-xxxhdpi: 576px x 200px\n- drawable-xxhdpi: 432px x 150px\n- drawable-xhdpi: 288px x 100px\n- drawable-hdpi: 217px x 76px\n- drawable-mdpi: 144px x 50px\n\nThe image \u0027ytm_logo.png\u0027 dimensions must be as follows:\n\n- drawable-xxxhdpi: 412px x 144px\n- drawable-xxhdpi: 309px x 108px\n- drawable-xhdpi: 206px x 72px\n- drawable-hdpi: 155px x 54px\n- drawable-mdpi: 103px x 36px","required":true}]},{"name":"Description components","description":"Adds options to hide and disable description components.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable Cairo splash animation","description":"Adds an option to disable Cairo splash animation.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["7.06.54","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable QUIC protocol","description":"Adds an option to disable CronetEngine\u0027s QUIC protocol.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable auto audio tracks","description":"Adds an option to disable audio tracks from being automatically enabled.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable auto captions","description":"Adds an option to disable captions from being automatically enabled.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable auto captions","description":"Adds an option to disable captions from being automatically enabled.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable dislike redirection","description":"Adds an option to disable redirection to the next track when clicking the Dislike button.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable haptic feedback","description":"Adds options to disable haptic feedback when swiping in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable resuming Shorts on startup","description":"Adds an option to disable the Shorts player from resuming on app startup when Shorts were last being watched.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable screenshot popup","description":"Adds an option to disable the popup that appears when taking a screenshot.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable splash animation","description":"Adds an option to disable the splash animation on app startup.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable OPUS codec","description":"Adds an option to use the OPUS audio codec instead of the MP4A audio codec.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable OPUS codec","description":"Adds an options to enable the OPUS audio codec if the player response includes.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable debug logging","description":"Adds an option to enable debug logging.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable debug logging","description":"Adds an option to enable debug logging.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable external browser","description":"Adds an option to always open links in your browser instead of in the in-app-browser.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable gradient loading screen","description":"Adds an option to enable the gradient loading screen.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable landscape mode","description":"Adds an option to enable landscape mode when rotating the screen on phones.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable open links directly","description":"Adds an option to skip over redirection URLs in external links.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Flyout menu components","description":"Adds options to hide or change flyout menu components.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Force player buttons background","description":"Changes, at compile time, the dark background surrounding the video player controls.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"BackgroundColor","default":"?ytOverlayBackgroundMediumLight","values":{"Default":"?ytOverlayBackgroundMediumLight","Transparent":"@android:color/transparent","Opacity10":"#1a000000","Opacity20":"#33000000","Opacity30":"#4d000000","Opacity40":"#66000000","Opacity50":"#80000000","Opacity60":"#99000000","Opacity70":"#b3000000","Opacity80":"#cc000000","Opacity90":"#e6000000","Opacity100":"#ff000000"},"title":"Background color","description":"Specify a background color for player buttons using a hex color code. The first two symbols of the hex code represent the alpha channel, which is used to change the opacity.","required":false}]},{"name":"Force snackbar theme","description":"Force snackbar background color to match selected theme.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"CornerRadius","default":"8.0dip","values":null,"title":"Corner radius","description":"Specify a corner radius for the snackbar.","required":false},{"key":"BackgroundColor","default":"?ytChipBackground","values":{"Chip":"?ytChipBackground","Base":"?ytBaseBackground"},"title":"Background color","description":"Specify a background color for the snackbar. You can specify hex color.","required":false},{"key":"StrokeColor","default":"none","values":{"None":"none","Accent":"?attr/colorAccent","Inverted":"?attr/ytInvertedBackground"},"title":"Stroke color","description":"Specify a stroke color for the snackbar. You can specify hex color.","required":false}]},{"name":"Fullscreen components","description":"Adds options to hide or change components related to fullscreen.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"GmsCore support","description":"Allows patched Google apps to run without root and under a different package name by using GmsCore instead of Google Play Services.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"GmsCoreVendorGroupId","default":"app.revanced","values":{"ReVanced":"app.revanced"},"title":"GmsCore vendor group ID","description":"The vendor\u0027s group ID for GmsCore.","required":true},{"key":"CheckGmsCore","default":true,"values":null,"title":"Check GmsCore","description":"Check if GmsCore is installed on the device and has battery optimizations disabled when the app starts. \n\nIf GmsCore is not installed the app will not work, so disabling this is not recommended.","required":true},{"key":"PackageNameYouTube","default":"anddea.youtube","values":{"Clone":"bill.youtube","Default":"anddea.youtube"},"title":"Package name of YouTube","description":"The name of the package to use in GmsCore support.","required":true},{"key":"PackageNameYouTubeMusic","default":"anddea.youtube.music","values":{"Clone":"bill.youtube.music","Default":"anddea.youtube.music"},"title":"Package name of YouTube Music","description":"The name of the package to use in GmsCore support.","required":true}]},{"name":"GmsCore support","description":"Allows patched Google apps to run without root and under a different package name by using GmsCore instead of Google Play Services.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"GmsCoreVendorGroupId","default":"app.revanced","values":{"ReVanced":"app.revanced"},"title":"GmsCore vendor group ID","description":"The vendor\u0027s group ID for GmsCore.","required":true},{"key":"CheckGmsCore","default":true,"values":null,"title":"Check GmsCore","description":"Check if GmsCore is installed on the device and has battery optimizations disabled when the app starts. \n\nIf GmsCore is not installed the app will not work, so disabling this is not recommended.","required":true},{"key":"PackageNameYouTube","default":"anddea.youtube","values":{"Clone":"bill.youtube","Default":"anddea.youtube"},"title":"Package name of YouTube","description":"The name of the package to use in GmsCore support.","required":true},{"key":"PackageNameYouTubeMusic","default":"anddea.youtube.music","values":{"Clone":"bill.youtube.music","Default":"anddea.youtube.music"},"title":"Package name of YouTube Music","description":"The name of the package to use in GmsCore support.","required":true}]},{"name":"Hide Recently Visited shelf","description":"Adds an option to hide the Recently Visited shelf in the sidebar.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide Shorts dimming","description":"Removes, at compile time, the dimming effect at the top and bottom of Shorts videos.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide account components","description":"Adds options to hide components related to the account menu.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide action bar components","description":"Adds options to hide action bar components and replace the offline download button with an external download button.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide action buttons","description":"Adds options to hide action buttons under videos.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide ads","description":"Adds options to hide ads.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":true,"options":[]},{"name":"Hide ads","description":"Adds options to hide ads.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide ads","description":"Adds options to hide ads.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide comments components","description":"Adds options to hide components related to comments.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide feed components","description":"Adds options to hide components related to feeds.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide feed flyout menu","description":"Adds the ability to hide feed flyout menu components using a custom filter.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide layout components","description":"Adds options to hide general layout components.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide layout components","description":"Adds options to hide general layout components.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide navigation buttons","description":"Adds options to hide buttons in the navigation bar.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide overlay filter","description":"Removes, at compile time, the dark overlay that appears when player flyout menus are open.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide player buttons","description":"Adds options to hide buttons in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide player flyout menu","description":"Adds options to hide player flyout menu components.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide player overlay filter","description":"Removes, at compile time, the dark overlay that appears when single-tapping in the player.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide recommended communities shelf","description":"Adds an option to hide the recommended communities shelves in subreddits.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hook download actions","description":"Adds support to download videos with an external downloader app using the in-app download button.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Layout switch","description":"Adds an option to spoof the dpi in order to use a tablet or phone layout.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"MaterialYou","description":"Applies the MaterialYou theme for Android 12+ devices.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Miniplayer","description":"Adds options to change the in app minimized player, and if patching target 19.16+ adds options to use modern miniplayers.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Navigation bar components","description":"Adds options to hide or change components related to the navigation bar.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Navigation bar components","description":"Adds options to hide or change components related to the navigation bar.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Open links directly","description":"Adds an option to skip over redirection URLs in external links.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Open links externally","description":"Adds an option to always open links in your browser instead of in the in-app-browser.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Overlay buttons","description":"Adds options to display overlay buttons in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"IconType","default":"rounded","values":{"Bold":"bold","Rounded":"rounded","Thin":"thin"},"title":"Icon type","description":"The icon type.","required":true},{"key":"BottomMargin","default":"5.0dip","values":{"Wider":"10.0dip","Default":"5.0dip"},"title":"Bottom margin","description":"The bottom margin for the overlay buttons and timestamp.","required":true},{"key":"ChangeTopButtons","default":false,"values":null,"title":"Change top buttons","description":"Change the icons at the top of the player.","required":true}]},{"name":"Player components","description":"Adds options to hide or change components related to the player.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Player components","description":"Adds options to hide or change components related to the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Premium icon","description":"Unlocks premium app icons.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove background playback restrictions","description":"Removes restrictions on background playback, including for kids videos.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove background playback restrictions","description":"Removes restrictions on background playback, including for music and kids videos.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove subreddit dialog","description":"Adds options to remove the NSFW community warning and notifications suggestion dialogs by dismissing them automatically.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove viewer discretion dialog","description":"Adds an option to remove the dialog that appears when opening a video that has been age-restricted by accepting it automatically. This does not bypass the age restriction.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove viewer discretion dialog","description":"Adds an option to remove the dialog that appears when opening a video that has been age-restricted by accepting it automatically. This does not bypass the age restriction.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Restore old style library shelf","description":"Adds an option to return the Library tab to the old style.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Return YouTube Dislike","description":"Adds an option to show the dislike count of songs using the Return YouTube Dislike API.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Return YouTube Dislike","description":"Adds an option to show the dislike count of videos using the Return YouTube Dislike API.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Sanitize sharing links","description":"Adds an option to remove tracking query parameters from URLs when sharing links.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Sanitize sharing links","description":"Adds an option to remove tracking query parameters from URLs when sharing links.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Sanitize sharing links","description":"Adds an option to remove tracking query parameters from URLs when sharing links.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Seekbar components","description":"Adds options to hide or change components related to the seekbar.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"CairoStartColor","default":"#ffff2791","values":null,"title":"Cairo start color","description":"Set Cairo start color for the seekbar.","required":false},{"key":"CairoEndColor","default":"#ffff0033","values":null,"title":"Cairo end color","description":"Set Cairo end color for the seekbar.","required":false}]},{"name":"Settings for Reddit","description":"Applies mandatory patches to implement ReVanced Extended settings into the application.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"RVXSettingsMenuName","default":"ReVanced Extended","values":null,"title":"RVX settings menu name","description":"The name of the RVX settings menu.","required":true}]},{"name":"Settings for YouTube","description":"Applies mandatory patches to implement ReVanced Extended settings into the application.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"InsertPosition","default":"About","values":{"Parent settings":"@string/parent_tools_key","General":"@string/general_key","Account":"@string/account_switcher_key","Data saving":"@string/data_saving_settings_key","Autoplay":"@string/auto_play_key","Video quality preferences":"@string/video_quality_settings_key","Background":"@string/offline_key","Watch on TV":"@string/pair_with_tv_key","Manage all history":"@string/history_key","Your data in YouTube":"@string/your_data_key","Privacy":"@string/privacy_key","History \u0026 privacy":"@string/privacy_key","Try experimental new features":"@string/premium_early_access_browse_page_key","Purchases and memberships":"@string/subscription_product_setting_key","Billing \u0026 payments":"@string/billing_and_payment_key","Billing and payments":"@string/billing_and_payment_key","Notifications":"@string/notification_key","Connected apps":"@string/connected_accounts_browse_page_key","Live chat":"@string/live_chat_key","Captions":"@string/captions_key","Accessibility":"@string/accessibility_settings_key","About":"@string/about_key"},"title":"Insert position","description":"The settings menu name that the RVX settings menu should be above.","required":true},{"key":"RVXSettingsMenuName","default":"ReVanced Extended","values":null,"title":"RVX settings menu name","description":"The name of the RVX settings menu.","required":true}]},{"name":"Settings for YouTube Music","description":"Applies mandatory patches to implement ReVanced Extended settings into the application.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"RVXSettingsMenuName","default":"ReVanced Extended","values":null,"title":"RVX settings menu name","description":"The name of the RVX settings menu.","required":true}]},{"name":"Shorts components","description":"Adds options to hide or change components related to YouTube Shorts.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"SponsorBlock","description":"Adds options to enable and configure SponsorBlock, which can skip undesired video segments, such as non-music sections.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"SponsorBlock","description":"Adds options to enable and configure SponsorBlock, which can skip undesired video segments, such as sponsored content.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"OutlineIcon","default":true,"values":null,"title":"Outline icons","description":"Apply the outline icon.","required":true}]},{"name":"Spoof app version","description":"Adds options to spoof the YouTube Music client version. This can remove the radio mode restriction in Canadian regions or disable real-time lyrics.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Spoof app version","description":"Adds options to spoof the YouTube client version. This can be used to restore old UI elements and features.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Spoof streaming data","description":"Adds options to spoof the streaming data to allow video playback.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Spoof watch history","description":"Adds an option to change the domain of the watch history or check its status.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Swipe controls","description":"Adds options for controlling volume and brightness with swiping, and whether to enter fullscreen when swiping down below the player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Theme","description":"Changes the app\u0027s theme to the values specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"DarkThemeBackgroundColor","default":"@android:color/black","values":{"Amoled Black":"@android:color/black","Catppuccin (Mocha)":"#FF181825","Dark Pink":"#FF290025","Dark Blue":"#FF001029","Dark Green":"#FF002905","Dark Yellow":"#FF282900","Dark Orange":"#FF291800","Dark Red":"#FF290000"},"title":"Dark theme background color","description":"Can be a hex color (#AARRGGBB) or a color resource reference.","required":true},{"key":"LightThemeBackgroundColor","default":"@android:color/white","values":{"White":"@android:color/white","Catppuccin (Latte)":"#FFE6E9EF","Light Pink":"#FFFCCFF3","Light Blue":"#FFD1E0FF","Light Green":"#FFCCFFCC","Light Yellow":"#FFFDFFCC","Light Orange":"#FFFFE6CC","Light Red":"#FFFFD6D6"},"title":"Light theme background color","description":"Can be a hex color (#AARRGGBB) or a color resource reference.","required":true}]},{"name":"Toolbar components","description":"Adds options to hide or change components located on the toolbar, such as toolbar buttons, search bar, and header.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Translations","description":"Adds Crowdin translations for YouTube Music.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"CustomLanguage","default":"","values":null,"title":"Custom language file","description":"The file path to the strings.xml file.\nPlease note that applying the strings.xml file will overwrite all existing language translations.","required":false},{"key":"SelectedLanguages","default":"bg-rBG, bn, cs-rCZ, el-rGR, es-rES, fr-rFR, hu-rHU, id-rID, in, it-rIT, ja-rJP, ko-rKR, nl-rNL, pl-rPL, pt-rBR, ro-rRO, ru-rRU, tr-rTR, uk-rUA, vi-rVN, zh-rCN, zh-rTW","values":null,"title":"Selected RVX languages","description":"Selected RVX languages that will be added.","required":false},{"key":"SelectedAppLanguages","default":"af, am, ar, ar-rXB, as, az, b+es+419, b+sr+Latn, be, bg, bn, bs, ca, cs, da, de, el, en-rAU, en-rCA, en-rGB, en-rIN, en-rXA, en-rXC, es, es-rUS, et, eu, fa, fi, fr, fr-rCA, gl, gu, hi, hr, hu, hy, id, in, is, it, iw, ja, ka, kk, km, kn, ko, ky, lo, lt, lv, mk, ml, mn, mr, ms, my, nb, ne, nl, no, or, pa, pl, pt, pt-rBR, pt-rPT, ro, ru, si, sk, sl, sq, sr, sv, sw, ta, te, th, tl, tr, uk, ur, uz, vi, zh, zh-rCN, zh-rHK, zh-rTW, zu","values":null,"title":"Selected app languages","description":"Selected app languages that will be kept, languages that are not in the list will be removed from the app.","required":false}]},{"name":"Translations","description":"Add Crowdin translations for YouTube.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"CustomLanguage","default":"","values":null,"title":"Custom language file","description":"The file path to the strings.xml file.\nPlease note that applying the strings.xml file will overwrite all existing language translations.","required":false},{"key":"SelectedLanguages","default":"ar, bg-rBG, bn, de-rDE, el-rGR, es-rES, fi-rFI, fr-rFR, hu-rHU, id-rID, in, it-rIT, ja-rJP, ko-rKR, pl-rPL, pt-rBR, ru-rRU, tr-rTR, uk-rUA, vi-rVN, zh-rCN, zh-rTW","values":null,"title":"Selected RVX languages","description":"Selected RVX languages that will be added.","required":false},{"key":"SelectedAppLanguages","default":"af, am, ar, ar-rXB, as, az, b+es+419, b+sr+Latn, be, bg, bn, bs, ca, cs, da, de, el, en-rAU, en-rCA, en-rGB, en-rIN, en-rXA, en-rXC, es, es-rUS, et, eu, fa, fi, fr, fr-rCA, gl, gu, hi, hr, hu, hy, id, in, is, it, iw, ja, ka, kk, km, kn, ko, ky, lo, lt, lv, mk, ml, mn, mr, ms, my, nb, ne, nl, no, or, pa, pl, pt, pt-rBR, pt-rPT, ro, ru, si, sk, sl, sq, sr, sv, sw, ta, te, th, tl, tr, uk, ur, uz, vi, zh, zh-rCN, zh-rHK, zh-rTW, zu","values":null,"title":"Selected app languages","description":"Selected app languages that will be kept, languages that are not in the list will be removed from the app.","required":false}]},{"name":"Video playback","description":"Adds options to customize settings related to video playback, such as default video quality and playback speed.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Video playback","description":"Adds options to customize settings related to video playback, such as default video quality and playback speed.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Visual preferences icons","description":"Adds icons to specific preferences in the settings.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"ExtendedIcon","default":"Extension","values":{"Custom branding icon":"custom_branding_icon","Extension":"extension","Gear":"gear","ReVanced":"revanced","ReVanced Colored":"revanced_colored"},"title":"Extended icon","description":"Apply different icons for Extended preference.","required":false}]},{"name":"Visual preferences icons","description":"Adds icons to specific preferences in the settings.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"ExtendedIcon","default":"Extension","values":{"Custom branding icon":"custom_branding_icon","Extension":"extension","Gear":"gear","ReVanced":"revanced","ReVanced Colored":"revanced_colored"},"title":"RVX settings menu icon","description":"The icon for the RVX settings menu.","required":true}]}] \ No newline at end of file +[{"name":"Alternative thumbnails","description":"Adds options to replace video thumbnails using the DeArrow API or image captures from the video.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Ambient mode control","description":"Adds options to disable Ambient mode and to bypass Ambient mode restrictions.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Amoled","description":"Applies a pure black theme to some components.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Bitrate default value","description":"Sets the audio quality to \u0027Always High\u0027 when you first install the app.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Bypass image region restrictions","description":"Adds an option to use a different host for static images, so that images blocked in some countries can be received.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Bypass image region restrictions","description":"Adds an option to use a different host for static images, so that images blocked in some countries can be received.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Certificate spoof","description":"Enables YouTube Music to work with Android Auto by spoofing the YouTube Music certificate.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change package name","description":"Changes the package name for Reddit to the name specified in options.json.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"PackageNameReddit","default":"com.reddit.frontpage","values":{"Clone":"com.reddit.frontpage.revanced","Default":"com.reddit.frontpage.rvx","Original":"com.reddit.frontpage"},"title":"Package name of Reddit","description":"The name of the package to rename the app to.","required":true}]},{"name":"Change player flyout menu toggles","description":"Adds an option to use text toggles instead of switch toggles within the additional settings menu.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change share sheet","description":"Add option to change from in-app share sheet to system share sheet.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change share sheet","description":"Add option to change from in-app share sheet to system share sheet.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change start page","description":"Adds an option to set which page the app opens in instead of the homepage.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change start page","description":"Adds an option to set which page the app opens in instead of the homepage.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change version code","description":"Changes the version code of the app to the value specified in options.json. Except when mounting, this can prevent app stores from updating the app and allow the app to be installed over an existing installation that has a higher version code. By default, the highest version code is set.","compatiblePackages":null,"use":false,"requiresIntegrations":false,"options":[{"key":"ChangeVersionCode","default":false,"values":null,"title":"Change version code","description":"Changes the version code of the app.","required":true},{"key":"VersionCode","default":"2147483647","values":null,"title":"Version code","description":"The version code to use. (1 ~ 2147483647)","required":true}]},{"name":"Custom Shorts action buttons","description":"Changes, at compile time, the icon of the action buttons of the Shorts player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"IconType","default":"round","values":{"Outline":"outline","OutlineCircle":"outlinecircle","Round":"round","YouTube":"youtube","YouTubeOutline":"youtubeoutline"},"title":"Shorts icon style ","description":"The style of the icons for the action buttons in the Shorts player.","required":true}]},{"name":"Custom branding icon for YouTube","description":"Changes the YouTube app icon to the icon specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppIcon","default":"Xisr Yellow","values":{"AFN Blue":"afn_blue","AFN Red":"afn_red","MMT":"mmt","MMT Blue":"mmt_blue","MMT Green":"mmt_green","MMT Yellow":"mmt_yellow","Revancify Blue":"revancify_blue","Revancify Red":"revancify_red","Vanced Black":"vanced_black","Vanced Light":"vanced_light","Xisr Yellow":"xisr_yellow","YouTube":"youtube"},"title":"App icon","description":"The icon to apply to the app.\n\nIf a path to a folder is provided, the folder must contain the following folders:\n\n- mipmap-xxxhdpi\n- mipmap-xxhdpi\n- mipmap-xhdpi\n- mipmap-hdpi\n- mipmap-mdpi\n\nEach of these folders must contain the following files:\n\n- adaptiveproduct_youtube_background_color_108.png\n- adaptiveproduct_youtube_foreground_color_108.png\n- ic_launcher.png\n- ic_launcher_round.png","required":true},{"key":"ChangeHeader","default":true,"values":null,"title":"Change header","description":"Apply the custom branding icon to the header.","required":true},{"key":"CustomHeader","default":"","values":null,"title":"Custom header","description":"The header to apply to the app.\n\nIf a path to a folder is provided, the folder must contain one or more of the following folders, depending on the DPI of the device:\n\n- drawable-xxxhdpi\n- drawable-xxhdpi\n- drawable-xhdpi\n- drawable-hdpi\n- drawable-mdpi\n\nEach of the folders must contain all of the following files:\n\n- yt_premium_wordmark_header_dark.png\n- yt_premium_wordmark_header_light.png\n- yt_wordmark_header_dark.png\n- yt_wordmark_header_light.png\n\nThe image dimensions must be as follows:\n- drawable-xxxhdpi: 512px x 192px\n- drawable-xxhdpi: 387px x 144px\n- drawable-xhdpi: 258px x 96px\n- drawable-hdpi: 194px x 72px\n- drawable-mdpi: 129px x 48px","required":true},{"key":"ChangeSplashIcon","default":true,"values":null,"title":"Change splash icons","description":"Apply the custom branding icon to the splash screen.","required":true},{"key":"RestoreOldSplashAnimation","default":true,"values":null,"title":"Restore old splash animation","description":"Restore the old style splash animation.","required":true}]},{"name":"Custom branding icon for YouTube Music","description":"Changes the YouTube Music app icon to the icon specified in options.json.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppIcon","default":"Xisr Yellow","values":{"AFN Blue":"afn_blue","AFN Red":"afn_red","MMT":"mmt","MMT Blue":"mmt_blue","MMT Green":"mmt_green","MMT Yellow":"mmt_yellow","Revancify Blue":"revancify_blue","Revancify Red":"revancify_red","Vanced Black":"vanced_black","Vanced Light":"vanced_light","Xisr Yellow":"xisr_yellow","YouTube Music":"youtube_music"},"title":"App icon","description":"The icon to apply to the app.\n\nIf a path to a folder is provided, the folder must contain the following folders:\n\n- mipmap-xxxhdpi\n- mipmap-xxhdpi\n- mipmap-xhdpi\n- mipmap-hdpi\n- mipmap-mdpi\n\nEach of these folders must contain the following files:\n\n- adaptiveproduct_youtube_music_background_color_108.png\n- adaptiveproduct_youtube_music_foreground_color_108.png\n- ic_launcher_release.png","required":true},{"key":"ChangeHeader","default":true,"values":null,"title":"Change header","description":"Apply the custom branding icon to the header.","required":true},{"key":"ChangeSplashIcon","default":true,"values":null,"title":"Change splash icons","description":"Apply the custom branding icon to the splash screen.","required":true},{"key":"RestoreOldSplashIcon","default":false,"values":null,"title":"Restore old splash icon","description":"Restore the old style splash icon.\n\nIf you enable both the old style splash icon and the Cairo splash animation,\n\nOld style splash icon will appear first and then the Cairo splash animation will start.","required":true}]},{"name":"Custom branding name for Reddit","description":"Renames the Reddit app to the name specified in options.json.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppName","default":"Reddit","values":{"Default":"RVX Reddit","Original":"Reddit"},"title":"App name","description":"The name of the app.","required":true}]},{"name":"Custom branding name for YouTube","description":"Renames the YouTube app to the name specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppName","default":"RVX","values":{"ReVanced Extended":"ReVanced Extended","RVX":"RVX","YouTube RVX":"YouTube RVX","YouTube":"YouTube"},"title":"App name","description":"The name of the app.","required":true}]},{"name":"Custom branding name for YouTube Music","description":"Renames the YouTube Music app to the name specified in options.json.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppNameNotification","default":"RVX Music","values":{"ReVanced Extended Music":"ReVanced Extended Music","RVX Music":"RVX Music","YouTube Music":"YouTube Music","YT Music":"YT Music"},"title":"App name in notification panel","description":"The name of the app as it appears in the notification panel.","required":true},{"key":"AppNameLauncher","default":"RVX Music","values":{"ReVanced Extended Music":"ReVanced Extended Music","RVX Music":"RVX Music","YouTube Music":"YouTube Music","YT Music":"YT Music"},"title":"App name in launcher","description":"The name of the app as it appears in the launcher.","required":true}]},{"name":"Custom double tap length","description":"Adds Double-tap to seek values that are specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"DoubleTapLengthArrays","default":"3, 5, 10, 15, 20, 30, 60, 120, 180","values":null,"title":"Double-tap to seek values","description":"A list of custom Double-tap to seek lengths to be added, separated by commas.","required":true}]},{"name":"Custom header for YouTube Music","description":"Applies a custom header in the top left corner within the app.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"CustomHeader","default":"custom_branding_icon","values":{"Custom branding icon":"custom_branding_icon"},"title":"Custom header","description":"The header to apply to the app.\n\nPatch option \u0027Custom branding icon\u0027 applies only when:\n\n1. Patch \u0027Custom branding icon for YouTube Music\u0027 is included.\n2. Patch option for \u0027Custom branding icon for YouTube Music\u0027 is selected from the preset.\n\nIf a path to a folder is provided, the folder must contain one or more of the following folders, depending on the DPI of the device:\n\n- drawable-xxxhdpi\n- drawable-xxhdpi\n- drawable-xhdpi\n- drawable-hdpi\n- drawable-mdpi\n\nEach of the folders must contain all of the following files:\n\n- action_bar_logo.png\n- logo_music.png\n- ytm_logo.png\n\nThe image \u0027action_bar_logo.png\u0027 dimensions must be as follows:\n\n- drawable-xxxhdpi: 320px x 96px\n- drawable-xxhdpi: 240px x 72px\n- drawable-xhdpi: 160px x 48px\n- drawable-hdpi: 121px x 36px\n- drawable-mdpi: 80px x 24px\n\nThe image \u0027logo_music.png\u0027 dimensions must be as follows:\n\n- drawable-xxxhdpi: 576px x 200px\n- drawable-xxhdpi: 432px x 150px\n- drawable-xhdpi: 288px x 100px\n- drawable-hdpi: 217px x 76px\n- drawable-mdpi: 144px x 50px\n\nThe image \u0027ytm_logo.png\u0027 dimensions must be as follows:\n\n- drawable-xxxhdpi: 412px x 144px\n- drawable-xxhdpi: 309px x 108px\n- drawable-xhdpi: 206px x 72px\n- drawable-hdpi: 155px x 54px\n- drawable-mdpi: 103px x 36px","required":true}]},{"name":"Description components","description":"Adds options to hide and disable description components.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable Cairo splash animation","description":"Adds an option to disable Cairo splash animation.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["7.06.54","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable QUIC protocol","description":"Adds an option to disable CronetEngine\u0027s QUIC protocol.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable auto audio tracks","description":"Adds an option to disable audio tracks from being automatically enabled.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable auto captions","description":"Adds an option to disable captions from being automatically enabled.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable auto captions","description":"Adds an option to disable captions from being automatically enabled.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable dislike redirection","description":"Adds an option to disable redirection to the next track when clicking the Dislike button.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable haptic feedback","description":"Adds options to disable haptic feedback when swiping in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable resuming Shorts on startup","description":"Adds an option to disable the Shorts player from resuming on app startup when Shorts were last being watched.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable screenshot popup","description":"Adds an option to disable the popup that appears when taking a screenshot.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable splash animation","description":"Adds an option to disable the splash animation on app startup.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable OPUS codec","description":"Adds an option to use the OPUS audio codec instead of the MP4A audio codec.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable OPUS codec","description":"Adds an options to enable the OPUS audio codec if the player response includes.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable debug logging","description":"Adds an option to enable debug logging.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable debug logging","description":"Adds an option to enable debug logging.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable external browser","description":"Adds an option to always open links in your browser instead of in the in-app-browser.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable gradient loading screen","description":"Adds an option to enable the gradient loading screen.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable landscape mode","description":"Adds an option to enable landscape mode when rotating the screen on phones.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable open links directly","description":"Adds an option to skip over redirection URLs in external links.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Flyout menu components","description":"Adds options to hide or change flyout menu components.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Force player buttons background","description":"Changes, at compile time, the dark background surrounding the video player controls.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"BackgroundColor","default":"?ytOverlayBackgroundMediumLight","values":{"Default":"?ytOverlayBackgroundMediumLight","Transparent":"@android:color/transparent","Opacity10":"#1a000000","Opacity20":"#33000000","Opacity30":"#4d000000","Opacity40":"#66000000","Opacity50":"#80000000","Opacity60":"#99000000","Opacity70":"#b3000000","Opacity80":"#cc000000","Opacity90":"#e6000000","Opacity100":"#ff000000"},"title":"Background color","description":"Specify a background color for player buttons using a hex color code. The first two symbols of the hex code represent the alpha channel, which is used to change the opacity.","required":false}]},{"name":"Force snackbar theme","description":"Force snackbar background color to match selected theme.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"CornerRadius","default":"8.0dip","values":null,"title":"Corner radius","description":"Specify a corner radius for the snackbar.","required":false},{"key":"BackgroundColor","default":"?ytChipBackground","values":{"Chip":"?ytChipBackground","Base":"?ytBaseBackground"},"title":"Background color","description":"Specify a background color for the snackbar. You can specify hex color.","required":false},{"key":"StrokeColor","default":"none","values":{"None":"none","Accent":"?attr/colorAccent","Inverted":"?attr/ytInvertedBackground"},"title":"Stroke color","description":"Specify a stroke color for the snackbar. You can specify hex color.","required":false}]},{"name":"Fullscreen components","description":"Adds options to hide or change components related to fullscreen.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"GmsCore support","description":"Allows patched Google apps to run without root and under a different package name by using GmsCore instead of Google Play Services.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"GmsCoreVendorGroupId","default":"app.revanced","values":{"ReVanced":"app.revanced"},"title":"GmsCore vendor group ID","description":"The vendor\u0027s group ID for GmsCore.","required":true},{"key":"CheckGmsCore","default":true,"values":null,"title":"Check GmsCore","description":"Check if GmsCore is installed on the device and has battery optimizations disabled when the app starts. \n\nIf GmsCore is not installed the app will not work, so disabling this is not recommended.","required":true},{"key":"PackageNameYouTube","default":"anddea.youtube","values":{"Clone":"bill.youtube","Default":"anddea.youtube"},"title":"Package name of YouTube","description":"The name of the package to use in GmsCore support.","required":true},{"key":"PackageNameYouTubeMusic","default":"anddea.youtube.music","values":{"Clone":"bill.youtube.music","Default":"anddea.youtube.music"},"title":"Package name of YouTube Music","description":"The name of the package to use in GmsCore support.","required":true}]},{"name":"GmsCore support","description":"Allows patched Google apps to run without root and under a different package name by using GmsCore instead of Google Play Services.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"GmsCoreVendorGroupId","default":"app.revanced","values":{"ReVanced":"app.revanced"},"title":"GmsCore vendor group ID","description":"The vendor\u0027s group ID for GmsCore.","required":true},{"key":"CheckGmsCore","default":true,"values":null,"title":"Check GmsCore","description":"Check if GmsCore is installed on the device and has battery optimizations disabled when the app starts. \n\nIf GmsCore is not installed the app will not work, so disabling this is not recommended.","required":true},{"key":"PackageNameYouTube","default":"anddea.youtube","values":{"Clone":"bill.youtube","Default":"anddea.youtube"},"title":"Package name of YouTube","description":"The name of the package to use in GmsCore support.","required":true},{"key":"PackageNameYouTubeMusic","default":"anddea.youtube.music","values":{"Clone":"bill.youtube.music","Default":"anddea.youtube.music"},"title":"Package name of YouTube Music","description":"The name of the package to use in GmsCore support.","required":true}]},{"name":"Hide Recently Visited shelf","description":"Adds an option to hide the Recently Visited shelf in the sidebar.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide Shorts dimming","description":"Removes, at compile time, the dimming effect at the top and bottom of Shorts videos.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide account components","description":"Adds options to hide components related to the account menu.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide action bar components","description":"Adds options to hide action bar components and replace the offline download button with an external download button.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide action buttons","description":"Adds options to hide action buttons under videos.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide ads","description":"Adds options to hide ads.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":true,"options":[]},{"name":"Hide ads","description":"Adds options to hide ads.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide ads","description":"Adds options to hide ads.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide comments components","description":"Adds options to hide components related to comments.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide feed components","description":"Adds options to hide components related to feeds.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide feed flyout menu","description":"Adds the ability to hide feed flyout menu components using a custom filter.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide layout components","description":"Adds options to hide general layout components.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide layout components","description":"Adds options to hide general layout components.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide navigation buttons","description":"Adds options to hide buttons in the navigation bar.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide overlay filter","description":"Removes, at compile time, the dark overlay that appears when player flyout menus are open.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide player buttons","description":"Adds options to hide buttons in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide player flyout menu","description":"Adds options to hide player flyout menu components.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide player overlay filter","description":"Removes, at compile time, the dark overlay that appears when single-tapping in the player.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide recommended communities shelf","description":"Adds an option to hide the recommended communities shelves in subreddits.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hook download actions","description":"Adds support to download videos with an external downloader app using the in-app download button.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Layout switch","description":"Adds an option to spoof the dpi in order to use a tablet or phone layout.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"MaterialYou","description":"Applies the MaterialYou theme for Android 12+ devices.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Miniplayer","description":"Adds options to change the in app minimized player, and if patching target 19.16+ adds options to use modern miniplayers.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Navigation bar components","description":"Adds options to hide or change components related to the navigation bar.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Navigation bar components","description":"Adds options to hide or change components related to the navigation bar.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Open links directly","description":"Adds an option to skip over redirection URLs in external links.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Open links externally","description":"Adds an option to always open links in your browser instead of in the in-app-browser.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Overlay buttons","description":"Adds options to display overlay buttons in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"IconType","default":"rounded","values":{"Bold":"bold","Rounded":"rounded","Thin":"thin"},"title":"Icon type","description":"The icon type.","required":true},{"key":"BottomMargin","default":"5.0dip","values":{"Wider":"10.0dip","Default":"5.0dip"},"title":"Bottom margin","description":"The bottom margin for the overlay buttons and timestamp.","required":true},{"key":"ChangeTopButtons","default":false,"values":null,"title":"Change top buttons","description":"Change the icons at the top of the player.","required":true}]},{"name":"Player components","description":"Adds options to hide or change components related to the player.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Player components","description":"Adds options to hide or change components related to the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Premium icon","description":"Unlocks premium app icons.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove background playback restrictions","description":"Removes restrictions on background playback, including for kids videos.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove background playback restrictions","description":"Removes restrictions on background playback, including for music and kids videos.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove subreddit dialog","description":"Adds options to remove the NSFW community warning and notifications suggestion dialogs by dismissing them automatically.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove viewer discretion dialog","description":"Adds an option to remove the dialog that appears when opening a video that has been age-restricted by accepting it automatically. This does not bypass the age restriction.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove viewer discretion dialog","description":"Adds an option to remove the dialog that appears when opening a video that has been age-restricted by accepting it automatically. This does not bypass the age restriction.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Restore old style library shelf","description":"Adds an option to return the Library tab to the old style.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Return YouTube Dislike","description":"Adds an option to show the dislike count of songs using the Return YouTube Dislike API.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Return YouTube Dislike","description":"Adds an option to show the dislike count of videos using the Return YouTube Dislike API.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Sanitize sharing links","description":"Adds an option to remove tracking query parameters from URLs when sharing links.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Sanitize sharing links","description":"Adds an option to remove tracking query parameters from URLs when sharing links.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Sanitize sharing links","description":"Adds an option to remove tracking query parameters from URLs when sharing links.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Seekbar components","description":"Adds options to hide or change components related to the seekbar.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"CairoStartColor","default":"#ffff2791","values":null,"title":"Cairo start color","description":"Set Cairo start color for the seekbar.","required":false},{"key":"CairoEndColor","default":"#ffff0033","values":null,"title":"Cairo end color","description":"Set Cairo end color for the seekbar.","required":false}]},{"name":"Settings for Reddit","description":"Applies mandatory patches to implement ReVanced Extended settings into the application.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":["2023.12.0","2024.17.0"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"RVXSettingsMenuName","default":"ReVanced Extended","values":null,"title":"RVX settings menu name","description":"The name of the RVX settings menu.","required":true}]},{"name":"Settings for YouTube","description":"Applies mandatory patches to implement ReVanced Extended settings into the application.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"InsertPosition","default":"About","values":{"Parent settings":"@string/parent_tools_key","General":"@string/general_key","Account":"@string/account_switcher_key","Data saving":"@string/data_saving_settings_key","Autoplay":"@string/auto_play_key","Video quality preferences":"@string/video_quality_settings_key","Background":"@string/offline_key","Watch on TV":"@string/pair_with_tv_key","Manage all history":"@string/history_key","Your data in YouTube":"@string/your_data_key","Privacy":"@string/privacy_key","History \u0026 privacy":"@string/privacy_key","Try experimental new features":"@string/premium_early_access_browse_page_key","Purchases and memberships":"@string/subscription_product_setting_key","Billing \u0026 payments":"@string/billing_and_payment_key","Billing and payments":"@string/billing_and_payment_key","Notifications":"@string/notification_key","Connected apps":"@string/connected_accounts_browse_page_key","Live chat":"@string/live_chat_key","Captions":"@string/captions_key","Accessibility":"@string/accessibility_settings_key","About":"@string/about_key"},"title":"Insert position","description":"The settings menu name that the RVX settings menu should be above.","required":true},{"key":"RVXSettingsMenuName","default":"ReVanced Extended","values":null,"title":"RVX settings menu name","description":"The name of the RVX settings menu.","required":true}]},{"name":"Settings for YouTube Music","description":"Applies mandatory patches to implement ReVanced Extended settings into the application.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":true,"options":[{"key":"RVXSettingsMenuName","default":"ReVanced Extended","values":null,"title":"RVX settings menu name","description":"The name of the RVX settings menu.","required":true}]},{"name":"Shorts components","description":"Adds options to hide or change components related to YouTube Shorts.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"SponsorBlock","description":"Adds options to enable and configure SponsorBlock, which can skip undesired video segments, such as non-music sections.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"SponsorBlock","description":"Adds options to enable and configure SponsorBlock, which can skip undesired video segments, such as sponsored content.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"OutlineIcon","default":true,"values":null,"title":"Outline icons","description":"Apply the outline icon.","required":true},{"key":"NewSegmentAlignment","default":"right","values":{"Right":"right","Left":"left"},"title":"New segment alignment","description":"Align new segment window.","required":true}]},{"name":"Spoof app version","description":"Adds options to spoof the YouTube Music client version. This can remove the radio mode restriction in Canadian regions or disable real-time lyrics.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Spoof app version","description":"Adds options to spoof the YouTube client version. This can be used to restore old UI elements and features.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Spoof streaming data","description":"Adds options to spoof the streaming data to allow video playback.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Spoof watch history","description":"Adds an option to change the domain of the watch history or check its status.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Swipe controls","description":"Adds options for controlling volume and brightness with swiping, and whether to enter fullscreen when swiping down below the player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Theme","description":"Changes the app\u0027s theme to the values specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"DarkThemeBackgroundColor","default":"@android:color/black","values":{"Amoled Black":"@android:color/black","Catppuccin (Mocha)":"#FF181825","Dark Pink":"#FF290025","Dark Blue":"#FF001029","Dark Green":"#FF002905","Dark Yellow":"#FF282900","Dark Orange":"#FF291800","Dark Red":"#FF290000"},"title":"Dark theme background color","description":"Can be a hex color (#AARRGGBB) or a color resource reference.","required":true},{"key":"LightThemeBackgroundColor","default":"@android:color/white","values":{"White":"@android:color/white","Catppuccin (Latte)":"#FFE6E9EF","Light Pink":"#FFFCCFF3","Light Blue":"#FFD1E0FF","Light Green":"#FFCCFFCC","Light Yellow":"#FFFDFFCC","Light Orange":"#FFFFE6CC","Light Red":"#FFFFD6D6"},"title":"Light theme background color","description":"Can be a hex color (#AARRGGBB) or a color resource reference.","required":true}]},{"name":"Toolbar components","description":"Adds options to hide or change components located on the toolbar, such as toolbar buttons, search bar, and header.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Translations","description":"Adds Crowdin translations for YouTube Music.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"CustomLanguage","default":"","values":null,"title":"Custom language file","description":"The file path to the strings.xml file.\nPlease note that applying the strings.xml file will overwrite all existing language translations.","required":false},{"key":"SelectedLanguages","default":"bg-rBG, bn, cs-rCZ, el-rGR, es-rES, fr-rFR, hu-rHU, id-rID, in, it-rIT, ja-rJP, ko-rKR, nl-rNL, pl-rPL, pt-rBR, ro-rRO, ru-rRU, tr-rTR, uk-rUA, vi-rVN, zh-rCN, zh-rTW","values":null,"title":"Selected RVX languages","description":"Selected RVX languages that will be added.","required":false},{"key":"SelectedAppLanguages","default":"af, am, ar, ar-rXB, as, az, b+es+419, b+sr+Latn, be, bg, bn, bs, ca, cs, da, de, el, en-rAU, en-rCA, en-rGB, en-rIN, en-rXA, en-rXC, es, es-rUS, et, eu, fa, fi, fr, fr-rCA, gl, gu, hi, hr, hu, hy, id, in, is, it, iw, ja, ka, kk, km, kn, ko, ky, lo, lt, lv, mk, ml, mn, mr, ms, my, nb, ne, nl, no, or, pa, pl, pt, pt-rBR, pt-rPT, ro, ru, si, sk, sl, sq, sr, sv, sw, ta, te, th, tl, tr, uk, ur, uz, vi, zh, zh-rCN, zh-rHK, zh-rTW, zu","values":null,"title":"Selected app languages","description":"Selected app languages that will be kept, languages that are not in the list will be removed from the app.","required":false}]},{"name":"Translations","description":"Add Crowdin translations for YouTube.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"CustomLanguage","default":"","values":null,"title":"Custom language file","description":"The file path to the strings.xml file.\nPlease note that applying the strings.xml file will overwrite all existing language translations.","required":false},{"key":"SelectedLanguages","default":"ar, bg-rBG, bn, de-rDE, el-rGR, es-rES, fi-rFI, fr-rFR, hu-rHU, id-rID, in, it-rIT, ja-rJP, ko-rKR, pl-rPL, pt-rBR, ru-rRU, tr-rTR, uk-rUA, vi-rVN, zh-rCN, zh-rTW","values":null,"title":"Selected RVX languages","description":"Selected RVX languages that will be added.","required":false},{"key":"SelectedAppLanguages","default":"af, am, ar, ar-rXB, as, az, b+es+419, b+sr+Latn, be, bg, bn, bs, ca, cs, da, de, el, en-rAU, en-rCA, en-rGB, en-rIN, en-rXA, en-rXC, es, es-rUS, et, eu, fa, fi, fr, fr-rCA, gl, gu, hi, hr, hu, hy, id, in, is, it, iw, ja, ka, kk, km, kn, ko, ky, lo, lt, lv, mk, ml, mn, mr, ms, my, nb, ne, nl, no, or, pa, pl, pt, pt-rBR, pt-rPT, ro, ru, si, sk, sl, sq, sr, sv, sw, ta, te, th, tl, tr, uk, ur, uz, vi, zh, zh-rCN, zh-rHK, zh-rTW, zu","values":null,"title":"Selected app languages","description":"Selected app languages that will be kept, languages that are not in the list will be removed from the app.","required":false}]},{"name":"Video playback","description":"Adds options to customize settings related to video playback, such as default video quality and playback speed.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Video playback","description":"Adds options to customize settings related to video playback, such as default video quality and playback speed.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Visual preferences icons","description":"Adds icons to specific preferences in the settings.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.20.51","6.29.58","6.33.52","6.42.55","6.51.53","7.16.52"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"ExtendedIcon","default":"Extension","values":{"Custom branding icon":"custom_branding_icon","Extension":"extension","Gear":"gear","ReVanced":"revanced","ReVanced Colored":"revanced_colored"},"title":"Extended icon","description":"Apply different icons for Extended preference.","required":false}]},{"name":"Visual preferences icons","description":"Adds icons to specific preferences in the settings.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.29.38","18.33.40","18.38.44","18.48.39","19.05.36","19.16.39"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"ExtendedIcon","default":"Extension","values":{"Custom branding icon":"custom_branding_icon","Extension":"extension","Gear":"gear","ReVanced":"revanced","ReVanced Colored":"revanced_colored"},"title":"RVX settings menu icon","description":"The icon for the RVX settings menu.","required":true}]}] \ No newline at end of file