Compare commits
6
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fbafccf1bd | ||
|
|
029ab22b9f | ||
|
|
f4215a7b0b | ||
|
|
0d1e7bad8e | ||
|
|
e97ada36c1 | ||
|
|
4d1b478606 |
@@ -15,10 +15,19 @@
|
|||||||
@interface YTTransportControlsButtonView : UIView
|
@interface YTTransportControlsButtonView : UIView
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
@interface _ASCollectionViewCell : UICollectionViewCell
|
||||||
|
- (id)node;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface YTAsyncCollectionView : UICollectionView
|
||||||
|
- (void)removeShortsAndFeaturesAdsAtIndexPath:(NSIndexPath *)indexPath;
|
||||||
|
@end
|
||||||
|
|
||||||
// @interface YTPlaylistHeaderViewController : UIViewController
|
// @interface YTPlaylistHeaderViewController : UIViewController
|
||||||
// @property (nonatomic, strong, readwrite) UIView *downloadsButton;
|
// @property (nonatomic, strong, readwrite) UIView *downloadsButton;
|
||||||
// @end
|
// @end
|
||||||
|
|
||||||
|
// iOS16 fix
|
||||||
@interface OBPrivacyLinkButton : UIButton
|
@interface OBPrivacyLinkButton : UIButton
|
||||||
- (instancetype)initWithCaption:(NSString *)caption
|
- (instancetype)initWithCaption:(NSString *)caption
|
||||||
buttonText:(NSString *)buttonText
|
buttonText:(NSString *)buttonText
|
||||||
|
|||||||
@@ -78,32 +78,32 @@
|
|||||||
|
|
||||||
- My official AtlStore repo: https://qnblackcat.github.io/AltStore/
|
- My official AtlStore repo: https://qnblackcat.github.io/AltStore/
|
||||||
|
|
||||||
- [Open in AltStore (v17.23.6-2.1)](https://tinyurl.com/5upjtvbv) - It will take a while to install because AltStore needs to download the IPA.
|
- [Open in AltStore (v17.24.4-2.1)](https://tinyurl.com/277rhd8n) - It will take a while to install because AltStore needs to download the IPA.
|
||||||
|
|
||||||
- Version info: _(last update: June 14)_
|
- Version info: _(last update: June 22)_
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Expand</summary>
|
<summary>Expand</summary>
|
||||||
|
|
||||||
| **Tweaks/App** | **Version** | **Open source** |
|
| **Tweaks/App** | **Version** | **Open source** |
|
||||||
| :------------: | :----------:| :-------------: |
|
| :------------: | :----------:| :-------------: |
|
||||||
| **YouTube** | 17.23.6 | ✖︎ |
|
| **YouTube** | 17.24.4 | ✖︎ |
|
||||||
| [uYou](https://github.com/MiRO92/uYou-for-YouTube) | 2.1 | ✖︎ |
|
| [uYou](https://github.com/MiRO92/uYou-for-YouTube) | 2.1 | ✖︎ |
|
||||||
| [Open in YouTube](https://github.com/CokePokes/YoutubeExtensions/) | 1.2 | ✖︎ |
|
| [Open in YouTube](https://github.com/CokePokes/YoutubeExtensions) | 1.2 | ✖︎ |
|
||||||
| **Return YouTube Dislike** | 1.6.5 | [✔︎](https://github.com/PoomSmart/Return-YouTube-Dislikes) |
|
| **Return YouTube Dislike** | 1.6.5 | [✔︎](https://github.com/PoomSmart/Return-YouTube-Dislikes) |
|
||||||
| **iSponsorBlock** | 1.0-14 | [✔︎](https://github.com/Galactic-Dev/iSponsorBlock) |
|
| **iSponsorBlock** | 1.0-14 | [✔︎](https://github.com/Galactic-Dev/iSponsorBlock) |
|
||||||
| **Alderis Color Picker** | 1.2| [✔︎](https://github.com/hbang/Alderis) |
|
| **Alderis Color Picker** | 1.2| [✔︎](https://github.com/hbang/Alderis) |
|
||||||
| **NoYTPremium** | 1.0.4 | [✔︎](https://github.com/PoomSmart/NoYTPremium/) |
|
| **NoYTPremium** | 1.0.4 | [✔︎](https://github.com/PoomSmart/NoYTPremium) |
|
||||||
| **YouRememberCaption** | 1.0.0 | [✔︎](https://poomsmart.github.io/repo/depictions/youremembercaption.html) |
|
| **YouRememberCaption** | 1.0.0 | [✔︎](https://poomsmart.github.io/repo/depictions/youremembercaption.html) |
|
||||||
| **YTClassicVideoQuality** | 1.0.1 | [✔︎](https://github.com/PoomSmart/YTClassicVideoQuality) |
|
| **YTClassicVideoQuality** | 1.0.1 | [✔︎](https://github.com/PoomSmart/YTClassicVideoQuality) |
|
||||||
| **YTNoCheckLocalNetwork** | 1.0.2 | [✔︎](https://poomsmart.github.io/repo/depictions/ytnochecklocalnetwork.html) |
|
| **YTNoCheckLocalNetwork** | 1.0.2 | [✔︎](https://poomsmart.github.io/repo/depictions/ytnochecklocalnetwork.html) |
|
||||||
| **YTNoHoverCards** | 0.0.3 | [✔︎](https://github.com/level3tjg/YTNoHoverCards) |
|
| **YTNoHoverCards** | 0.0.3 | [✔︎](https://github.com/level3tjg/YTNoHoverCards) |
|
||||||
| **YTSystemAppearance** | 1.0.0 | [✔︎](https://poomsmart.github.io/repo/depictions/ytsystemappearance.html) |
|
| **YTSystemAppearance** | 1.0.0 | [✔︎](https://poomsmart.github.io/repo/depictions/ytsystemappearance.html) |
|
||||||
| **YTUHD** | 1.2.7 | [✔︎](https://github.com/PoomSmart/YTUHD) |
|
| **YTUHD** | 1.2.7 | [✔︎](https://github.com/PoomSmart/YTUHD) |
|
||||||
| **YouPiP** | 1.7.3 | [✔︎](https://github.com/PoomSmart/YouPiP) |
|
| **YouPiP** | 1.7.4 | [✔︎](https://github.com/PoomSmart/YouPiP) |
|
||||||
| **IAmYouTube** | 1.2.0 | [✔︎](https://github.com/PoomSmart/IAmYouTube) |
|
| **IAmYouTube** | 1.2.0 | [✔︎](https://github.com/PoomSmart/IAmYouTube) |
|
||||||
| **YTSpeed** | 1.0.1 | [✔︎](https://github.com/Lyvendia/YTSpeed) |
|
| **YTSpeed** | 1.0.1 | [✔︎](https://github.com/Lyvendia/YTSpeed) |
|
||||||
| **YTAutoFullScreen** | 1.0.3 | [✔︎](https://github.com/PoomSmart/YTAutoFullScreen/) |
|
| **YTAutoFullScreen** | 1.0.3 | [✔︎](https://github.com/PoomSmart/YTAutoFullScreen) |
|
||||||
| **YTReExplore** | 1.0.2 | [✔︎](https://github.com/PoomSmart/YTReExplore) |
|
| **YTReExplore** | 1.0.2 | [✔︎](https://github.com/PoomSmart/YTReExplore) |
|
||||||
| **BigYTMiniPlayer** | 1.0-1 | [✔︎](https://github.com/Galactic-Dev/BigYTMiniPlayer) |
|
| **BigYTMiniPlayer** | 1.0-1 | [✔︎](https://github.com/Galactic-Dev/BigYTMiniPlayer) |
|
||||||
| **YTCastConfirm** | 1.0.0 | [✔︎](https://github.com/JamieBerghmans/YTCastConfirm) |
|
| **YTCastConfirm** | 1.0.0 | [✔︎](https://github.com/JamieBerghmans/YTCastConfirm) |
|
||||||
|
|||||||
@@ -0,0 +1,53 @@
|
|||||||
|
// How to translate uYouPlus to your languate:
|
||||||
|
//
|
||||||
|
// 1. Fork uYouPlus repo
|
||||||
|
// 2. Duplicate the template.lproj folder, and edit the duplicated folder's name to your <lang_code>.lproj id. For example: ru.lproj
|
||||||
|
// for Russia. For more details, visit: https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes
|
||||||
|
// 3. Translate each line below after each =
|
||||||
|
// 4. Open a Pull Request
|
||||||
|
//
|
||||||
|
// If your language already exists then feel free to check it and/or improve it!
|
||||||
|
//
|
||||||
|
// Settings
|
||||||
|
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Spultasten ausblenden";
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Spultasten im Overlay der Videosteuerung ausblenden";
|
||||||
|
|
||||||
|
"YT_MINIPLAYER" = "Miniplayer für alle YouTube-Videos aktivieren";
|
||||||
|
"YT_MINIPLAYER_DESC" = "Zum Beispiel bei Videos für Kinder.";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "Warnung vor Starten einer Übertragung (YTCastConfirm)";
|
||||||
|
"CAST_CONFIRM_DESC" = "Warnung vor Starten einer Übertragung, um ein versehentliches Übernehmen des TVs zu verhindern.";
|
||||||
|
|
||||||
|
"HIDE_HOVER_CARD" = "Endkarten ausblenden (YTNoHoverCards)";
|
||||||
|
"HIDE_HOVER_CARD_DESC" = "Endkarten (Thumbnails) am Ende von Videos ausblenden.";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "Neue Miniplayer-Leiste (BigYTMiniPlayer)";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "App-Neustart erforderlich.";
|
||||||
|
|
||||||
|
"YT_RE_EXPLORE" = "Registerkarte 'Shorts' durch Registerkarte 'Entdecken' ersetzen (YTReExplore)";
|
||||||
|
"YT_RE_EXPLORE_DESC" = "App-Neustart erforderlich.";
|
||||||
|
|
||||||
|
"HIDE_SUBTITLES_BUTTON" = "Schaltfläche 'Untertitel' ausblenden";
|
||||||
|
"HIDE_SUBTITLES_BUTTON_DESC" = "Schaltfläche 'Untertitel' im Overlay der Videosteuerung ausblenden.";
|
||||||
|
|
||||||
|
"HIDE_AUTOPLAY_SWITCH" = "Schaltfläche 'Autoplay' ausblenden";
|
||||||
|
"HIDE_AUTOPLAY_SWITCH_DESC" = Schaltfläche 'Autoplay' im Overlay der Videosteuerung ausblenden.";
|
||||||
|
|
||||||
|
"AUTO_FULLSCREEN" = "Auto-Vollbild (YTAutoFullScreen)";
|
||||||
|
"AUTO_FULLSCREEN_DESC" = "Auto. Videos im Vollbild starten.";
|
||||||
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "HUD-Meldungen ausblenden";
|
||||||
|
"HIDE_HUD_MESSAGES_DESC" = "Beispiel: CC ist ein/ausgeschaltet, Videoschleife ist eingeschaltet,...";
|
||||||
|
|
||||||
|
"OLED_DARKMODE" = "OLED-Dunkelmodus (Experimentell)";
|
||||||
|
"OLED_DARKMODE_DESC" = "Funktioniert in einigen Fällen möglicherweise nicht richtig. Ein App-Neustart ist nach Aktiv-/Deaktivierung erforderlich.";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "OLED-Tastatur (Experimentell)";
|
||||||
|
"OLED_KEYBOARD_DESC" = "Funktioniert in einigen Fällen möglicherweise nicht richtig. App-Neustart erforderlich.";
|
||||||
|
|
||||||
|
// YTCastConfirm
|
||||||
|
"CASTING" = "Übertragen";
|
||||||
|
"MSG_ARE_YOU_SURE" = "Sind Sie sicher, dass Sie mit der Übertragung beginnen wollen?";
|
||||||
|
"MSG_YES" = "Ja";
|
||||||
|
"MSG_CANCEL" = "Abbrechen";
|
||||||
+30
-9
@@ -92,8 +92,8 @@ BOOL ytMiniPlayer() {
|
|||||||
MSHookIvar<YTMainAppControlsOverlayView *>(self, "_nextButton").hidden = YES;
|
MSHookIvar<YTMainAppControlsOverlayView *>(self, "_nextButton").hidden = YES;
|
||||||
MSHookIvar<YTMainAppControlsOverlayView *>(self, "_previousButton").hidden = YES;
|
MSHookIvar<YTMainAppControlsOverlayView *>(self, "_previousButton").hidden = YES;
|
||||||
// YouTube love beta testing :/
|
// YouTube love beta testing :/
|
||||||
MSHookIvar<YTTransportControlsButtonView *>(self, "_nextButtonView").hidden = YES;
|
// MSHookIvar<YTTransportControlsButtonView *>(self, "_nextButtonView").hidden = YES;
|
||||||
MSHookIvar<YTTransportControlsButtonView *>(self, "_previousButtonView").hidden = YES;
|
// MSHookIvar<YTTransportControlsButtonView *>(self, "_previousButtonView").hidden = YES;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
%end
|
%end
|
||||||
@@ -239,6 +239,25 @@ BOOL ytMiniPlayer() {
|
|||||||
}
|
}
|
||||||
%end
|
%end
|
||||||
|
|
||||||
|
// Hide YouTube Shorts banner in Home page? - MiRO92 - YTNoShorts: https://github.com/MiRO92/YTNoShorts
|
||||||
|
%hook YTAsyncCollectionView
|
||||||
|
- (id)cellForItemAtIndexPath:(NSIndexPath *)indexPath {
|
||||||
|
UICollectionViewCell *cell = %orig;
|
||||||
|
if ([cell isKindOfClass:NSClassFromString(@"_ASCollectionViewCell")]) {
|
||||||
|
_ASCollectionViewCell *cell = %orig;
|
||||||
|
if ([cell respondsToSelector:@selector(node)]) {
|
||||||
|
if ([[[cell node] accessibilityIdentifier] isEqualToString:@"statement_banner.view"]) { [self removeShortsAndFeaturesAdsAtIndexPath:indexPath]; }
|
||||||
|
if ([[[cell node] accessibilityIdentifier] isEqualToString:@"compact.view"]) { [self removeShortsAndFeaturesAdsAtIndexPath:indexPath]; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return %orig;
|
||||||
|
}
|
||||||
|
%new
|
||||||
|
- (void)removeShortsAndFeaturesAdsAtIndexPath:(NSIndexPath *)indexPath {
|
||||||
|
[self deleteItemsAtIndexPaths:[NSArray arrayWithObject:indexPath]];
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
# pragma mark - IAmYouTube - https://github.com/PoomSmart/IAmYouTube/
|
# pragma mark - IAmYouTube - https://github.com/PoomSmart/IAmYouTube/
|
||||||
%hook YTVersionUtils
|
%hook YTVersionUtils
|
||||||
+ (NSString *)appName { return YT_NAME; }
|
+ (NSString *)appName { return YT_NAME; }
|
||||||
@@ -356,7 +375,7 @@ UIColor* oledColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0];
|
|||||||
- (void)didMoveToWindow {
|
- (void)didMoveToWindow {
|
||||||
if (isDarkMode()) {
|
if (isDarkMode()) {
|
||||||
%orig;
|
%orig;
|
||||||
self.backgroundColor = oledColor;
|
self.backgroundColor = [UIColor clearColor];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
%end
|
%end
|
||||||
@@ -487,15 +506,17 @@ UIColor* oledColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0];
|
|||||||
- (void)didMoveToWindow {
|
- (void)didMoveToWindow {
|
||||||
%orig;
|
%orig;
|
||||||
if (isDarkMode()) {
|
if (isDarkMode()) {
|
||||||
|
if ([self.nextResponder isKindOfClass:%c(ASScrollView)]) { self.backgroundColor = [UIColor clearColor]; }
|
||||||
|
if ([self.accessibilityIdentifier isEqualToString:@"eml.cvr"]) { self.backgroundColor = oledColor; }
|
||||||
|
if ([self.accessibilityIdentifier isEqualToString:@"rich_header"]) { self.backgroundColor = oledColor; }
|
||||||
|
if ([self.accessibilityIdentifier isEqualToString:@"id.ui.comment_cell"]) { self.backgroundColor = oledColor; }
|
||||||
|
if ([self.accessibilityIdentifier isEqualToString:@"id.ui.cancel.button"]) { self.superview.backgroundColor = oledColor; }
|
||||||
if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.comment_composer"]) { self.backgroundColor = oledColor; }
|
if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.comment_composer"]) { self.backgroundColor = oledColor; }
|
||||||
if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.video_list_entry"]) { self.backgroundColor = oledColor; }
|
if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.video_list_entry"]) { self.backgroundColor = oledColor; }
|
||||||
if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.filter_chip_bar"]) { self.backgroundColor = oledColor; }
|
if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.filter_chip_bar"]) { self.backgroundColor = oledColor; }
|
||||||
if ([self.accessibilityIdentifier isEqualToString:@"id.ui.comment_cell"]) { self.backgroundColor = oledColor; }
|
|
||||||
if ([self.accessibilityIdentifier isEqualToString:@"eml.cvr"]) { self.backgroundColor = oledColor; }
|
|
||||||
if ([self.accessibilityIdentifier isEqualToString:@"rich_header"]) { self.backgroundColor = oledColor; }
|
|
||||||
if ([self.accessibilityIdentifier isEqualToString:@"id.comment.channel_guidelines_bottom_sheet_container"]) { self.backgroundColor = oledColor; }
|
|
||||||
if ([self.accessibilityIdentifier isEqualToString:@"id.comment.channel_guidelines_entry_banner_container"]) { self.backgroundColor = oledColor; }
|
|
||||||
if ([self.accessibilityIdentifier isEqualToString:@"id.comment.guidelines_text"]) { self.superview.backgroundColor = oledColor; }
|
if ([self.accessibilityIdentifier isEqualToString:@"id.comment.guidelines_text"]) { self.superview.backgroundColor = oledColor; }
|
||||||
|
if ([self.accessibilityIdentifier isEqualToString:@"id.comment.channel_guidelines_bottom_sheet_container"]) { self.backgroundColor = oledColor; }
|
||||||
|
if ([self.accessibilityIdentifier isEqualToString:@"id.comment.channel_guidelines_entry_banner_container"]) { self.superview.backgroundColor = oledColor; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
%end
|
%end
|
||||||
@@ -622,7 +643,7 @@ static void replaceTab(YTIGuideResponse *response) {
|
|||||||
%end
|
%end
|
||||||
%end
|
%end
|
||||||
|
|
||||||
// iOS 16 uYou crash fix
|
// iOS 16 uYou crash fix - @level3tjg: https://github.com/qnblackcat/uYouPlus/pull/224
|
||||||
%group iOS16
|
%group iOS16
|
||||||
%hook OBPrivacyLinkButton
|
%hook OBPrivacyLinkButton
|
||||||
%new
|
%new
|
||||||
|
|||||||
Reference in New Issue
Block a user