Compare commits

..

25 Commits

Author SHA1 Message Date
semantic-release-bot
b51be82cff chore: Release v5.7.0-dev.1 [skip ci]
# [5.7.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.6.1-dev.4...v5.7.0-dev.1) (2024-12-21)

### Features

* **YouTube:** Support version `19.47.53` ([#4182](https://github.com/ReVanced/revanced-patches/issues/4182)) ([b8635d0](b8635d0b88))
2024-12-21 15:09:41 +00:00
LisoUseInAIKyrios
b8635d0b88 feat(YouTube): Support version 19.47.53 (#4182) 2024-12-21 19:06:51 +04:00
semantic-release-bot
78699c8bbf chore: Release v5.6.1-dev.4 [skip ci]
## [5.6.1-dev.4](https://github.com/ReVanced/revanced-patches/compare/v5.6.1-dev.3...v5.6.1-dev.4) (2024-12-21)

### Bug Fixes

* **YouTube - Spoof video stream:** Remove UI client type setting.  Allow setting default audio language. ([#4184](https://github.com/ReVanced/revanced-patches/issues/4184)) ([aeedec7](aeedec7fed))
2024-12-21 14:53:47 +00:00
LisoUseInAIKyrios
aeedec7fed fix(YouTube - Spoof video stream): Remove UI client type setting. Allow setting default audio language. (#4184) 2024-12-21 18:49:56 +04:00
semantic-release-bot
32b614696b chore: Release v5.6.1-dev.3 [skip ci]
## [5.6.1-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.6.1-dev.2...v5.6.1-dev.3) (2024-12-21)

### Bug Fixes

* **YouTube - Force original audio:** Use correct availability for settings UI ([a0b63df](a0b63dfa23))
2024-12-21 12:11:12 +00:00
LisoUseInAIKyrios
a0b63dfa23 fix(YouTube - Force original audio): Use correct availability for settings UI 2024-12-21 16:08:22 +04:00
semantic-release-bot
f0f53cf72f chore: Release v5.6.1-dev.2 [skip ci]
## [5.6.1-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.6.1-dev.1...v5.6.1-dev.2) (2024-12-21)

### Bug Fixes

* **YouTube - Spoof video streams:** Remove iOS, add clients Android TV and Android Creator ([#4180](https://github.com/ReVanced/revanced-patches/issues/4180)) ([cdb6820](cdb68209d1))
2024-12-21 11:37:01 +00:00
LisoUseInAIKyrios
cdb68209d1 fix(YouTube - Spoof video streams): Remove iOS, add clients Android TV and Android Creator (#4180) 2024-12-21 15:33:43 +04:00
semantic-release-bot
7369f7b8d5 chore: Release v5.6.1-dev.1 [skip ci]
## [5.6.1-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.6.0...v5.6.1-dev.1) (2024-12-21)

### Bug Fixes

* **YouTube:** Change fingerprints to support a wider range of target versions ([25d7cc6](25d7cc68ae))
2024-12-21 10:44:05 +00:00
LisoUseInAIKyrios
db521b940b refactor(YouTube): Change fingerprints to support a wider range of target versions (#4179) 2024-12-21 14:41:22 +04:00
LisoUseInAIKyrios
25d7cc68ae fix(YouTube): Change fingerprints to support a wider range of target versions 2024-12-21 12:55:18 +04:00
semantic-release-bot
9495064e6e chore: Release v5.6.0 [skip ci]
# [5.6.0](https://github.com/ReVanced/revanced-patches/compare/v5.5.1...v5.6.0) (2024-12-20)

### Bug Fixes

* **Twitter - Change link sharing domain:** Use correct extension package ([20a7ad4](20a7ad4715))
* **YouTube - Force original audio:** Use correct original audio stream if app language is not English ([1d0ec98](1d0ec98bec))
* **YouTube - Hide layout components:** Hide new kind of community post ([#4155](https://github.com/ReVanced/revanced-patches/issues/4155)) ([246333f](246333f3dc))
* **YouTube - Miniplayer:** Use estimated maximum on screen size for devices with low density screens ([#4150](https://github.com/ReVanced/revanced-patches/issues/4150)) ([c87c788](c87c788a26))
* **YouTube - Open Shorts in regular player:** Do not show the miniplayer after opening a Short while a video is playing ([c7f42d9](c7f42d9a3c))
* **YouTube - SponsorBlock:** Show create new segment error messages using a dialog ([#4148](https://github.com/ReVanced/revanced-patches/issues/4148)) ([44995a9](44995a9f15))
* **YouTube - Spoof video streams:** Change default spoofing to iOS, allow setting a default language with Android VR ([#4171](https://github.com/ReVanced/revanced-patches/issues/4171)) ([cd08717](cd08717783))
* **YouTube - Spoof video streams:** Update iOS client version ([ec746cb](ec746cb05a))

### Features

* **YouTube:** Add `Open Shorts in regular player` patch ([#4153](https://github.com/ReVanced/revanced-patches/issues/4153)) ([1dde485](1dde485013))
2024-12-20 21:57:47 +00:00
LisoUseInAIKyrios
64864c2cdb chore: Merge branch dev to main (#4147) 2024-12-21 01:54:28 +04:00
github-actions[bot]
ad0ffb3328 chore: Sync translations (#4173) 2024-12-21 01:48:25 +04:00
semantic-release-bot
06800324aa chore: Release v5.6.0-dev.6 [skip ci]
# [5.6.0-dev.6](https://github.com/ReVanced/revanced-patches/compare/v5.6.0-dev.5...v5.6.0-dev.6) (2024-12-20)

### Bug Fixes

* **YouTube - Spoof video streams:** Update iOS client version ([ec746cb](ec746cb05a))
2024-12-20 21:38:18 +00:00
LisoUseInAIKyrios
ec746cb05a fix(YouTube - Spoof video streams): Update iOS client version 2024-12-21 01:35:06 +04:00
semantic-release-bot
67c5530ea6 chore: Release v5.6.0-dev.5 [skip ci]
# [5.6.0-dev.5](https://github.com/ReVanced/revanced-patches/compare/v5.6.0-dev.4...v5.6.0-dev.5) (2024-12-20)

### Bug Fixes

* **YouTube - Spoof video streams:** Change default spoofing to iOS, allow setting a default language with Android VR ([#4171](https://github.com/ReVanced/revanced-patches/issues/4171)) ([cd08717](cd08717783))
2024-12-20 20:41:10 +00:00
LisoUseInAIKyrios
cd08717783 fix(YouTube - Spoof video streams): Change default spoofing to iOS, allow setting a default language with Android VR (#4171) 2024-12-21 00:38:11 +04:00
semantic-release-bot
7bac023ea5 chore: Release v5.6.0-dev.4 [skip ci]
# [5.6.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v5.6.0-dev.3...v5.6.0-dev.4) (2024-12-20)

### Bug Fixes

* **YouTube - Force original audio:** Use correct original audio stream if app language is not English ([1d0ec98](1d0ec98bec))
2024-12-20 16:29:05 +00:00
LisoUseInAIKyrios
1d0ec98bec fix(YouTube - Force original audio): Use correct original audio stream if app language is not English 2024-12-20 20:26:17 +04:00
semantic-release-bot
3c603fac2d chore: Release v5.6.0-dev.3 [skip ci]
# [5.6.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.6.0-dev.2...v5.6.0-dev.3) (2024-12-20)

### Bug Fixes

* **Twitter - Change link sharing domain:** Use correct extension package ([20a7ad4](20a7ad4715))
2024-12-20 07:16:17 +00:00
LisoUseInAIKyrios
20a7ad4715 fix(Twitter - Change link sharing domain): Use correct extension package 2024-12-20 11:12:50 +04:00
semantic-release-bot
25a60e305e chore: Release v5.6.0-dev.2 [skip ci]
# [5.6.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.6.0-dev.1...v5.6.0-dev.2) (2024-12-19)

### Bug Fixes

* **YouTube - Open Shorts in regular player:** Do not show the miniplayer after opening a Short while a video is playing ([c7f42d9](c7f42d9a3c))
2024-12-19 11:20:50 +00:00
LisoUseInAIKyrios
c7f42d9a3c fix(YouTube - Open Shorts in regular player): Do not show the miniplayer after opening a Short while a video is playing 2024-12-19 15:18:18 +04:00
github-actions[bot]
670f100a29 chore: Sync translations (#4166) 2024-12-19 15:17:50 +04:00
155 changed files with 819 additions and 482 deletions

View File

@@ -1,3 +1,92 @@
# [5.7.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.6.1-dev.4...v5.7.0-dev.1) (2024-12-21)
### Features
* **YouTube:** Support version `19.47.53` ([#4182](https://github.com/ReVanced/revanced-patches/issues/4182)) ([2089e61](https://github.com/ReVanced/revanced-patches/commit/2089e613d36c45352db7d852aaee0087b1c3e1a4))
## [5.6.1-dev.4](https://github.com/ReVanced/revanced-patches/compare/v5.6.1-dev.3...v5.6.1-dev.4) (2024-12-21)
### Bug Fixes
* **YouTube - Spoof video stream:** Remove UI client type setting. Allow setting default audio language. ([#4184](https://github.com/ReVanced/revanced-patches/issues/4184)) ([99f3f29](https://github.com/ReVanced/revanced-patches/commit/99f3f29c649bf7693c05bbce2bb49bd53e05f050))
## [5.6.1-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.6.1-dev.2...v5.6.1-dev.3) (2024-12-21)
### Bug Fixes
* **YouTube - Force original audio:** Use correct availability for settings UI ([a7eedcb](https://github.com/ReVanced/revanced-patches/commit/a7eedcb4cca6b7b12629c478c24c0899c80e3615))
## [5.6.1-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.6.1-dev.1...v5.6.1-dev.2) (2024-12-21)
### Bug Fixes
* **YouTube - Spoof video streams:** Remove iOS, add clients Android TV and Android Creator ([#4180](https://github.com/ReVanced/revanced-patches/issues/4180)) ([86abfb2](https://github.com/ReVanced/revanced-patches/commit/86abfb2b0d4675f0a1cb9ab244783075bfe89281))
## [5.6.1-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.6.0...v5.6.1-dev.1) (2024-12-21)
### Bug Fixes
* **YouTube:** Change fingerprints to support a wider range of target versions ([8a09174](https://github.com/ReVanced/revanced-patches/commit/8a09174def205a26ce49cb7815097e235069526a))
# [5.6.0](https://github.com/ReVanced/revanced-patches/compare/v5.5.1...v5.6.0) (2024-12-20)
### Bug Fixes
* **Twitter - Change link sharing domain:** Use correct extension package ([ad7fab6](https://github.com/ReVanced/revanced-patches/commit/ad7fab67319ba23f267d27da9b74266965fc4be3))
* **YouTube - Force original audio:** Use correct original audio stream if app language is not English ([0d20171](https://github.com/ReVanced/revanced-patches/commit/0d2017133efac230887b5c2a331d87159df8af11))
* **YouTube - Hide layout components:** Hide new kind of community post ([#4155](https://github.com/ReVanced/revanced-patches/issues/4155)) ([08f68cb](https://github.com/ReVanced/revanced-patches/commit/08f68cb5d33f2cfe656d2f93d159c69981f31418))
* **YouTube - Miniplayer:** Use estimated maximum on screen size for devices with low density screens ([#4150](https://github.com/ReVanced/revanced-patches/issues/4150)) ([2694158](https://github.com/ReVanced/revanced-patches/commit/2694158c3c9935ede21c96832533222f850068df))
* **YouTube - Open Shorts in regular player:** Do not show the miniplayer after opening a Short while a video is playing ([894e366](https://github.com/ReVanced/revanced-patches/commit/894e36665d17d5a3a5728961d424dffc55faa50b))
* **YouTube - SponsorBlock:** Show create new segment error messages using a dialog ([#4148](https://github.com/ReVanced/revanced-patches/issues/4148)) ([5870906](https://github.com/ReVanced/revanced-patches/commit/587090636dfff0b358b15026cf7d47c65a4296dc))
* **YouTube - Spoof video streams:** Change default spoofing to iOS, allow setting a default language with Android VR ([#4171](https://github.com/ReVanced/revanced-patches/issues/4171)) ([171b4e7](https://github.com/ReVanced/revanced-patches/commit/171b4e7e40066e38fba773b7a6525e9a038779ef))
* **YouTube - Spoof video streams:** Update iOS client version ([df3aeed](https://github.com/ReVanced/revanced-patches/commit/df3aeed3b173e408fad80197a89ec5d003a2b328))
### Features
* **YouTube:** Add `Open Shorts in regular player` patch ([#4153](https://github.com/ReVanced/revanced-patches/issues/4153)) ([c7c5e5b](https://github.com/ReVanced/revanced-patches/commit/c7c5e5b2b9cf63d8225bb6bd5e735ddf945b6c29))
# [5.6.0-dev.6](https://github.com/ReVanced/revanced-patches/compare/v5.6.0-dev.5...v5.6.0-dev.6) (2024-12-20)
### Bug Fixes
* **YouTube - Spoof video streams:** Update iOS client version ([df3aeed](https://github.com/ReVanced/revanced-patches/commit/df3aeed3b173e408fad80197a89ec5d003a2b328))
# [5.6.0-dev.5](https://github.com/ReVanced/revanced-patches/compare/v5.6.0-dev.4...v5.6.0-dev.5) (2024-12-20)
### Bug Fixes
* **YouTube - Spoof video streams:** Change default spoofing to iOS, allow setting a default language with Android VR ([#4171](https://github.com/ReVanced/revanced-patches/issues/4171)) ([171b4e7](https://github.com/ReVanced/revanced-patches/commit/171b4e7e40066e38fba773b7a6525e9a038779ef))
# [5.6.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v5.6.0-dev.3...v5.6.0-dev.4) (2024-12-20)
### Bug Fixes
* **YouTube - Force original audio:** Use correct original audio stream if app language is not English ([0d20171](https://github.com/ReVanced/revanced-patches/commit/0d2017133efac230887b5c2a331d87159df8af11))
# [5.6.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.6.0-dev.2...v5.6.0-dev.3) (2024-12-20)
### Bug Fixes
* **Twitter - Change link sharing domain:** Use correct extension package ([ad7fab6](https://github.com/ReVanced/revanced-patches/commit/ad7fab67319ba23f267d27da9b74266965fc4be3))
# [5.6.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.6.0-dev.1...v5.6.0-dev.2) (2024-12-19)
### Bug Fixes
* **YouTube - Open Shorts in regular player:** Do not show the miniplayer after opening a Short while a video is playing ([894e366](https://github.com/ReVanced/revanced-patches/commit/894e36665d17d5a3a5728961d424dffc55faa50b))
# [5.6.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.5.2-dev.2...v5.6.0-dev.1) (2024-12-19)

View File

@@ -3,10 +3,8 @@ package app.revanced.extension.shared.settings;
import static java.lang.Boolean.FALSE;
import static java.lang.Boolean.TRUE;
import static app.revanced.extension.shared.settings.Setting.parent;
import static app.revanced.extension.shared.spoof.SpoofVideoStreamsPatch.SpoofiOSAvailability;
import app.revanced.extension.shared.spoof.AudioStreamLanguage;
import app.revanced.extension.shared.spoof.ClientType;
/**
* Settings shared across multiple apps.
@@ -22,9 +20,5 @@ public class BaseSettings {
public static final IntegerSetting CHECK_ENVIRONMENT_WARNINGS_ISSUED = new IntegerSetting("revanced_check_environment_warnings_issued", 0, true, false);
public static final BooleanSetting SPOOF_VIDEO_STREAMS = new BooleanSetting("revanced_spoof_video_streams", TRUE, true, "revanced_spoof_video_streams_user_dialog_message");
public static final EnumSetting<AudioStreamLanguage> SPOOF_VIDEO_STREAMS_LANGUAGE = new EnumSetting<>("revanced_spoof_video_streams_language", AudioStreamLanguage.DEFAULT, new SpoofiOSAvailability());
public static final BooleanSetting SPOOF_VIDEO_STREAMS_IOS_FORCE_AVC = new BooleanSetting("revanced_spoof_video_streams_ios_force_avc", FALSE, true,
"revanced_spoof_video_streams_ios_force_avc_user_dialog_message", new SpoofiOSAvailability());
public static final EnumSetting<ClientType> SPOOF_VIDEO_STREAMS_CLIENT_TYPE = new EnumSetting<>("revanced_spoof_video_streams_client", ClientType.ANDROID_VR, true, parent(SPOOF_VIDEO_STREAMS));
public static final EnumSetting<AudioStreamLanguage> SPOOF_VIDEO_STREAMS_LANGUAGE = new EnumSetting<>("revanced_spoof_video_streams_language", AudioStreamLanguage.DEFAULT, parent(SPOOF_VIDEO_STREAMS));
}

View File

@@ -4,48 +4,45 @@ import android.os.Build;
import androidx.annotation.Nullable;
import app.revanced.extension.shared.settings.BaseSettings;
public enum ClientType {
// Specific purpose for age restricted, or private videos, because the iOS client is not logged in.
// https://dumps.tadiphone.dev/dumps/oculus/eureka
ANDROID_VR(28,
ANDROID_VR_NO_AUTH( // Must be first so a default audio language can be set.
28,
"ANDROID_VR",
"Quest 3",
"12",
"com.google.android.apps.youtube.vr.oculus/1.56.21 (Linux; U; Android 12; GB) gzip",
"32", // Android 12.1
"1.56.21",
true,
false),
// Specific for kids videos.
IOS(5,
"IOS",
forceAVC()
? "iPhone12,5" // 11 Pro Max (last device with iOS 13)
: "iPhone16,2", // 15 Pro Max
// iOS 13 and earlier uses only AVC. 14+ adds VP9 and AV1.
forceAVC()
? "13.7.17H35" // Last release of iOS 13.
: "17.5.1.21F90",
forceAVC()
? "com.google.ios.youtube/17.40.5 (iPhone; U; CPU iOS 13_7 like Mac OS X)"
: "com.google.ios.youtube/19.47.7 (iPhone; U; CPU iOS 17_5_1 like Mac OS X)",
null,
// Version number should be a valid iOS release.
// https://www.ipa4fun.com/history/185230
forceAVC()
// Some newer versions can also force AVC,
// but 17.40 is the last version that supports iOS 13.
? "17.40.5"
: "19.47.7",
false,
true
);
private static boolean forceAVC() {
return BaseSettings.SPOOF_VIDEO_STREAMS_IOS_FORCE_AVC.get();
}
// Fall over to authenticated ('hl' is ignored and audio is same as language set in users Google account).
ANDROID_VR(
ANDROID_VR_NO_AUTH.id,
ANDROID_VR_NO_AUTH.clientName,
ANDROID_VR_NO_AUTH.deviceModel,
ANDROID_VR_NO_AUTH.osVersion,
ANDROID_VR_NO_AUTH.userAgent,
ANDROID_VR_NO_AUTH.androidSdkVersion,
ANDROID_VR_NO_AUTH.clientVersion,
true),
ANDROID_UNPLUGGED(
29,
"ANDROID_UNPLUGGED",
"Google TV Streamer",
"14",
"com.google.android.apps.youtube.unplugged/8.49.0 (Linux; U; Android 14; GB) gzip",
"34",
"8.49.0",
true), // Requires login.
ANDROID_CREATOR(
14,
"ANDROID_CREATOR",
"Android",
"11",
"com.google.android.apps.youtube.creator/24.45.100 (Linux; U; Android 11) gzip",
"30",
"24.45.100",
true); // Requires login.
/**
* YouTube
@@ -87,11 +84,6 @@ public enum ClientType {
*/
public final boolean canLogin;
/**
* If a language code should be used.
*/
public final boolean useLanguageCode;
ClientType(int id,
String clientName,
String deviceModel,
@@ -99,8 +91,7 @@ public enum ClientType {
String userAgent,
@Nullable String androidSdkVersion,
String clientVersion,
boolean canLogin,
boolean useLanguageCode) {
boolean canLogin) {
this.id = id;
this.clientName = clientName;
this.deviceModel = deviceModel;
@@ -109,6 +100,5 @@ public enum ClientType {
this.androidSdkVersion = androidSdkVersion;
this.clientVersion = clientVersion;
this.canLogin = canLogin;
this.useLanguageCode = useLanguageCode;
}
}

View File

@@ -17,15 +17,30 @@ import app.revanced.extension.shared.spoof.requests.StreamingDataRequest;
public class SpoofVideoStreamsPatch {
private static final boolean SPOOF_STREAMING_DATA = BaseSettings.SPOOF_VIDEO_STREAMS.get();
private static final boolean FIX_HLS_CURRENT_TIME = SPOOF_STREAMING_DATA
&& BaseSettings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE.get() == ClientType.IOS;
/**
* Any unreachable ip address. Used to intentionally fail requests.
*/
private static final String UNREACHABLE_HOST_URI_STRING = "https://127.0.0.0";
private static final Uri UNREACHABLE_HOST_URI = Uri.parse(UNREACHABLE_HOST_URI_STRING);
/**
* @return If this patch was included during patching.
*/
private static boolean isPatchIncluded() {
return false; // Modified during patching.
}
public static final class NotSpoofingAndroidAvailability implements Setting.Availability {
@Override
public boolean isAvailable() {
if (SpoofVideoStreamsPatch.isPatchIncluded()) {
return !BaseSettings.SPOOF_VIDEO_STREAMS.get();
}
return true;
}
}
/**
* Injection point.
* Blocks /get_watch requests by returning an unreachable URI.
@@ -168,25 +183,4 @@ public class SpoofVideoStreamsPatch {
return postData;
}
/**
* Injection point.
*
* Fixes iOS livestreams starting from the beginning.
*/
public static boolean fixHLSCurrentTime(boolean original) {
if (FIX_HLS_CURRENT_TIME) {
return false;
}
return original;
}
public static final class SpoofiOSAvailability implements Setting.Availability {
@Override
public boolean isAvailable() {
return BaseSettings.SPOOF_VIDEO_STREAMS.get()
&& BaseSettings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE.get() == ClientType.IOS;
}
}
}

View File

@@ -37,9 +37,7 @@ final class PlayerRoutes {
JSONObject context = new JSONObject();
JSONObject client = new JSONObject();
if (clientType.useLanguageCode) {
client.put("hl", BaseSettings.SPOOF_VIDEO_STREAMS_LANGUAGE.get().getIso639_1());
}
client.put("hl", BaseSettings.SPOOF_VIDEO_STREAMS_LANGUAGE.get().getIso639_1());
client.put("clientName", clientType.clientName);
client.put("clientVersion", clientType.clientVersion);
client.put("deviceModel", clientType.deviceModel);

View File

@@ -35,7 +35,7 @@ import app.revanced.extension.shared.spoof.ClientType;
*/
public class StreamingDataRequest {
private static final ClientType[] CLIENT_ORDER_TO_USE;
private static final ClientType[] CLIENT_ORDER_TO_USE = ClientType.values();
private static final String AUTHORIZATION_HEADER = "Authorization";
private static final String[] REQUEST_HEADER_KEYS = {
AUTHORIZATION_HEADER, // Available only to logged-in users.
@@ -67,21 +67,6 @@ public class StreamingDataRequest {
}
});
static {
ClientType[] allClientTypes = ClientType.values();
ClientType preferredClient = BaseSettings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE.get();
CLIENT_ORDER_TO_USE = new ClientType[allClientTypes.length];
CLIENT_ORDER_TO_USE[0] = preferredClient;
int i = 1;
for (ClientType c : allClientTypes) {
if (c != preferredClient) {
CLIENT_ORDER_TO_USE[i++] = c;
}
}
}
private final String videoId;
private final Future<ByteBuffer> future;
@@ -178,7 +163,7 @@ public class StreamingDataRequest {
// gzip encoding doesn't response with content length (-1),
// but empty response body does.
if (connection.getContentLength() == 0) {
Logger.printDebug(() -> "Received empty response for video: " + videoId);
Logger.printDebug(() -> "Received empty response for client: " + clientType);
} else {
try (InputStream inputStream = new BufferedInputStream(connection.getInputStream());
ByteArrayOutputStream baos = new ByteArrayOutputStream()) {

View File

@@ -6,7 +6,7 @@ import app.revanced.extension.youtube.settings.Settings;
@SuppressWarnings("unused")
public class ForceOriginalAudioPatch {
private static final String DEFAULT_AUDIO_TRACKS_IDENTIFIER = "original";
private static final String DEFAULT_AUDIO_TRACKS_SUFFIX = ".4";
/**
* Injection point.
@@ -17,7 +17,7 @@ public class ForceOriginalAudioPatch {
return isDefault;
}
if (audioTrackDisplayName.isEmpty()) {
if (audioTrackId.isEmpty()) {
// Older app targets can have empty audio tracks and these might be placeholders.
// The real audio tracks are called after these.
return isDefault;
@@ -26,7 +26,7 @@ public class ForceOriginalAudioPatch {
Logger.printDebug(() -> "default: " + String.format("%-5s", isDefault) + " id: "
+ String.format("%-8s", audioTrackId) + " name:" + audioTrackDisplayName);
final boolean isOriginal = audioTrackDisplayName.contains(DEFAULT_AUDIO_TRACKS_IDENTIFIER);
final boolean isOriginal = audioTrackId.endsWith(DEFAULT_AUDIO_TRACKS_SUFFIX);
if (isOriginal) {
Logger.printDebug(() -> "Using audio: " + audioTrackId);
}
@@ -34,8 +34,8 @@ public class ForceOriginalAudioPatch {
return isOriginal;
} catch (Exception ex) {
Logger.printException(() -> "isDefaultAudioStream failure", ex);
}
return isDefault;
return isDefault;
}
}
}

View File

@@ -81,6 +81,7 @@ public class OpenShortsInRegularPlayerPatch {
Intent.ACTION_VIEW,
Uri.parse("https://youtube.com/watch?v=" + videoID)
);
videoPlayerIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
videoPlayerIntent.setPackage(context.getPackageName());
context.startActivity(videoPlayerIntent);

View File

@@ -7,6 +7,7 @@ import static app.revanced.extension.shared.settings.Setting.migrateFromOldPrefe
import static app.revanced.extension.shared.settings.Setting.migrateOldSettingToNew;
import static app.revanced.extension.shared.settings.Setting.parent;
import static app.revanced.extension.shared.settings.Setting.parentsAny;
import static app.revanced.extension.shared.spoof.SpoofVideoStreamsPatch.NotSpoofingAndroidAvailability;
import static app.revanced.extension.youtube.patches.ChangeStartPagePatch.StartPage;
import static app.revanced.extension.youtube.patches.MiniplayerPatch.MiniplayerHideExpandCloseAvailability;
import static app.revanced.extension.youtube.patches.MiniplayerPatch.MiniplayerHorizontalDragAvailability;
@@ -53,7 +54,7 @@ public class Settings extends BaseSettings {
public static final StringSetting CUSTOM_PLAYBACK_SPEEDS = new StringSetting("revanced_custom_playback_speeds",
"0.25\n0.5\n0.75\n0.9\n0.95\n1.0\n1.05\n1.1\n1.25\n1.5\n1.75\n2.0\n3.0\n4.0\n5.0", true);
// Audio
public static final BooleanSetting FORCE_ORIGINAL_AUDIO = new BooleanSetting("revanced_force_original_audio", FALSE);
public static final BooleanSetting FORCE_ORIGINAL_AUDIO = new BooleanSetting("revanced_force_original_audio", FALSE, new NotSpoofingAndroidAvailability());
// Ads
public static final BooleanSetting HIDE_BUTTONED_ADS = new BooleanSetting("revanced_hide_buttoned_ads", TRUE);

View File

@@ -1,85 +0,0 @@
package app.revanced.extension.youtube.settings.preference;
import static app.revanced.extension.shared.StringRef.str;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.Preference;
import android.preference.PreferenceManager;
import android.util.AttributeSet;
import androidx.annotation.Nullable;
import app.revanced.extension.shared.Logger;
import app.revanced.extension.shared.Utils;
import app.revanced.extension.shared.settings.BaseSettings;
import app.revanced.extension.shared.settings.Setting;
import app.revanced.extension.shared.spoof.ClientType;
@SuppressWarnings({"deprecation", "unused"})
public class SpoofStreamingDataSideEffectsPreference extends Preference {
@Nullable
private ClientType currentClientType;
private final SharedPreferences.OnSharedPreferenceChangeListener listener = (sharedPreferences, str) -> {
// Because this listener may run before the ReVanced settings fragment updates Settings,
// this could show the prior config and not the current.
//
// Push this call to the end of the main run queue,
// so all other listeners are done and Settings is up to date.
Utils.runOnMainThread(this::updateUI);
};
public SpoofStreamingDataSideEffectsPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
public SpoofStreamingDataSideEffectsPreference(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public SpoofStreamingDataSideEffectsPreference(Context context, AttributeSet attrs) {
super(context, attrs);
}
public SpoofStreamingDataSideEffectsPreference(Context context) {
super(context);
}
private void addChangeListener() {
Setting.preferences.preferences.registerOnSharedPreferenceChangeListener(listener);
}
private void removeChangeListener() {
Setting.preferences.preferences.unregisterOnSharedPreferenceChangeListener(listener);
}
@Override
protected void onAttachedToHierarchy(PreferenceManager preferenceManager) {
super.onAttachedToHierarchy(preferenceManager);
updateUI();
addChangeListener();
}
@Override
protected void onPrepareForRemoval() {
super.onPrepareForRemoval();
removeChangeListener();
}
private void updateUI() {
ClientType clientType = BaseSettings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE.get();
if (currentClientType == clientType) {
return;
}
Logger.printDebug(() -> "Updating spoof stream side effects preference");
setEnabled(BaseSettings.SPOOF_VIDEO_STREAMS.get());
String key = "revanced_spoof_video_streams_about_"
+ clientType.name().toLowerCase();
setTitle(str(key + "_title"));
setSummary(str(key + "_summary"));
}
}

View File

@@ -3,4 +3,4 @@ org.gradle.jvmargs = -Xms512M -Xmx2048M
org.gradle.parallel = true
android.useAndroidX = true
kotlin.code.style = official
version = 5.6.0-dev.1
version = 5.7.0-dev.1

View File

@@ -1,7 +1,6 @@
package app.revanced.patches.shared.misc.spoof
import app.revanced.patcher.fingerprint
import app.revanced.util.literal
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
@@ -112,12 +111,11 @@ internal val buildMediaDataSourceFingerprint = fingerprint {
)
}
internal const val HLS_CURRENT_TIME_FEATURE_FLAG = 45355374L
internal val hlsCurrentTimeFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
parameters("Z", "L")
literal {
HLS_CURRENT_TIME_FEATURE_FLAG
internal val patchIncludedExtensionMethodFingerprint = fingerprint {
accessFlags(AccessFlags.PRIVATE, AccessFlags.STATIC)
returns("Z")
parameters()
custom { method, classDef ->
classDef.type == EXTENSION_CLASS_DESCRIPTOR && method.name == "isPatchIncluded"
}
}

View File

@@ -12,7 +12,7 @@ import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod.Companion.toMu
import app.revanced.patches.all.misc.resources.addResourcesPatch
import app.revanced.util.getReference
import app.revanced.util.indexOfFirstInstructionOrThrow
import app.revanced.util.insertFeatureFlagBooleanOverride
import app.revanced.util.returnEarly
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.builder.MutableMethodImplementation
@@ -39,6 +39,12 @@ fun spoofVideoStreamsPatch(
dependsOn(addResourcesPatch)
execute {
// region Enable extension helper method used by other patches
patchIncludedExtensionMethodFingerprint.method.returnEarly(true)
// endregion
// region Block /initplayback requests to fall back to /get_watch requests.
val moveUriStringIndex = buildInitPlaybackRequestFingerprint.patternMatch!!.startIndex
@@ -202,15 +208,6 @@ fun spoofVideoStreamsPatch(
}
// endregion
// region Fix iOS livestream current time.
hlsCurrentTimeFingerprint.method.insertFeatureFlagBooleanOverride(
HLS_CURRENT_TIME_FEATURE_FLAG,
"$EXTENSION_CLASS_DESCRIPTOR->fixHLSCurrentTime(Z)Z"
)
// endregion
executeBlock()
}
}

View File

@@ -11,8 +11,8 @@ import app.revanced.patches.shared.misc.mapping.resourceMappingPatch
import app.revanced.patches.shared.misc.mapping.resourceMappings
import app.revanced.patches.twitter.misc.extension.sharedExtensionPatch
import app.revanced.util.indexOfFirstLiteralInstructionOrThrow
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.formats.Instruction35c
internal var tweetShareLinkTemplateId = -1L
private set
@@ -25,15 +25,7 @@ internal val changeLinkSharingDomainResourcePatch = resourcePatch {
}
}
// This method is used to build the link that is shared when the "Share via..." button is pressed.
private const val FORMAT_METHOD_RESOURCE_REFERENCE =
"Lapp/revanced/extension/twitter/patches/links/ChangeLinkSharingDomainPatch;->" +
"formatResourceLink([Ljava/lang/Object;)Ljava/lang/String;"
// This method is used to build the link that is shared when the "Copy link" button is pressed.
private const val FORMAT_METHOD_REFERENCE =
"Lapp/revanced/extension/twitter/patches/links/ChangeLinkSharingDomainPatch;->" +
"formatLink(JLjava/lang/String;)Ljava/lang/String;"
private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/twitter/patches/links/ChangeLinkSharingDomainPatch;"
@Suppress("unused")
val changeLinkSharingDomainPatch = bytecodePatch(
@@ -71,7 +63,7 @@ val changeLinkSharingDomainPatch = bytecodePatch(
addInstructions(
0,
"""
invoke-static { p0, p1, p2 }, $FORMAT_METHOD_REFERENCE
invoke-static { p0, p1, p2 }, $EXTENSION_CLASS_DESCRIPTOR->formatLink(JLjava/lang/String;)Ljava/lang/String;
move-result-object p0
return-object p0
""",
@@ -84,12 +76,12 @@ val changeLinkSharingDomainPatch = bytecodePatch(
// Format the link with the new domain name register (1 instruction below the const).
val formatLinkCallIndex = templateIdConstIndex + 1
val formatLinkCall = getInstruction<Instruction35c>(formatLinkCallIndex)
val register = getInstruction<FiveRegisterInstruction>(formatLinkCallIndex).registerE
// Replace the original method call with the new method call.
replaceInstruction(
formatLinkCallIndex,
"invoke-static { v${formatLinkCall.registerE} }, $FORMAT_METHOD_RESOURCE_REFERENCE",
"invoke-static { v$register }, $EXTENSION_CLASS_DESCRIPTOR->formatResourceLink([Ljava/lang/Object;)Ljava/lang/String;",
)
}
}

View File

@@ -77,6 +77,7 @@ val hideAdsPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -33,6 +33,7 @@ val hideGetPremiumPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -31,6 +31,7 @@ val videoAdsPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -61,6 +61,7 @@ val copyVideoUrlPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -32,6 +32,7 @@ val removeViewerDiscretionDialogPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -76,6 +76,7 @@ val downloadsPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -31,6 +31,7 @@ val disablePreciseSeekingGesturePatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -34,6 +34,7 @@ val enableSeekbarTappingPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -44,6 +44,7 @@ val enableSlideToSeekPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -37,6 +37,7 @@ val seekbarThumbnailsPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
)
)

View File

@@ -73,6 +73,7 @@ val swipeControlsPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -30,6 +30,7 @@ val autoCaptionsPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -51,6 +51,7 @@ val customBrandingPatch = resourcePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -49,6 +49,7 @@ val changeHeaderPatch = resourcePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
)
)

View File

@@ -30,6 +30,7 @@ val hideButtonsPatch = resourcePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -48,6 +48,7 @@ val navigationButtonsPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -62,6 +62,7 @@ val hidePlayerOverlayButtonsPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -64,6 +64,7 @@ val hideEndscreenCardsPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -37,6 +37,7 @@ val disableFullscreenAmbientModePatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -133,6 +133,7 @@ val hideLayoutComponentsPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -65,6 +65,7 @@ val hideInfoCardsPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -32,6 +32,7 @@ val hidePlayerFlyoutMenuPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -37,6 +37,7 @@ val disableRollingNumberAnimationPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -33,6 +33,7 @@ val hideSeekbarPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -190,6 +190,7 @@ val hideShortsComponentsPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -62,6 +62,7 @@ val disableSuggestedVideoEndScreenPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -29,6 +29,7 @@ val hideTimestampPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -170,6 +170,7 @@ val miniplayerPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -29,6 +29,7 @@ val playerPopupPanelsPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -20,6 +20,7 @@ val playerControlsBackgroundPatch = resourcePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -26,6 +26,7 @@ val openVideosFullscreenPatch = bytecodePatch(
compatibleWith(
"com.google.android.youtube"(
"19.46.42",
"19.47.53",
)
)

View File

@@ -60,6 +60,7 @@ val customPlayerOverlayOpacityPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -61,6 +61,7 @@ val returnYouTubeDislikePatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -37,6 +37,7 @@ val wideSearchbarPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -40,6 +40,7 @@ val shortsAutoplayPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -49,6 +49,7 @@ val openShortsInRegularPlayerPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -119,6 +119,7 @@ val sponsorBlockPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -40,6 +40,7 @@ val spoofAppVersionPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -37,6 +37,7 @@ val changeStartPagePatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -39,6 +39,7 @@ val disableResumingShortsOnStartupPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -34,6 +34,7 @@ val enableTabletLayoutPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -198,6 +198,7 @@ val themePatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -41,6 +41,7 @@ val alternativeThumbnailsPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -35,6 +35,7 @@ val bypassImageRegionRestrictionsPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -31,6 +31,7 @@ val announcementsPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -32,6 +32,7 @@ val autoRepeatPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -56,6 +56,7 @@ val backgroundPlaybackPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -40,6 +40,7 @@ val enableDebuggingPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -32,6 +32,7 @@ val spoofDeviceDimensionsPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -25,6 +25,7 @@ val checkWatchHistoryDomainNameResolutionPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -15,22 +15,16 @@ internal val onBackPressedFingerprint = fingerprint {
}
}
internal val recyclerViewScrollingFingerprint = fingerprint {
accessFlags(AccessFlags.PRIVATE, AccessFlags.FINAL)
internal val scrollPositionFingerprint = fingerprint {
accessFlags(AccessFlags.PROTECTED, AccessFlags.FINAL)
returns("V")
parameters()
parameters("L")
opcodes(
Opcode.IGET_OBJECT,
Opcode.IGET_OBJECT,
Opcode.IF_EQZ,
Opcode.IGET_OBJECT,
Opcode.CHECK_CAST,
Opcode.INVOKE_VIRTUAL,
Opcode.MOVE_RESULT,
Opcode.IF_LEZ,
Opcode.IGET_OBJECT,
Opcode.CONST_4,
Opcode.IF_NEZ,
Opcode.INVOKE_DIRECT,
Opcode.RETURN_VOID
)
strings("scroll_position")
}
internal val recyclerViewTopScrollingFingerprint = fingerprint {

View File

@@ -1,54 +1,49 @@
package app.revanced.patches.youtube.misc.fix.backtoexitgesture
import app.revanced.patcher.Fingerprint
import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.util.getReference
import app.revanced.util.indexOfFirstInstructionOrThrow
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/FixBackToExitGesturePatch;"
internal val fixBackToExitGesturePatch = bytecodePatch(
description = "Fixes the swipe back to exit gesture.",
) {
execute {
/**
* Inject a call to a method from the extension.
*
* @param targetMethod The target method to call.
*/
fun Fingerprint.injectCall(targetMethod: ExtensionMethod) = method.addInstruction(
patternMatch!!.endIndex,
targetMethod.toString(),
)
recyclerViewTopScrollingFingerprint.match(recyclerViewTopScrollingParentFingerprint.originalClassDef)
.let {
it.method.addInstruction(
it.patternMatch!!.endIndex,
"invoke-static { }, $EXTENSION_CLASS_DESCRIPTOR->onTopView()V"
)
}
mapOf(
recyclerViewTopScrollingFingerprint.also {
it.match(recyclerViewTopScrollingParentFingerprint.originalClassDef)
} to ExtensionMethod(
methodName = "onTopView",
),
recyclerViewScrollingFingerprint to ExtensionMethod(
methodName = "onScrollingViews",
),
onBackPressedFingerprint to ExtensionMethod(
"p0",
"onBackPressed",
"Landroid/app/Activity;",
),
).forEach { (fingerprint, target) -> fingerprint.injectCall(target) }
scrollPositionFingerprint.let {
navigate(it.originalMethod)
.to(it.patternMatch!!.startIndex + 1)
.stop().apply {
val index = indexOfFirstInstructionOrThrow {
opcode == Opcode.INVOKE_VIRTUAL && getReference<MethodReference>()?.definingClass ==
"Landroid/support/v7/widget/RecyclerView;"
}
addInstruction(
index,
"invoke-static { }, $EXTENSION_CLASS_DESCRIPTOR->onScrollingViews()V"
)
}
}
onBackPressedFingerprint.let {
it.method.addInstruction(
it.patternMatch!!.endIndex,
"invoke-static { p0 }, $EXTENSION_CLASS_DESCRIPTOR->onBackPressed(Landroid/app/Activity;)V"
)
}
}
}
/**
* A reference to a method from the extension for [fixBackToExitGesturePatch].
*
* @param register The method registers.
* @param methodName The method name.
* @param parameterTypes The parameters of the method.
*/
private class ExtensionMethod(
val register: String = "",
val methodName: String,
val parameterTypes: String = "",
) {
override fun toString() =
"invoke-static {$register}, Lapp/revanced/extension/youtube/patches/FixBackToExitGesturePatch;->$methodName($parameterTypes)V"
}

View File

@@ -43,6 +43,7 @@ val gmsCoreSupportPatch = gmsCoreSupportPatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)
}

View File

@@ -38,6 +38,7 @@ val bypassURLRedirectsPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -49,6 +49,7 @@ val openLinksExternallyPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -38,6 +38,7 @@ val removeTrackingQueryParameterPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -20,6 +20,7 @@ val spoofVideoStreamsPatch = spoofVideoStreamsPatch({
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)
@@ -36,20 +37,11 @@ val spoofVideoStreamsPatch = spoofVideoStreamsPatch({
sorting = PreferenceScreenPreference.Sorting.UNSORTED,
preferences = setOf(
SwitchPreference("revanced_spoof_video_streams"),
ListPreference(
"revanced_spoof_video_streams_client",
summaryKey = null,
),
ListPreference(
"revanced_spoof_video_streams_language",
summaryKey = null
),
SwitchPreference("revanced_spoof_video_streams_ios_force_avc"),
// Preference requires a title but the actual text is chosen at runtime.
NonInteractivePreference(
key = "revanced_spoof_video_streams_about_android_vr",
tag = "app.revanced.extension.youtube.settings.preference.SpoofStreamingDataSideEffectsPreference"
),
NonInteractivePreference("revanced_spoof_video_streams_about")
),
),
)

View File

@@ -29,6 +29,7 @@ val zoomHapticsPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -31,7 +31,8 @@ private const val EXTENSION_CLASS_DESCRIPTOR =
@Suppress("unused")
val forceOriginalAudioPatch = bytecodePatch(
name = "Force original audio",
description = "Adds an option to always use the original audio track.",
description = "Adds an option to always use the original audio track. " +
"This patch does nothing if 'Spoof video streams' is enabled.",
) {
dependsOn(
sharedExtensionPatch,
@@ -49,6 +50,7 @@ val forceOriginalAudioPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -43,6 +43,7 @@ val rememberVideoQualityPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -27,6 +27,7 @@ val playbackSpeedPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)
}

View File

@@ -82,6 +82,7 @@ val restoreOldVideoQualityMenuPatch = bytecodePatch(
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)

View File

@@ -164,6 +164,8 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">

View File

@@ -164,6 +164,8 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">

View File

@@ -1049,6 +1049,12 @@ Second \"item\" text"</string>
<string name="revanced_disable_resuming_shorts_player_summary_on">لن يتم استئناف تشغيل مشغل Shorts عند بدء تشغيل التطبيق</string>
<string name="revanced_disable_resuming_shorts_player_summary_off">سيتم استئناف تشغيل مشغل Shorts عند بدء تشغيل التطبيق</string>
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
<string name="revanced_shorts_player_type_title">فتح مقاطع الـShorts باستخدام</string>
<string name="revanced_shorts_player_type_shorts">مشغل Shorts</string>
<string name="revanced_shorts_player_type_regular_player">مشغل عادي</string>
<string name="revanced_shorts_player_type_regular_player_fullscreen">شاشة كاملة - مشغل عادي</string>
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
<string name="revanced_shorts_autoplay_title">التشغيل التلقائي لفيديوهات Shorts</string>
<string name="revanced_shorts_autoplay_summary_on">سيتم تشغيل فيديوهات Shorts تلقائيًا</string>
@@ -1280,7 +1286,7 @@ Second \"item\" text"</string>
قد لا يعمل تشغيل الفيديو"</string>
<string name="revanced_spoof_video_streams_user_dialog_message">إيقاف تشغيل هذا الإعداد قد يسبب مشاكل في تشغيل الفيديو.</string>
<string name="revanced_spoof_video_streams_client_title">العميل الافتراضي</string>
<string name="revanced_spoof_video_streams_client_type_title">العميل الافتراضي</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">فرض AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">تم فرض ترميز الفيديو على AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">يتم تحديد ترميز الفيديو تلقائيًا</string>
@@ -1291,9 +1297,10 @@ Second \"item\" text"</string>
<string name="revanced_spoof_video_streams_about_ios_summary">"• لا يمكن تشغيل مقاطع فيديو الأطفال الخاصة.
• تنتهي مقاطع الفيديو مبكرًا بمقدار 1 ثانية."</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">التأثيرات الجانبية لمحاكاة Android VR</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">"• قد لا يتم تشغيل فيديوهات الأطفال
تبدأ البثوث المباشرة من البداية
قد تنتهي الفيديوهات قبل النهاية بثانية واحدة"</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">"• مقطع فيديو الأطفال لتعمل تشغيل
قائمة قائمة الصوت مفقودة
لا يتوفر بستوي متوفر
• لا يتوفر بالصوت الأصلي لا يتوفر الأصلي"</string>
<string name="revanced_spoof_video_streams_language_title">لغة البث الصوتي الافتراضية</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">لغة التطبيق</string>
<string name="revanced_spoof_video_streams_language_AR">العربية</string>

View File

@@ -164,6 +164,8 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">

View File

@@ -1049,6 +1049,12 @@ Sonradan söndürülərsə, UI səhvlərini qarşısını almaq üçün tətbiqi
<string name="revanced_disable_resuming_shorts_player_summary_on">Tətbiq açılanda Shorts oynadıcı davam etməyəcək</string>
<string name="revanced_disable_resuming_shorts_player_summary_off">Tətbiq açılanda Shorts oynadıcı davam edəcək</string>
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
<string name="revanced_shorts_player_type_title">Shorts ilə</string>
<string name="revanced_shorts_player_type_shorts">Shorts oynadıcı</string>
<string name="revanced_shorts_player_type_regular_player">Adi oynatıcı</string>
<string name="revanced_shorts_player_type_regular_player_fullscreen">Adi oynatıcı tam ekran</string>
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
<string name="revanced_shorts_autoplay_title">Shorts-ları avto-oynatma</string>
<string name="revanced_shorts_autoplay_summary_on">Shorts-lar avto-oynadılacaq</string>
@@ -1281,7 +1287,7 @@ Bunu aktivləşdirmə daha yüksək video keyfiyyətləri əngəlin silə bilər
Video oynatma işləməyə bilər"</string>
<string name="revanced_spoof_video_streams_user_dialog_message">Bu seçimi bağlamaq, video oynatma problemlərinə səbəb olar.</string>
<string name="revanced_spoof_video_streams_client_title">İlkin qəbuledici</string>
<string name="revanced_spoof_video_streams_client_type_title">İlkin qəbuledici</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Məcburi AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Video kodlama AVC (H.264) -yə məcbur edilir</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Video kodlama birbaşa yoxlanılır</string>
@@ -1292,9 +1298,10 @@ AVC-nin maksimum dəqiqliyi 1080p-dir, Opus səs kodek əlçatan deyil və video
<string name="revanced_spoof_video_streams_about_ios_summary">"◦ Xüsusi uşaq videoları bəlkə də oynanılmaya bilər
◦ Videolar 1 saniyə tez bitir"</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Android VR saxtakarlığı yan təsirləri</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">"• Uşaq videoları oxudulmaya bilər
Canlı yayımlar başdan başlayır
Videolar 1 saniyə tez bitir"</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">"• Uşaq videoları oynanmaya bilər
Səs izləri menyusu yoxdur
Sabit səs mövcud deyil
• Orijinal səsi məcbur etmək mümkün deyil"</string>
<string name="revanced_spoof_video_streams_language_title">İlkin səs yayımı dili</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Tətbiq dili</string>
<string name="revanced_spoof_video_streams_language_AR">Ərəbcə</string>

View File

@@ -1051,6 +1051,12 @@ Second \"item\" text"</string>
<string name="revanced_disable_resuming_shorts_player_summary_on">Прайгравальнік Shorts не аднаўляецца пры запуску праграмы</string>
<string name="revanced_disable_resuming_shorts_player_summary_off">Прайгравальнік Shorts адновіцца пры запуску праграмы</string>
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
<string name="revanced_shorts_player_type_title">Адкрыць Shorts з</string>
<string name="revanced_shorts_player_type_shorts">Прайгравальнік Shorts</string>
<string name="revanced_shorts_player_type_regular_player">Звычайны прайгравальнік</string>
<string name="revanced_shorts_player_type_regular_player_fullscreen">Звычайны прайгравальнік на ўвесь экран</string>
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
<string name="revanced_shorts_autoplay_title">Автовоспроизведение Shorts</string>
<string name="revanced_shorts_autoplay_summary_on">Shorts будут воспроизводиться автоматически</string>
@@ -1282,7 +1288,7 @@ Second \"item\" text"</string>
Прайграванне відэа можа не працаваць"</string>
<string name="revanced_spoof_video_streams_user_dialog_message">Адключэнне гэтай налады можа выклікаць праблемы з прайграваннем відэа.</string>
<string name="revanced_spoof_video_streams_client_title">Клиент по умолчанию</string>
<string name="revanced_spoof_video_streams_client_type_title">Клиент по умолчанию</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Принудительно AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Видеокодек принудительно установлен в AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Видеокодек определяется автоматически</string>
@@ -1294,8 +1300,9 @@ AVC мае максімальную раздзяляльнасць 1080p, аўд
• Відэа заканчваюцца на 1 секунду раней"</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Побочные эффекты подмены Android VR</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">"• Дзіцячыя відэа могуць не прайгравацца
Трансляцыі ў прамым эфіры пачынаюцца з пачатку
Відэа заканчваюцца на 1 секунду раней"</string>
Меню гукавых дарожак адсутнічае
Стабільны гук недаступны
• Прымусовае выкарыстанне арыгінальнага аўдыё недаступна"</string>
<string name="revanced_spoof_video_streams_language_title">Язык потока аудио по умолчанию</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Язык приложения</string>
<string name="revanced_spoof_video_streams_language_AR">Арабский</string>

View File

@@ -1049,6 +1049,12 @@ Second \"item\" text"</string>
<string name="revanced_disable_resuming_shorts_player_summary_on">Shorts плейъра при стартиране на приложението е скрит</string>
<string name="revanced_disable_resuming_shorts_player_summary_off">Shorts плейъра при стартиране на приложението се показва</string>
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
<string name="revanced_shorts_player_type_title">Отворете Shorts с</string>
<string name="revanced_shorts_player_type_shorts">Играч на Shorts</string>
<string name="revanced_shorts_player_type_regular_player">Обикновен плейър</string>
<string name="revanced_shorts_player_type_regular_player_fullscreen">Обикновен плейър на цял екран</string>
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
<string name="revanced_shorts_autoplay_title">Автоматично пускане Shorts</string>
<string name="revanced_shorts_autoplay_summary_on">Shorts ще се пускат автоматично</string>
@@ -1280,7 +1286,7 @@ Second \"item\" text"</string>
Възпроизвеждането на видеоклипове може да не работи"</string>
<string name="revanced_spoof_video_streams_user_dialog_message">Деактивирането на тази настройка ще доведе до проблеми с възпроизвеждането на видео.</string>
<string name="revanced_spoof_video_streams_client_title">Клиент по подразбиране</string>
<string name="revanced_spoof_video_streams_client_type_title">Клиент по подразбиране</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Принудително AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Видео кодек по подразбиране AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Видео кодекът се определя автоматично</string>
@@ -1291,9 +1297,10 @@ AVC има максимална разделителна способност о
<string name="revanced_spoof_video_streams_about_ios_summary">"• Възможно е частните детски видеоклипове да не се възпроизвеждат
• Видеоклиповете завършват 1 секунда по-рано"</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Странични ефекти от подправяне на Android VR</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">"• Детските видеоклипове може да не се възпроизвеждат
Предаванията на живо започват от началото
Видеоклиповете завършват 1 секунда по-рано"</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">"• Може да възникнат проблеми при възпроизвеждане на детски видеоклипове
Липсва меню за аудио песни
Не е налично стабилно ниво на звука
Не е налична опция за оригинално аудио"</string>
<string name="revanced_spoof_video_streams_language_title">Език по подразбиране на аудио потока</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Език на приложението</string>
<string name="revanced_spoof_video_streams_language_AR">Арабски</string>

View File

@@ -1050,6 +1050,12 @@ MicroG-এর জন্য ব্যাটারি অপ্টিমাইজ
<string name="revanced_disable_resuming_shorts_player_summary_on">অ্যাপের শুরুতে Shorts প্লেয়ার আবার চলবে না</string>
<string name="revanced_disable_resuming_shorts_player_summary_off">অ্যাপের শুরুতে Shorts প্লেয়ার আবার চলবে</string>
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
<string name="revanced_shorts_player_type_title">Shorts সঙ্গে খুলুন</string>
<string name="revanced_shorts_player_type_shorts">Shorts প্লেয়ার</string>
<string name="revanced_shorts_player_type_regular_player">নিয়মিত প্লেয়ার</string>
<string name="revanced_shorts_player_type_regular_player_fullscreen">নিয়মিত প্লেয়ার পূর্ণ পর্দা</string>
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
<string name="revanced_shorts_autoplay_title">অটোপ্লে Shorts</string>
<string name="revanced_shorts_autoplay_summary_on">Shorts অটোপ্লে হবে</string>
@@ -1282,7 +1288,7 @@ DeArrow সম্পর্কে আরও জানতে এখানে ট
ভিডিও প্লেব্যাক কাজ নাও করতে পারে"</string>
<string name="revanced_spoof_video_streams_user_dialog_message">এই সেটিংটি বন্ধ করার ফলে ভিডিও প্লেব্যাক ত্রুটি হতে পারে।</string>
<string name="revanced_spoof_video_streams_client_title">ডিফল্ট ক্লায়েন্ট</string>
<string name="revanced_spoof_video_streams_client_type_title">ডিফল্ট ক্লায়েন্ট</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">AVC (H.264) ফোর্স করুন</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">ভিডিও কোডেক AVC (H.264) তে বাধ্য করা হয়েছে</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">ভিডিও কোডেক স্বয়ংক্রিয়ভাবে নির্ধারিত হচ্ছে</string>
@@ -1292,9 +1298,10 @@ AVC-এর সর্বোচ্চ রেজোলিউশন 1080p, Opus অ
<string name="revanced_spoof_video_streams_about_ios_title">iOS স্পুফিং এর পার্শ্ব প্রতিক্রিয়া</string>
<string name="revanced_spoof_video_streams_about_ios_summary">"• বেসরকারি শিশু ভিডিও চলতে নাও পারে&lt;br&gt;• ভিডিওগুলি 1 সেকেন্ড আগে শেষ হয়"</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Android VR স্পুফিং এর পার্শ্ব প্রতিক্রিয়া</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">"• শিশু ভিডিওগুলি প্লে নাও হতে পারে
লাইভস্ট্রিম শুরু থেকে শুরু হয়
ভিডিও 1 সেকেন্ড আগে শেষ হয়"</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">"• শিশুদের ভিডিও চালু নাও হতে পারে
অডিও ট্র্যাক মেনু অনুপস্থিত
স্থিতিশীল ভলিউম পাওয়া যাচ্ছে না
• আসল অডিও জোরপূর্বক পাওয়া যাচ্ছে না"</string>
<string name="revanced_spoof_video_streams_language_title">ডিফল্ট অডিও স্ট্রিম ভাষা</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">অ্যাপ ভাষা</string>
<string name="revanced_spoof_video_streams_language_AR">আরবি</string>

View File

@@ -164,6 +164,8 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">

View File

@@ -1049,6 +1049,12 @@ Si després es desactiva, es recomana esborrar les dades de l'aplicació per evi
<string name="revanced_disable_resuming_shorts_player_summary_on">El reproductor de Shorts no es reprendrà a l\'inici de l\'aplicació</string>
<string name="revanced_disable_resuming_shorts_player_summary_off">El reproductor de Shorts es reprendrà a l\'inici de l\'aplicació</string>
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
<string name="revanced_shorts_player_type_title">Obre Youtube Shorts amb</string>
<string name="revanced_shorts_player_type_shorts">Reproductor de Shorts</string>
<string name="revanced_shorts_player_type_regular_player">Reproductor normal</string>
<string name="revanced_shorts_player_type_regular_player_fullscreen">Reproductor normal a pantalla completa</string>
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
<string name="revanced_shorts_autoplay_title">Reprodueix automàticament els Shorts</string>
<string name="revanced_shorts_autoplay_summary_on">Els Shorts es reproduiran automàticament</string>
@@ -1281,7 +1287,7 @@ Si actives aquesta opció, es poden desbloquejar qualitats de vídeo més altes"
La reproducció de vídeo pot no funcionar"</string>
<string name="revanced_spoof_video_streams_user_dialog_message">Desactivar aquesta configuració pot causar problemes de reproducció de vídeo.</string>
<string name="revanced_spoof_video_streams_client_title">Client predeterminat</string>
<string name="revanced_spoof_video_streams_client_type_title">Client predeterminat</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Força AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">El còdec de vídeo es força a AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">El còdec de vídeo es determina automàticament</string>
@@ -1292,9 +1298,10 @@ AVC té una resolució màxima de 1080p, el còdec d'àudio Opus no està dispon
<string name="revanced_spoof_video_streams_about_ios_summary">"• Els vídeos privats per a nens potser no es reprodueixen
• Els vídeos finalitzen 1 segon abans"</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Efecte secundaris de la suplantació d\'Android VR</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">"• Els vídeos de nens poden no reproduir-se
Les emissions en directe comencen des del principi
• Els vídeos acaben 1 segon abans"</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">"• És possible que els vídeos infantils no es reprodueixin
El menú de pistes d'àudio no està disponible
• El volum estable no està disponible
• L'opció Forçar àudio original no està disponible"</string>
<string name="revanced_spoof_video_streams_language_title">Idioma de la transmissió d\'àudio per defecte</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Idioma de l\'aplicació</string>
<string name="revanced_spoof_video_streams_language_AR">Àrab</string>

View File

@@ -1049,6 +1049,12 @@ Pokud bude později vypnuta, doporučujeme vymazat data aplikace, aby se zabrán
<string name="revanced_disable_resuming_shorts_player_summary_on">Přehrávač Shorts nebude obnoven při spuštění aplikace</string>
<string name="revanced_disable_resuming_shorts_player_summary_off">Přehrávač Shorts se po spuštění aplikace znovu spustí</string>
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
<string name="revanced_shorts_player_type_title">Otevřít Shorts s</string>
<string name="revanced_shorts_player_type_shorts">Přehrávač Shorts</string>
<string name="revanced_shorts_player_type_regular_player">Běžný přehrávač</string>
<string name="revanced_shorts_player_type_regular_player_fullscreen">Normální přehrávač (celá obrazovka)</string>
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
<string name="revanced_shorts_autoplay_title">Automatické přehrávání Shorts</string>
<string name="revanced_shorts_autoplay_summary_on">Shorts se budou automaticky přehrávat</string>
@@ -1280,7 +1286,7 @@ Povolením této funkce lze odemknout vyšší kvality videa"</string>
Přehrávání videa nemusí fungovat"</string>
<string name="revanced_spoof_video_streams_user_dialog_message">Vypnutí tohoto nastavení může způsobit problémy s přehráváním videa.</string>
<string name="revanced_spoof_video_streams_client_title">Výchozí klient</string>
<string name="revanced_spoof_video_streams_client_type_title">Výchozí klient</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Vynutit AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Video kodek je vynucen na AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Video kodek je určen automaticky</string>
@@ -1291,9 +1297,10 @@ AVC má maximální rozlišení 1080p, audio kodek Opus není dostupný a přehr
<string name="revanced_spoof_video_streams_about_ios_summary">"• Soukromá dětská videa se nemusí přehrávat
• Videa končí o 1 sekundu dříve"</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Vedlejší účinky napodobování Android VR</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">"• Videa pro děti se nemusí přehrát
Livestreamy začínají od začátku
Videa končí o 1 sekundu dříve"</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">"• Dětská videa se nemusí přehrávat
Chybí nabídka zvukových stop
Není k dispozici stabilní hlasitost
• Není k dispozici vynucení původního zvuku"</string>
<string name="revanced_spoof_video_streams_language_title">Výchozí jazyk zvukového streamu</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Jazyk aplikace</string>
<string name="revanced_spoof_video_streams_language_AR">Arabsky</string>

View File

@@ -1050,6 +1050,12 @@ Hvis det senere slås fra, anbefales det at rydde app-dataene for at forhindre U
<string name="revanced_disable_resuming_shorts_player_summary_on">Shorts-afspilleren genoptages ikke ved app-start</string>
<string name="revanced_disable_resuming_shorts_player_summary_off">Kortspilleren vil genoptage ved app-opstart</string>
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
<string name="revanced_shorts_player_type_title">Åbne Shorts med</string>
<string name="revanced_shorts_player_type_shorts">Shorts-afspiller</string>
<string name="revanced_shorts_player_type_regular_player">Standardafspiller</string>
<string name="revanced_shorts_player_type_regular_player_fullscreen">Standardafspiller i fuld skærm</string>
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
<string name="revanced_shorts_autoplay_title">Automatisk afspilning af Shorts</string>
<string name="revanced_shorts_autoplay_summary_on">Shorts afspilles automatisk</string>
@@ -1281,7 +1287,7 @@ Aktivering af dette kan låse op for højere videokvalitet"</string>
Videoafspilning virker muligvis ikke"</string>
<string name="revanced_spoof_video_streams_user_dialog_message">At slå denne indstilling fra kan forårsage problemer med videoafspilning.</string>
<string name="revanced_spoof_video_streams_client_title">Standard klient</string>
<string name="revanced_spoof_video_streams_client_type_title">Standard klient</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Gennemtving AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Video-codec er tvunget til AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Video-codec bestemmes automatisk</string>
@@ -1292,9 +1298,10 @@ AVC har en maksimal opløsning på 1080p, Opus lydcodec er ikke tilgængelig, og
<string name="revanced_spoof_video_streams_about_ios_summary">"• Private børnevideoer kan muligvis ikke afspilles
• Videoer slutter 1 sekund før"</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Android VR spoofing bivirkninger</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">"• Børnevideoer kan ikke afspilles
• Livestreams starter fra begyndelsen
Videoer slutter 1 sekund tidligere"</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">"• Børnevideoer afspilles muligvis ikke
• Lydspormenuen mangler
Stabil lydstyrke er ikke tilgængelig
• Tving original lyd er ikke tilgængelig"</string>
<string name="revanced_spoof_video_streams_language_title">Standard lyd-stream sprog</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">App sprog</string>
<string name="revanced_spoof_video_streams_language_AR">Arabisk</string>

View File

@@ -1044,6 +1044,12 @@ Wenn Sie die Funktion später deaktivieren, wird empfohlen, die App-Daten zu lö
<string name="revanced_disable_resuming_shorts_player_summary_on">Der Shorts Player wird beim Start der App nicht fortgesetzt</string>
<string name="revanced_disable_resuming_shorts_player_summary_off">Shorts-Player wird beim Start der App fortgesetzt</string>
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
<string name="revanced_shorts_player_type_title">Shorts mit</string>
<string name="revanced_shorts_player_type_shorts">Shorts Spieler</string>
<string name="revanced_shorts_player_type_regular_player">Normaler Spieler</string>
<string name="revanced_shorts_player_type_regular_player_fullscreen">Normaler Spieler im Vollbildmodus</string>
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
<string name="revanced_shorts_autoplay_title">Shorts automatisch abspielen</string>
<string name="revanced_shorts_autoplay_summary_on">Shorts werden autoplay</string>
@@ -1275,7 +1281,7 @@ Durch Aktivieren dieser Option können höhere Videoqualitäten freigeschaltet w
Die Videowiedergabe funktioniert möglicherweise nicht"</string>
<string name="revanced_spoof_video_streams_user_dialog_message">Das Deaktivieren dieser Einstellung kann zu Videowiedergabeproblemen führen.</string>
<string name="revanced_spoof_video_streams_client_title">Standard-Client</string>
<string name="revanced_spoof_video_streams_client_type_title">Standard-Client</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">AVC erzwingen (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Video-Codec ist zu AVC gezwungen (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Video-Codec wird automatisch bestimmt</string>
@@ -1286,9 +1292,10 @@ AVC hat eine maximale Auflösung von 1080p, der Opus-Audiocodec ist nicht verfü
<string name="revanced_spoof_video_streams_about_ios_summary">"• Private Kindervideos werden möglicherweise nicht abgespielt
• Videos enden 1 Sekunde früher"</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Android VR Spoofing Nebeneffekte</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">"• Kindervideos werden möglicherweise nicht abgespielt
Livestreams starten von Anfang an
Videos enden 1 Sekunde früher"</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">"• Kinder-Videos werden möglicherweise nicht abgespielt
Audio-Spuren-Menü fehlt
Stabile Lautstärke ist nicht verfügbar
• Erzwingen des Original-Audios ist nicht verfügbar"</string>
<string name="revanced_spoof_video_streams_language_title">Standard Audio Streamsprache</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">App-Sprache</string>
<string name="revanced_spoof_video_streams_language_AR">Arabisch</string>

View File

@@ -1051,6 +1051,12 @@ Second \"item\" text"</string>
<string name="revanced_disable_resuming_shorts_player_summary_on">Η αναπαραγωγή Shorts δε θα συνεχίζεται κατά την εκκίνηση της εφαρμογής</string>
<string name="revanced_disable_resuming_shorts_player_summary_off">Η αναπαραγωγή Shorts θα συνεχίζεται κατά την εκκίνηση της εφαρμογής</string>
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
<string name="revanced_shorts_player_type_title">Άνοιγμα Shorts με</string>
<string name="revanced_shorts_player_type_shorts">Οθόνη αναπαραγωγής Shorts</string>
<string name="revanced_shorts_player_type_regular_player">Οθόνη αναπαραγωγής κανονικών βίντεο </string>
<string name="revanced_shorts_player_type_regular_player_fullscreen">Πλήρη οθόνη αναπαραγωγής κανονικών βίντεο </string>
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
<string name="revanced_shorts_autoplay_title">Αυτόματη αναπαραγωγή Shorts</string>
<string name="revanced_shorts_autoplay_summary_on">Τα επόμενα Shorts θα αναπαράγονται αυτόματα</string>
@@ -1280,7 +1286,7 @@ Second \"item\" text"</string>
Η αναπαραγωγή βίντεο ενδέχεται να μην λειτουργεί"</string>
<string name="revanced_spoof_video_streams_user_dialog_message">Η απενεργοποίηση αυτής της ρύθμισης ενδέχεται να προκαλέσει προβλήματα αναπαραγωγής βίντεο.</string>
<string name="revanced_spoof_video_streams_client_title">Προεπιλεγμένο πρόγραμμα πελάτη</string>
<string name="revanced_spoof_video_streams_client_type_title">Προεπιλεγμένο πρόγραμμα πελάτη</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Εξαναγκασμός AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Ο κωδικοποιητής βίντεο έχει οριστεί υποχρεωτικά σε AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Ο κωδικοποιητής βίντεο ορίζεται αυτόματα</string>
@@ -1293,7 +1299,8 @@ Second \"item\" text"</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Παρενέργειες παραποίησης σε Android VR</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">"• Τα βίντεο για παιδιά ενδέχεται να μην αναπαράγονται
Το μενού «Κομμάτι ήχου» λείπει
Η λειτουργία «Σταθερή ένταση» δεν είναι διαθέσιμη"</string>
Η λειτουργία «Σταθερή ένταση» δεν είναι διαθέσιμη
Η λειτουργία εξαναγκασμού αρχικού ήχου δεν είναι διαθέσιμη"</string>
<string name="revanced_spoof_video_streams_language_title">Προεπιλεγμένη γλώσσα ροής ήχου</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Γλώσσα εφαρμογής</string>
<string name="revanced_spoof_video_streams_language_AR">Αραβικά</string>

View File

@@ -1031,6 +1031,12 @@ Si se desactiva posteriormente, se recomienda borrar los datos de la aplicación
<string name="revanced_disable_resuming_shorts_player_summary_on">El reproductor de Shorts no se reanudará al iniciar la aplicación</string>
<string name="revanced_disable_resuming_shorts_player_summary_off">El reproductor de Shorts se reanudará al iniciar la aplicación</string>
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
<string name="revanced_shorts_player_type_title">Abre Shorts con</string>
<string name="revanced_shorts_player_type_shorts">Reproductor de Shorts</string>
<string name="revanced_shorts_player_type_regular_player">Reproductor normal</string>
<string name="revanced_shorts_player_type_regular_player_fullscreen">Reproductor normal en pantalla completa</string>
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
<string name="revanced_shorts_autoplay_title">Reproducción automática de Shorts</string>
<string name="revanced_shorts_autoplay_summary_on">Los Shorts se reproducirán automáticamente</string>
@@ -1262,7 +1268,7 @@ Habilitar esto puede desbloquear calidades de vídeo más altas"</string>
Es posible que la reproducción de vídeo no funcione"</string>
<string name="revanced_spoof_video_streams_user_dialog_message">Desactivar esta configuración puede causar problemas de reproducción de vídeo.</string>
<string name="revanced_spoof_video_streams_client_title">Cliente por defecto</string>
<string name="revanced_spoof_video_streams_client_type_title">Cliente por defecto</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Forzar AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Códec de vídeo se ve obligado a AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">El códec de vídeo se determina automáticamente</string>
@@ -1273,9 +1279,10 @@ AVC tiene una resolución máxima de 1080p, el códec de audio Opus no está dis
<string name="revanced_spoof_video_streams_about_ios_summary">"• Es posible que los videos privados para niños no se reproduzcan
• Los videos terminan 1 segundo antes"</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Efectos secundarios para la falsificación de Android RV</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">"• Es posible que los vídeos para niños no se reproduzcan
Las transmisiones en vivo empiezan desde el principio
Los vídeos terminan 1 segundo antes"</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">"•Los videos para niños pueden no reproducirse
Menú de pistas de audio no disponible
Volumen estable no disponible
• Forzar audio original no disponible"</string>
<string name="revanced_spoof_video_streams_language_title">Idioma de flujo de audio por defecto</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Idioma de la aplicación</string>
<string name="revanced_spoof_video_streams_language_AR">Árabe</string>

View File

@@ -1050,6 +1050,12 @@ Kui see hiljem välja lülitatakse, on soovitatav rakenduse andmed kustutada, et
<string name="revanced_disable_resuming_shorts_player_summary_on">Shortsi esitaja ei jätka rakenduse käivitamisel</string>
<string name="revanced_disable_resuming_shorts_player_summary_off">Shortsi esitaja jätkub rakenduse käivitamisel</string>
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
<string name="revanced_shorts_player_type_title">Ava Shorts</string>
<string name="revanced_shorts_player_type_shorts">Shorts esitusprogramm</string>
<string name="revanced_shorts_player_type_regular_player">Tavaline mängija</string>
<string name="revanced_shorts_player_type_regular_player_fullscreen">Tavaline mängija täisekraanil</string>
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
<string name="revanced_shorts_autoplay_title">Shortsi automaatne esitus</string>
<string name="revanced_shorts_autoplay_summary_on">Shortsid esitatakse automaatselt</string>
@@ -1282,7 +1288,7 @@ Selle lubamine võib avada kõrgema video kvaliteedi"</string>
Video taasesitus ei pruugi toimida"</string>
<string name="revanced_spoof_video_streams_user_dialog_message">Selle seade keelamine võib põhjustada videote taasesituse probleeme.</string>
<string name="revanced_spoof_video_streams_client_title">Vaikimisi klient</string>
<string name="revanced_spoof_video_streams_client_type_title">Vaikimisi klient</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Sunni AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Videokodek on sunnitud AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Videokodek määratakse automaatselt</string>
@@ -1293,9 +1299,10 @@ AVC-l on maksimaalne resolutsioon 1080p, Opus-heli kodeerijat pole saadaval ja v
<string name="revanced_spoof_video_streams_about_ios_summary">"• Privaatseid lastevideoid ei pruugita esitada
• Videod lõpevad 1 sekund varem"</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Android VR spoofing-i kõrvalmõjud</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">"• Lastevideod ei pruugi mängida
Otseülekanded algavad algusest
Videod lõpevad 1 sekundit enne aega"</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">"• Laste videod ei pruugi mängida
Heliriba menüü pole saadaval
Stabiilne helitugevus pole saadaval
• Originaalheli pole saadaval"</string>
<string name="revanced_spoof_video_streams_language_title">Vaikimisi helivoolu keel</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Rakenduse keel</string>
<string name="revanced_spoof_video_streams_language_AR">Araabia keel</string>

View File

@@ -164,6 +164,8 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">

View File

@@ -164,6 +164,8 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">

View File

@@ -1050,6 +1050,12 @@ Jos tämä ominaisuus kytketään myöhemmin pois, on suositeltavaa tyhjentää
<string name="revanced_disable_resuming_shorts_player_summary_on">Shorts-soitin ei jatku sovelluksen käynnistyessä</string>
<string name="revanced_disable_resuming_shorts_player_summary_off">Shorts-soitin jatkuu sovelluksen käynnistyessä</string>
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
<string name="revanced_shorts_player_type_title">Avaa Shorts, kun</string>
<string name="revanced_shorts_player_type_shorts">Shorts-soitin</string>
<string name="revanced_shorts_player_type_regular_player">Tavallinen toistin</string>
<string name="revanced_shorts_player_type_regular_player_fullscreen">Tavallinen toistin, koko näyttö</string>
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
<string name="revanced_shorts_autoplay_title">Shortsien automaattinen toisto</string>
<string name="revanced_shorts_autoplay_summary_on">Shortsit toistetaan automaattisesti</string>
@@ -1281,7 +1287,7 @@ Tämä voi avata korkealaatuisemmat videot"</string>
Videon toisto ei välttämättä toimi"</string>
<string name="revanced_spoof_video_streams_user_dialog_message">Tämän asetuksen poistaminen käytöstä voi aiheuttaa ongelmia videotoistossa.</string>
<string name="revanced_spoof_video_streams_client_title">Oletusasiakasohjelma</string>
<string name="revanced_spoof_video_streams_client_type_title">Oletusasiakasohjelma</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Pakota AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Videon koodekki pakotetaan AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Videokoodekki määritetään automaattisesti</string>
@@ -1292,9 +1298,10 @@ AVC:llä on enimmäisresoluutio 1080p, Opus-äänikoodekkia ei ole käytettävis
<string name="revanced_spoof_video_streams_about_ios_summary">"• Yksityisiä lasten videoita ei ehkä toisteta
• Videot päättyvät 1 sekunnin etuajassa"</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Android VR -naamioinnin haittavaikutukset</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">"• Lasten videot eivät välttämättä toistu
Suoratoistot alkavat alusta
Videot päättyvät 1 sekuntia aikaisemmin"</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">"• Lapsivideoita ei ehkä toisteta
Ääniraita-valikko puuttuu
Tasainen äänenvoimakkuus ei ole käytettävissä
• Pakota alkuperäinen ääni ei ole käytettävissä"</string>
<string name="revanced_spoof_video_streams_language_title">Äänivirran oletuskieli</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Sovelluksen kieli</string>
<string name="revanced_spoof_video_streams_language_AR">Arabia</string>

View File

@@ -1050,6 +1050,12 @@ Kung mamaya ay patayin, inirerekumenda na i-clear ang data ng app upang maiwasan
<string name="revanced_disable_resuming_shorts_player_summary_on">Hindi magpapatuloy ang Shorts player sa pagsisimula ng app</string>
<string name="revanced_disable_resuming_shorts_player_summary_off">Magpapatuloy ang manlalaro ng shorts sa pagsisimula ng app</string>
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
<string name="revanced_shorts_player_type_title">Buksan ang Shorts gamit ang</string>
<string name="revanced_shorts_player_type_shorts">Shorts player</string>
<string name="revanced_shorts_player_type_regular_player">Regular player</string>
<string name="revanced_shorts_player_type_regular_player_fullscreen">Regular player fullscreen</string>
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
<string name="revanced_shorts_autoplay_title">Awtomatikong pag-play ng Shorts</string>
<string name="revanced_shorts_autoplay_summary_on">Awtomatikong magpa-play ang mga Shorts</string>
@@ -1282,7 +1288,7 @@ Ang pagpapagana nito ay maaaring magbukas ng mas mataas na kalidad ng video"</st
Ang paglalaro ng video ay maaaring hindi gumana"</string>
<string name="revanced_spoof_video_streams_user_dialog_message">Ang pag-off sa setting na ito ay maaaring magdulot ng mga isyu sa pag-playback ng video.</string>
<string name="revanced_spoof_video_streams_client_title">Default client</string>
<string name="revanced_spoof_video_streams_client_type_title">Default na kliyente</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Pilitin ang AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Ang video codec ay napipilitang maging AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Awtomatikong natutukoy ang video codec</string>
@@ -1294,9 +1300,12 @@ Ang AVC ay may maximum na resolution na 1080p, ang Opus audio codec ay hindi mag
• Maaaring hindi ma-play ang mga pribadong video ng mga bata
• Nagtatapos ang mga video ng 1 segundo nang mas maaga"</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Mga epekto sa gilid ng pag-spoof ng Android VR</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">"• Ang mga video ng mga bata ay maaaring hindi maglaro
Ang mga livestream ay magsisimula mula sa simula
Ang mga video ay magtatapos ng 1 segundo nang maaga"</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">"• Maaaring hindi maipalabas ang mga video para sa mga bata
Nawawala ang menu ng audio track
Hindi available ang matatag na volume
• Hindi available ang puwersahang orihinal na audio
"</string>
<string name="revanced_spoof_video_streams_language_title">Default na wika ng audio stream</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Wika ng app</string>
<string name="revanced_spoof_video_streams_language_AR">Arabe</string>

View File

@@ -1050,6 +1050,12 @@ Si cette option est désactivée par la suite, il est recommandé de vider les d
<string name="revanced_disable_resuming_shorts_player_summary_on">Le lecteur de Shorts ne se relancera pas au démarrage de l\'application</string>
<string name="revanced_disable_resuming_shorts_player_summary_off">Le lecteur court reprendra au démarrage de l\'application</string>
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
<string name="revanced_shorts_player_type_title">Ouvrir Shorts avec</string>
<string name="revanced_shorts_player_type_shorts">Lecteur Shorts</string>
<string name="revanced_shorts_player_type_regular_player">Lecteur classique</string>
<string name="revanced_shorts_player_type_regular_player_fullscreen">Lecteur classique en plein écran</string>
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
<string name="revanced_shorts_autoplay_title">Jouer les Shorts</string>
<string name="revanced_shorts_autoplay_summary_on">Les Shorts joueront automatiquement</string>
@@ -1281,7 +1287,7 @@ L'activation de cette option peut déverrouiller des qualités vidéo plus élev
La lecture vidéo peut ne pas fonctionner"</string>
<string name="revanced_spoof_video_streams_user_dialog_message">Désactiver ce paramètre peut causer des problèmes de lecture vidéo.</string>
<string name="revanced_spoof_video_streams_client_title">Client par défaut</string>
<string name="revanced_spoof_video_streams_client_type_title">Client par défaut</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Forcer AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Le codec vidéo est forcé à AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Le codec vidéo est déterminé automatiquement</string>
@@ -1292,9 +1298,10 @@ AVC a une résolution maximale de 1080p, le codec audio Opus n'est pas disponibl
<string name="revanced_spoof_video_streams_about_ios_summary">"• Les vidéos privées pour enfants ne peuvent pas être lues
 Les vidéos se terminent 1 seconde plus tôt"</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Effets secondaires de l\'usurpation VR Android</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">"• Les vidéos pour enfants peuvent ne pas être lues
• Les diffusions en direct commencent depuis le début
• Les vidéos se terminent 1 seconde plus tôt"</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">"• Les vidéos pour enfants risquent de ne pas être lues
• Le menu de la piste audio est manquant
• Le volume stable n'est pas disponible
 Forcer l'audio d'origine n'est pas disponible"</string>
<string name="revanced_spoof_video_streams_language_title">Langue du flux audio par défaut</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Langue de l\'application</string>
<string name="revanced_spoof_video_streams_language_AR">Arabe</string>

View File

@@ -1050,6 +1050,12 @@ Má dhiúltaítear é níos déanaí, moltar sonraí an aip a ghlanadh chun buga
<string name="revanced_disable_resuming_shorts_player_summary_on">Ní thosóidh an t-imreoir Shorts ar thosú an aip</string>
<string name="revanced_disable_resuming_shorts_player_summary_off">Athosóidh an t-imreoir Shorts ar thosú an aip</string>
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
<string name="revanced_shorts_player_type_title">Oscail Shorts le</string>
<string name="revanced_shorts_player_type_shorts">Shorts seinnteoir</string>
<string name="revanced_shorts_player_type_regular_player">Imreoir Rialaigh</string>
<string name="revanced_shorts_player_type_regular_player_fullscreen">Imreoir Rialaigh lán-scáileán</string>
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
<string name="revanced_shorts_autoplay_title">Shorts Autoplay</string>
<string name="revanced_shorts_autoplay_summary_on">Seinnfidh Shorts go huathoibríoch</string>
@@ -1282,7 +1288,7 @@ Is féidir le seo caighdeáin físeáin níos airde a dhíghlasáil"</string>
D'fhéadfadh nach n-oibreoidh athsheinm físeáin"</string>
<string name="revanced_spoof_video_streams_user_dialog_message">Seans go mbeidh fadhbanna athsheinm físe ag baint leis an socrú seo a mhúchadh.</string>
<string name="revanced_spoof_video_streams_client_title">Cliant réamhshocraithe</string>
<string name="revanced_spoof_video_streams_client_type_title">Cliant réamhshocraithe</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Fórsa AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Tá códú físeáin á fhorchur ar AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Cinneadh go huathoibríoch an códú físeáin</string>
@@ -1293,9 +1299,10 @@ Tá uasmhéid réiteach 1080p ag AVC, níl an cód fuaime Opus ar fáil, agus ú
<string name="revanced_spoof_video_streams_about_ios_summary">"• Ní fhéadfaidh físeáin phríobháideacha leanaí a imirt
• Críochnaíonn físeáin 1 soicind go luath"</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Fo-iarsmaí spoofing Android VR</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">"• D'fhéadfadh nach n-imreoidh físeáin pháistí
• Tosóidh shruth beo ón tús
Críochnóidh físeáin 1 soicind go luath"</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">"• Fuairfí b'fhéidir nach mbeidh físeáin do pháistí ag seinm
• Tá an fhéilire raca fhuaime ar iarraidh
Ní fheictear an toirt in úsáid
• Níl éisteacht leis an fuaim bhunúsach ar fáil"</string>
<string name="revanced_spoof_video_streams_language_title">Teanga réamhshocraithe sruth fuaime</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Teanga na feidhmchláir</string>
<string name="revanced_spoof_video_streams_language_AR">Araibis</string>

View File

@@ -164,6 +164,8 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">

View File

@@ -164,6 +164,8 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">

Some files were not shown because too many files have changed in this diff Show More