Compare commits

..
Author SHA1 Message Date
qnblackcat 4119cc4796 darker... 2022-04-19 09:14:32 +07:00
qnblackcat 9763459838 BigYTMiniPlayer (Galactic-dev, YTReExplore (PoomSmart) 2022-04-19 08:52:20 +07:00
qnblackcat ef0c1a8930 update Makefile 2022-04-18 23:23:05 +07:00
qnblackcat ca57262430 YTAutoFullScreen (PoomSmart), hide HUD messages, OLED Dark mode 2022-04-18 23:22:21 +07:00
qnblackcat 83c685c28f v17.14.2-2.1 2022-04-13 12:52:55 +07:00
qnblackcat 766ff8b142 add YTSpeed 2022-04-13 09:57:10 +07:00
qnblackcat c83dd8f5ea don't remove the uYou folder :/ 2022-04-02 15:20:37 +07:00
qnblackcat 5d6d1c0f23 uYou folder 2022-04-02 15:20:08 +07:00
qnblackcat 6e7aa03b55 v17.12.5-2.1 2022-04-02 14:00:13 +07:00
qnblackcat 2aca730640 v17.12.5-2.1 2022-04-01 19:28:39 +07:00
qnblackcat e3cc3cb62a clean up 2022-03-31 22:05:10 +07:00
qnblackcat 539143ca86 update submodules 2022-03-31 21:59:55 +07:00
Nguyễn Đạt f1903fe989 Update issue templates 2022-03-27 01:09:02 +07:00
qnblackcat 9a590b903c update submodules 2022-03-25 11:37:07 +07:00
qnblackcat abad6888e1 check file type 2022-03-22 11:55:04 +07:00
qnblackcat 691ae41732 update submodules 2022-03-22 11:13:54 +07:00
Nguyễn Đạt 2dfaf37125 Update .gitignore 2022-03-19 19:29:27 +07:00
qnblackcat d0e315f864 no static dylib 2022-03-19 19:20:07 +07:00
qnblackcat 98aba40ba2 add builapp.sh script 2022-03-19 19:17:09 +07:00
qnblackcat c7cf984f1b update submodules 2022-03-19 18:58:22 +07:00
Nguyễn Đạt 689fe3af35 add Installation instructions 2022-03-10 17:23:39 +07:00
qnblackcat 800b8be778 remove bundles 2022-03-08 17:56:05 +07:00
Nguyễn Đạt 77161f4830 Update README.md 2022-03-08 17:55:06 +07:00
Nguyễn Đạt 03b5b0ec6c typo 2022-03-08 17:53:24 +07:00
qnblackcat 0972479b62 update submodules 2022-03-08 17:51:15 +07:00
Nguyễn Đạt 4ea961589e v17.06.3-2.1 2022-02-16 23:42:46 +07:00
qnblackcat aeb941ac0e Merge branch 'main' of https://github.com/qnblackcat/uYouPlus into main 2022-02-16 00:40:48 +07:00
qnblackcat ce26a834b3 missing PSHeader 2022-02-16 00:40:27 +07:00
Nguyễn Đạt ef2834ae3e Update Makefile 2022-02-15 15:32:37 +07:00
Nguyễn Đạt d632b426eb Delete Resources/Frameworks/Alderis.framework directory 2022-02-15 15:31:26 +07:00
qnblackcat aed7144c0c add resources 2022-02-15 15:29:55 +07:00
qnblackcat 985d14ced1 no compiled dylib? 2022-02-15 15:27:26 +07:00
qnblackcat bd8b505462 updated tweaks to the latest version 2022-02-07 21:59:41 +07:00
qnblackcat 3b6cc1b9f5 updated tweaks 2022-02-01 12:34:48 +07:00
qnblackcat 82310ebb25 Merge branch 'main' of https://github.com/qnblackcat/uYouPlus into main 2022-01-29 23:42:24 +07:00
qnblackcat 499eb532f9 YouPiP 1.6.5 & RYD 1.6.1 2022-01-29 23:38:20 +07:00
Nguyễn Đạt 7376bce524 Update README.md 2022-01-22 22:57:00 +07:00
Nguyễn Đạt 24de17b928 Update README.md 2022-01-22 22:55:57 +07:00
qnblackcat 415bc0f9fe remove bundles 2022-01-22 21:36:19 +07:00
qnblackcat 212a6ca0fe Update YouTube & RYD & YouPiP 2022-01-22 21:34:43 +07:00
Nguyễn Đạt af0c2ce092 Update YDR‘s homepage 2022-01-07 00:10:18 +07:00
Nguyễn Đạt bc5e1178ac Update README.md 2022-01-03 00:27:02 +07:00
Nguyễn Đạt 0035e0d4c5 Update README.md 2022-01-03 00:26:30 +07:00
Nguyễn Đạt b13180ff39 Update README.md 2022-01-02 11:16:04 +07:00
Nguyễn Đạt 7eb0a89bf0 Update issue templates 2022-01-02 11:08:57 +07:00
qnblackcat 6c011f1b02 Added YTDislikeReturn & Update YouPiP & YT 2021-12-31 12:03:39 +07:00
Nguyễn Đạt 5c26c66ff0 Update issue templates 2021-12-20 10:20:19 +07:00
Nguyễn Đạt 6b600236dd Update README.md 2021-12-07 11:27:45 +07:00
Nguyễn Đạt 07a4acc1a3 Update issue templates 2021-12-07 11:24:56 +07:00
Nguyễn Đạt 6e0b1097c8 Update README.md 2021-12-07 11:05:24 +07:00
Nguyễn Đạt 57b9241a29 Update issue templates 2021-12-07 10:52:35 +07:00
Nguyễn Đạt 2c884cae02 Update issue templates 2021-12-07 10:42:47 +07:00
Nguyễn Đạt 1b695d297e Update issue templates 2021-12-07 10:42:17 +07:00
Nguyễn Đạt dd10e4eb0f Delete bug_report.md 2021-12-01 18:52:52 +07:00
Nguyễn Đạt b54fe11d95 Update issue templates 2021-12-01 18:51:48 +07:00
Nguyễn Đạt 7affb169fd moved some info to #FAQ 2021-11-28 17:57:53 +07:00
Nguyễn Đạt b1a8c6a75a YT 16.45.4 & iSponsorBlock 1.0-11 & YouPiP 1.5.15 2021-11-28 17:20:33 +07:00
qnblackcat a52162f1f8 YT 16.45.4 & iSponsorBlock 1.0-11 & YouPiP 1.5.15 2021-11-28 17:00:28 +07:00
Nguyễn Đạt 1c8928dcc6 typo, again 2021-11-17 00:48:48 +07:00
Nguyễn Đạt a8fbb54670 typo 2021-11-04 08:35:19 +07:00
Nguyễn Đạt 6c1464e60d Actually Open in AltStore 2021-11-04 00:08:26 +07:00
Nguyễn Đạt 110b4696b3 Open in AltStore 2021-11-03 22:12:30 +07:00
Nguyễn Đạt 7e57a09e0e Update README.md 2021-10-29 18:48:26 +07:00
Nguyễn Đạt e48b90804c Update README.md 2021-10-29 18:47:24 +07:00
Nguyễn Đạt eb3d5e7136 Update README.md 2021-10-29 18:44:58 +07:00
Nguyễn Đạt 92654477d4 Update README.md 2021-10-29 18:44:39 +07:00
Nguyễn Đạt 5c1932e667 Update Makefile 2021-10-29 18:35:09 +07:00
Nguyễn Đạt ff254acefd Update README.md 2021-10-29 18:33:32 +07:00
Nguyễn Đạt 02c765532f Update README.md 2021-10-29 14:21:35 +07:00
Nguyễn Đạt 33eac27884 Update Makefile 2021-10-29 07:17:41 +07:00
67 changed files with 758 additions and 145 deletions
+29
View File
@@ -0,0 +1,29 @@
---
name: Bug
about: Create a report to help us improve
title: "[Bug]"
labels: bug
assignees: ''
---
## ⚠️ Have you read the [FAQ](https://github.com/qnblackcat/uYouPlus/wiki/FAQ)? Make sure you visit the FAQ page first!!! ⚠️
### Device info
- iOS/iPadOS version:
- Device model:
- Sideload tool (Ex: AltStore, Sideloadly...)
- Version of uYouPlus:
### Describe the bug
### How to reproduce the bug
_(Please attach videos or screenshots if possible)_
### Crash log (if possible)
_(The crash log can be found in the Settings app - Privacy - Analytics & Improvements - Analytics Data - Youtube...)_
### Additional context:
+13
View File
@@ -0,0 +1,13 @@
---
name: Question/Help
about: Have questions? Need help?
title: "[Questions]"
labels: question
assignees: ''
---
## Have you read the FAQ? Make sure you visit the FAQ page before asking any question!!!
https://github.com/qnblackcat/uYouPlus/wiki/FAQ
###
+2
View File
@@ -2,3 +2,5 @@
.DS_Store
packages
obj
Tweaks/uYou/*
!Tweaks/uYou/.gitkeep
+32
View File
@@ -0,0 +1,32 @@
[submodule "Tweaks/iSponsorBlock"]
path = Tweaks/iSponsorBlock
url = https://github.com/qnblackcat/iSponsorBlock.git
branch = master
[submodule "Tweaks/YTUHD"]
path = Tweaks/YTUHD
url = https://github.com/PoomSmart/YTUHD.git
branch = master
[submodule "Tweaks/YouPiP"]
path = Tweaks/YouPiP
url = https://github.com/PoomSmart/YouPiP.git
branch = main
[submodule "Tweaks/Return-YouTube-Dislikes"]
path = Tweaks/Return-YouTube-Dislikes
url = https://github.com/PoomSmart/Return-YouTube-Dislikes.git
branch = main
[submodule "Tweaks/YouTubeHeader"]
path = Tweaks/YouTubeHeader
url = https://github.com/PoomSmart/YouTubeHeader.git
branch = main
[submodule "Tweaks/Alderis"]
path = Tweaks/Alderis
url = https://github.com/qnblackcat/Alderis.git
branch = master
[submodule "Tweaks/PSHeader"]
path = Tweaks/PSHeader
url = https://github.com/PoomSmart/PSHeader.git
branch = master
[submodule "Tweaks/YTSpeed"]
path = Tweaks/YTSpeed
url = https://github.com/qnblackcat/YTSpeed.git
branch = main
+16 -8
View File
@@ -1,22 +1,30 @@
uYouPlus_INJECT_DYLIBS = Tweaks/uYou.dylib Tweaks/libcolorpicker.dylib Tweaks/iSponsorBlock.dylib Tweaks/YTUHD.dylib Tweaks/YouPiP.dylib
uYouPlus_INJECT_DYLIBS = Tweaks/uYou/Library/MobileSubstrate/DynamicLibraries/uYou.dylib .theos/obj/libcolorpicker.dylib .theos/obj/iSponsorBlock.dylib .theos/obj/YTUHD.dylib .theos/obj/YouPiP.dylib .theos/obj/YouTubeDislikesReturn.dylib .theos/obj/YoutubeSpeed.dylib
uYouPlus_USE_FLEX = 0
ARCHS = arm64
MODULES = jailed
FINALPACKAGE = 1
CODESIGN_IPA = 0
TWEAK_NAME = uYouPlus
DISPLAY_NAME = YouTube
BUNDLE_ID = com.google.ios.youtube
uYouPlus_FILES = uYouPlus.x
uYouPlus_FRAMEWORKS = Alderis
uYouPlus_IPA = /Volumes/Data_Macintosh/Sideloads/IPAs/YouTube_16.41.2.ipa
uYouPlus_FILES = uYouPlus.xm
uYouPlus_IPA = /path/to/decrypted/YouTube/IPA
### Important: edit the path to your decrypted YouTube IPA!!!
include $(THEOS)/makefiles/common.mk
include $(THEOS_MAKE_PATH)/tweak.mk
SUBPROJECTS += Tweaks/Alderis Tweaks/iSponsorBlock Tweaks/YTUHD Tweaks/YouPiP Tweaks/Return-YouTube-Dislikes Tweaks/YTSpeed
include $(THEOS_MAKE_PATH)/aggregate.mk
before-package::
@tput setaf 4 && echo -e "==> \033[1mMoving tweak's bundle to Resources/...\033[0m"
@mkdir -p Resources/Frameworks/Alderis.framework && find .theos/obj/install/Library/Frameworks/Alderis.framework -maxdepth 1 -type f -exec cp {} Resources/Frameworks/Alderis.framework/ \;
@cp -R Tweaks/YouPiP/layout/Library/Application\ Support/YouPiP.bundle Resources/
@cp -R Tweaks/iSponsorBlock/layout/Library/Application\ Support/iSponsorBlock.bundle Resources/
@cp -R Tweaks/uYou/Library/Application\ Support/uYouBundle.bundle Resources/
@tput setaf 5 && echo -e "==> \033[1mChanging the installation path of dylibs...\033[0m"
@codesign --remove-signature .theos/obj/iSponsorBlock.dylib && install_name_tool -change /usr/lib/libcolorpicker.dylib @rpath/libcolorpicker.dylib .theos/obj/iSponsorBlock.dylib
@codesign --remove-signature .theos/obj/libcolorpicker.dylib && install_name_tool -change /Library/Frameworks/Alderis.framework/Alderis @rpath/Alderis.framework/Alderis .theos/obj/libcolorpicker.dylib
+80 -35
View File
@@ -6,92 +6,137 @@
* [Credits](#credits)
* [Features](#features)
* [Known issues](#known-issues)
* [Download (IPA)](#download-ipa)
* [Download](#download)
* [Installation](#installation)
* [Support the developers!](#support-the-developers)
* [FAQ](#faq)
* [Building (optional)](#building-optional)
* [FAQ](#FAQ)
# Credits
- [MiRO92](https://twitter.com/miro92?s=21) for [uYou](https://github.com/MiRO92/uYou-for-YouTube).
- [MiRO92](https://twitter.com/miro92) for [uYou](https://github.com/MiRO92/uYou-for-YouTube).
- [Galactic-Dev](https://github.com/Galactic-Dev) and [Luewii](https://github.com/Luewii) for [iSponsorBlock](https://github.com/Galactic-Dev/iSponsorBlock).
- [HASHBANG Productions](https://github.com/hbang) for [Alderis Color Picker](https://github.com/hbang/Alderis) - a dependency of iSponsorBlock.
- [PoomSmart](https://twitter.com/poomsmart?s=21) - the developer of many tweaks used by uYouPlus, include: [YouRememberCaption](https://www.ios-repo-updates.com/repository/poomsmart/package/com.ps.youremembercaption/), [YTClassicVideoQuality](https://poomsmart.github.io/repo/depictions/ytclassicvideoquality.html), [YTNoCheckLocalNetwork](https://poomsmart.github.io/repo/depictions/ytnochecklocalnetwork.html), [YTSystemAppearance](https://poomsmart.github.io/repo/depictions/ytsystemappearance.html), [YTUHD](https://poomsmart.github.io/repo/depictions/ytuhd.html) and [YouPiP](https://poomsmart.github.io/repo/depictions/youpip.html).
- [PoomSmart](https://twitter.com/poomsmart) - the developer of many tweaks used by uYouPlus, include: [YouRememberCaption](https://www.ios-repo-updates.com/repository/poomsmart/package/com.ps.youremembercaption/), [YTClassicVideoQuality](https://poomsmart.github.io/repo/depictions/ytclassicvideoquality.html), [YTNoCheckLocalNetwork](https://poomsmart.github.io/repo/depictions/ytnochecklocalnetwork.html), [YTSystemAppearance](https://poomsmart.github.io/repo/depictions/ytsystemappearance.html), [YTUHD](https://poomsmart.github.io/repo/depictions/ytuhd.html), [YouPiP](https://poomsmart.github.io/repo/depictions/youpip.html), and [Return YouTube Dislike](https://github.com/PoomSmart/Return-YouTube-Dislikes)
- [level3tjg](https://twitter.com/level3tjg?s=21) - for [YTNoHoverCards](https://github.com/level3tjg/YTNoHoverCards).
- [level3tjg](https://twitter.com/level3tjg) - for [YTNoHoverCards](https://github.com/level3tjg/YTNoHoverCards).
- [Al4ise](https://github.com/Al4ise) for [Azule](https://github.com/Al4ise/Azule), a tool used to inject jailbreak tweaks into jailed iOS apps.
- [Lyvendia](https://github.com/Lyvendia/) for [YTSpeed](https://github.com/Lyvendia/YTSpeed/)
- [theos team](https://github.com/theos/theos) for theos & theos-jailed.
# Features
1. **uYou:** uYou has a ton of features that I can't list them all. Visit his [here](https://miro92.com/repo/depictions/?p=com.miro.uyou) for more info!
1. **uYou:** uYou has a ton of features that I can't list them all. Visit [here](https://miro92.com/repo/depictions/?p=com.miro.uyou) for more info!
2. **iSponsorBlock:** Skips annoying sponsor ads inside videos. iSponsorBlock is based on [SponsorBlock engine](https://sponsor.ajay.app/). This is the iOS version of the SponsorBlock extension.
2. **iSponsorBlock:** Skips annoying sponsor ads inside videos. iSponsorBlock is based on [SponsorBlock engine](https://sponsor.ajay.app/). Basically, this is the iOS version of the SponsorBlock extension.
3. **YouRememberCaption**: make YouTube remember your video caption setting (if not already).
3. **YouPiP:** enable YouTube's **native PiP**. More options are in YouTube Settings - General.
4. **YTClassicVideoQuality:** since YouTube v16.xx, you need one more step to change the video quality. YTClassicVideoQuality brings back the old video quality selector, which is a lot better than the new one.
4. **YTUHD:** unlock VP9 codec and in effect, enables video quality of 2K and 4K. You can enable/disable YTUHD in YouTube Settings - Video quality preferences.
5. **YTNoCheckLocalNetwork**: block the Local Network permission popup.
<details>
<summary>And more...!</summary>
5. **YTClassicVideoQuality:** since YouTube v16.xx, you need one more step to change the video quality. YTClassicVideoQuality brings back the old video quality selector, which is a lot better than the new one.
6. **YTNoHoverCards:** offer an option to enable/disable the annoying suggested videos show up at the end of the videos.
7. **YTSystemAppearance**: sync the YouTube theme (dark/light) with the system theme.
8. **YTUHD:** unlock VP9 codec and in effect, enables video quality of 2K and 4K. You can enable/disable YTUHD in YouTube Settings => Video quality preferences.
8. **YTNoCheckLocalNetwork**: block the Local Network permission popup.
9. **YouPiP:** enable YouTube's **native PiP**. More options are in YouTube Settings => General.
9. **YouRememberCaption**: make YouTube remember your video caption setting (if not already).
10. **YTSpeed**: add 2.25, 2.5, 2.75, and 3x playback speed
</details>
# Known issues
1. **uYou**: all known-issues of uYou are listed [here](https://github.com/MiRO92/uYou-for-YouTube/issues). Make sure you take a look at it before reporting any bugs! ***Also, keep in mind that uYou+ is a modified version of uYou, DO NOT bother MiRO92 with problems unrelated to uYou!!!***
- **uYou**: all known-issues of uYou are listed [here](https://github.com/MiRO92/uYou-for-YouTube/issues). Make sure you take a look at it before reporting any bugs! ***Also, keep in mind that uYou+ is a modified version of uYou, DO NOT bother MiRO92 with problems unrelated to uYou!!!***
3. **iSponsorBlock**: the modified time doesn't show up in the seek bar.
3. **YTUHD**: Stuttering on 4K videos (sometimes).
4. **YouPiP** (iOS 14.0 - 14.4.2): due to Apple's fault, you may encounter the *speedup-bug* as described [here](https://drive.google.com/file/d/1NKdv1fr_KRWgD8nhkMDfG2eLBnbdeVtX/view?usp=sharing). The bug also happens when you try to play multi-sources of sound at the same time. Enable **Legacy PiP** is a workaround. Note that Legacy PiP removes UHD quality and breaks the default video quality feature of uYou. Use it at your own risk.
5. **Not a bug**:
> - The app won't be able to receive push notifications if you use a free developer account to sideload it.
>
> - appdb PRO users: follow [**this guide**](https://www.reddit.com/r/sideloaded/comments/pub39h/guide_how_to_fix_uyouuyou_download_not_working/) to fix uYou download not working.
>
> - It's impossible to fix deep-link (a.k.a Open in the YouTube app). However, you can use this [Shortcuts](https://shortcutsgallery.com/shortcuts/open-in-youtube/) as a workaround (tested on iOS 14). **Credit:** RandomAccessMemories#5025
- Issues that related to **uYouPlus** are [here](https://github.com/qnblackcat/uYouPlus/issues/)
# Download (IPA) & Install
# Download
- **uYouPlus** (or you can call it uYou+) requires iOS & iPadOS 13.0 and later. The latest version of **uYouPlus** can be found in the [Release tab](https://github.com/qnblackcat/uYouPlus/releases).
- **uYouPlus** (or you can call it uYou+) requires iOS & iPadOS 13.0 or later. The latest version of **uYouPlus** can be found in the [Release tab](https://github.com/qnblackcat/uYouPlus/releases).
- Version info: _(last update: Oct 28)_
- For AltStore user:
- My official AtlStore repo: https://qnblackcat.github.io/AltStore/
- [Open in AltStore (v17.14.2-2.1)](https://tinyurl.com/2a9ybxvu) - It will take a while to install because AltStore needs to download the IPA.
- Version info: _(last update: Apr 13)_
<details>
<summary> Expand</summary>
| **Tweaks/App** | **Version** | **Open source** |
| :------------: | :----------:| :-------------: |
| **YouTube** | 16.42.3 | ✖︎ |
| **YouTube** | 17.14.2 | ✖︎ |
| **uYou** | 2.1 | ✖︎ |
| **iSponsorBlock** | 1.0-10 | [✔︎](https://github.com/Galactic-Dev/iSponsorBlock) |
| **Return YouTube Dislike** | 1.6.4 | [✔︎](https://github.com/PoomSmart/Return-YouTube-Dislikes) |
| **iSponsorBlock** | 1.0-14 | [✔︎](https://github.com/Galactic-Dev/iSponsorBlock) |
| **Alderis Color Picker** | 1.1.2| [✔︎](https://github.com/hbang/Alderis) |
| **YouRememberCaption** | 1.0.0 | [✔︎](https://www.ios-repo-updates.com/repository/poomsmart/package/com.ps.youremembercaption/) |
| **YTClassicVideoQuality** | 1.0.1 | [✔︎](https://github.com/PoomSmart/YTClassicVideoQuality) |
| **YTNoCheckLocalNetwork** | 1.0.2 | [✔︎](https://poomsmart.github.io/repo/depictions/ytnochecklocalnetwork.html) |
| **YTNoHoverCards** | 0.0.3 | [✔︎](https://github.com/level3tjg/YTNoHoverCards) |
| **YTSystemAppearance** | 1.0.0 | [✔︎](https://poomsmart.github.io/repo/depictions/ytsystemappearance.html) |
| **YTUHD** | 1.2.5 | [✔︎](https://github.com/PoomSmart/YTUHD) |
| **YouPiP** | 1.5.14 | [✔︎](https://github.com/PoomSmart/YouPiP) |
| **YTUHD** | 1.2.6 | [✔︎](https://github.com/PoomSmart/YTUHD) |
| **YouPiP** | 1.6.9 | [✔︎](https://github.com/PoomSmart/YouPiP) |
|**YTSpeed**| 1.0.1 | [✔︎](https://github.com/Lyvendia/YTSpeed.git) |
</details>
# Building (optional)
# Installation
See [Installation - Wiki](https://github.com/qnblackcat/uYouPlus/wiki/Installation)
See [Building - Wiki](https://github.com/qnblackcat/uYouPlus/wiki/Building).
# Support the developers
<details>
<summary>MiRO92</summary>
- CashApp: https://cash.app/$MiRO92M
- Other payment methods are available in uYou's settings.
</details>
<details>
<summary>Poomsmart</summary>
- Paypal: https://poomsmart.github.io/
</details>
<details>
<summary>Galactic-dev</summary>
- Paypal: https://www.paypal.com/paypalme/DBrett684
- Venmo: https://venmo.com/u/DavidBrett
</details>
<details>
<summary>Lillie</summary>
- Patreon: https://patreon.com/lillieweeb
</details>
# FAQ
See [FAQ - Wiki](https://github.com/qnblackcat/uYouPlus/wiki/FAQ).
# Building (optional)
See [Building - Wiki](https://github.com/qnblackcat/uYouPlus/wiki/Building).
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 397 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 506 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 621 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

@@ -1 +0,0 @@
{"v":"5.7.1","fr":25,"ip":0,"op":26,"w":24,"h":24,"nm":"folder_download","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"Null 1","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.31,"y":1},"o":{"x":0.69,"y":0},"t":0,"s":[16.41,15.3,0],"to":[0,0.617,0],"ti":[0,-0.617,0]},{"t":25,"s":[16.41,19,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.47,0.47,0.47],"y":[1,1,1]},"o":{"x":[0.53,0.53,0.53],"y":[0,0,0]},"t":12,"s":[6,6,100]},{"t":25,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":0,"op":324,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 1","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0.614,-145.97,0],"ix":2},"a":{"a":0,"k":[102.114,-19.97,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.47,0.47,0.47],"y":[1,1,1]},"o":{"x":[0.53,0.53,0.53],"y":[0,0,0]},"t":0,"s":[0,0,100]},{"t":12,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[250,268.441],[305.322,268.441],[305.322,194.678],[342.203,194.678],[342.203,268.441],[397.525,268.441],[323.762,342.203]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-221.648,-214.648],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":324,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"folder_download Outlines 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[12,12,0],"ix":2},"a":{"a":0,"k":[12,12,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,-1.1],[0,0],[0,0],[1.1,0],[0,0],[0,0],[0,1.1],[0,0],[0,0],[-1.1,0],[0,0]],"o":[[0,0],[0,0],[1.1,0],[0,0],[0,0],[0,1.1],[0,0],[0,0],[-1.1,0],[0,0],[0,0],[0,-1.1],[0,0],[0,0]],"v":[[-2,-8],[0,-6],[8,-6],[10,-4],[10,-4],[10,6],[8,8],[8,8],[-8,8],[-10,6],[-10,6],[-9.99,-6],[-8,-8],[-8,-8]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"tr","p":{"a":0,"k":[12,12],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.9215686274509803,0.2823529411764706,0.3254901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":324,"st":0,"bm":0}],"markers":[]}
File diff suppressed because one or more lines are too long
Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

File diff suppressed because one or more lines are too long
Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

File diff suppressed because one or more lines are too long
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

+1
Submodule Tweaks/Alderis added at f8b577ebf7
+1
Submodule Tweaks/PSHeader added at 7f13c9adf9
+1
Submodule Tweaks/YTSpeed added at 7c11d9c916
Submodule
+1
Submodule Tweaks/YTUHD added at ea6d7eb8bc
Binary file not shown.
Submodule
+1
Submodule Tweaks/YouPiP added at 23fc13e5e2
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
View File
Executable
+37
View File
@@ -0,0 +1,37 @@
#!/bin/bash
# Thanks Al4ise for his support
cd "$(dirname "$0")"
# Check uYou
if [[ ! -f Tweaks/uYou/com.miro.uyou_2.1_iphoneos-arm.deb ]]
then
echo -e "==> \033[1muYou v2.1 is not found. Downloading uYou (v2.1)...\033[0m"
(set -x ; curl https://miro92.com/repo/debs/com.miro.uyou_2.1_iphoneos-arm.deb --output Tweaks/uYou/com.miro.uyou_2.1_iphoneos-arm.deb)
else
echo -e "==> \033[1mFounded uYou (v2.1)!\033[0m"
fi
# Extract uYou
echo -e "==> \033[1mExtracting uYou...\033[0m"
if (cd Tweaks/uYou && tar -xf com.miro.uyou_2.1_iphoneos-arm.deb && tar -xf data.tar.*)
then
echo -e "\033[1m> Extracted uYou!\033[0m"
else
echo "> \033[1mCouldn't extract uYou\033[0m"
fi
# Makefile
read -e -p "==> Path to the decrypted YouTube iPA: " PATHTOIPA
if [[ $PATHTOIPA == *.ipa ]]
then
sed -i '' "14s#.*#uYouPlus_IPA = $PATHTOIPA#g" ./Makefile
make package
open ./packages
else
echo "This is not an iPA"
fi
# Clean up
tput setaf 1 && echo -e "==> \033[1mCleaning up...\033[0m"
find Tweaks/uYou -mindepth 1 ! -name "com.miro.uyou_2.1_iphoneos-arm.deb" ! -name ".gitkeep" -exec rm -rf {} \; 2>/dev/null
rm -rf Resources .theos/_/Payload
-92
View File
@@ -1,92 +0,0 @@
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
// YouRememberCaption: https://www.ios-repo-updates.com/repository/poomsmart/package/com.ps.youremembercaption/
%hook YTColdConfig
- (BOOL)respectDeviceCaptionSetting {
return NO;
}
%end
// YTClassicVideoQuality: https://github.com/PoomSmart/YTClassicVideoQuality
@interface YTVideoQualitySwitchOriginalController : NSObject
- (instancetype)initWithParentResponder:(id)responder;
@end
%hook YTVideoQualitySwitchControllerFactory
- (id)videoQualitySwitchControllerWithParentResponder:(id)responder {
Class originalClass = %c(YTVideoQualitySwitchOriginalController);
return originalClass ? [[originalClass alloc] initWithParentResponder:responder] : %orig;
}
%end
// YTNoCheckLocalNetwork: https://poomsmart.github.io/repo/depictions/ytnochecklocalnetwork.html
%hook YTHotConfig
- (BOOL)isPromptForLocalNetworkPermissionsEnabled {
return NO;
}
%end
// YTNoHoverCards: https://github.com/level3tjg/YTNoHoverCards
@interface YTCollectionViewCell : UICollectionViewCell
@end
@interface YTSettingsCell : YTCollectionViewCell
@end
@interface YTSettingsSectionItem : NSObject
@property BOOL hasSwitch;
@property BOOL switchVisible;
@property BOOL on;
@property BOOL (^switchBlock)(YTSettingsCell *, BOOL);
@property int settingItemId;
- (instancetype)initWithTitle:(NSString *)title titleDescription:(NSString *)titleDescription;
@end
%hook YTSettingsViewController
- (void)setSectionItems:(NSMutableArray <YTSettingsSectionItem *>*)sectionItems forCategory:(NSInteger)category title:(NSString *)title titleDescription:(NSString *)titleDescription headerHidden:(BOOL)headerHidden {
if (category == 1) {
NSInteger appropriateIdx = [sectionItems indexOfObjectPassingTest:^BOOL(YTSettingsSectionItem *item, NSUInteger idx, BOOL *stop) {
return item.settingItemId == 294;
}];
if (appropriateIdx != NSNotFound) {
YTSettingsSectionItem *hoverCardItem = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"Show End screens hover cards" titleDescription:@"Allows creator End screens (thumbnails) to appear at the end of videos"];
hoverCardItem.hasSwitch = YES;
hoverCardItem.switchVisible = YES;
hoverCardItem.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"hover_cards_enabled"];
hoverCardItem.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"hover_cards_enabled"];
return YES;
};
[sectionItems insertObject:hoverCardItem atIndex:appropriateIdx + 1];
}
}
%orig;
}
%end
%hook YTCreatorEndscreenView
- (void)setHidden:(BOOL)hidden {
if (![[NSUserDefaults standardUserDefaults] boolForKey:@"hover_cards_enabled"])
hidden = YES;
%orig;
}
%end
// YTSystemAppearance: https://poomsmart.github.io/repo/depictions/ytsystemappearance.html
%hook YTColdConfig
- (BOOL)shouldUseAppThemeSetting {
return YES;
}
%end
+541
View File
@@ -0,0 +1,541 @@
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import <objc/runtime.h>
#import "Tweaks/YouTubeHeader/YTVideoQualitySwitchOriginalController.h"
#import "Tweaks/YouTubeHeader/YTSettingsSectionItem.h"
#import "Tweaks/YouTubeHeader/YTPlayerViewController.h"
#import "Tweaks/YouTubeHeader/YTWatchController.h"
#import "Tweaks/YouTubeHeader/YTIGuideResponse.h"
#import "Tweaks/YouTubeHeader/YTIGuideResponseSupportedRenderers.h"
#import "Tweaks/YouTubeHeader/YTIPivotBarSupportedRenderers.h"
#import "Tweaks/YouTubeHeader/YTIPivotBarRenderer.h"
#import "Tweaks/YouTubeHeader/YTIBrowseRequest.h"
#include <RemoteLog.h>
@interface YTMainAppVideoPlayerOverlayView : UIView
-(UIViewController *)_viewControllerForAncestor;
@end
@interface YTWatchMiniBarView : UIView
@end
@interface YTAsyncCollectionView : UIView
@end
@interface YTPlayerViewController (YTAFS)
- (void)autoFullscreen;
@end
UIColor* oledColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0];
BOOL hideHUD() {
return [[NSUserDefaults standardUserDefaults] boolForKey:@"hideHUD_enabled"];
}
BOOL oled() {
return [[NSUserDefaults standardUserDefaults] boolForKey:@"oled_enabled"];
}
BOOL autoFullScreen() {
return [[NSUserDefaults standardUserDefaults] boolForKey:@"autofull_enabled"];
}
BOOL noHoverCard() {
return [[NSUserDefaults standardUserDefaults] boolForKey:@"hover_cards_enabled"];
}
BOOL ReExplore() {
return [[NSUserDefaults standardUserDefaults] boolForKey:@"reExplore_enabled"];
}
BOOL bigYTMiniPlayer() {
return [[NSUserDefaults standardUserDefaults] boolForKey:@"bigYTMiniPlayer_enabled"];
}
//Settings
%hook YTSettingsViewController
- (void)setSectionItems:(NSMutableArray <YTSettingsSectionItem *>*)sectionItems forCategory:(NSInteger)category title:(NSString *)title titleDescription:(NSString *)titleDescription headerHidden:(BOOL)headerHidden {
if (category == 1) {
NSUInteger statsForNerdsIndex = [sectionItems indexOfObjectPassingTest:^BOOL (YTSettingsSectionItem *item, NSUInteger idx, BOOL *stop) {
return item.settingItemId == 265;
}];
if (statsForNerdsIndex != NSNotFound) {
//
YTSettingsSectionItem *hoverCardItem = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"Show End screens hover cards (YTNoHoverCards)" titleDescription:@"Allows creator End screens (thumbnails) to appear at the end of videos."];
hoverCardItem.hasSwitch = YES;
hoverCardItem.switchVisible = YES;
hoverCardItem.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"hover_cards_enabled"];
hoverCardItem.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"hover_cards_enabled"];
return YES;
};
[sectionItems insertObject:hoverCardItem atIndex:statsForNerdsIndex + 2];
//
YTSettingsSectionItem *Oleditem = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"OLED Dark mode (Experimental)" titleDescription:@"WARNING: You must set YouTube's appearance to Dark theme before enabling OLED dark mode (not tested on iPad yet). App restart is required."];
Oleditem.hasSwitch = YES;
Oleditem.switchVisible = YES;
Oleditem.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"oled_enabled"];
Oleditem.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"oled_enabled"];
return YES;
};
[sectionItems insertObject:Oleditem atIndex:statsForNerdsIndex - 11];
//
YTSettingsSectionItem *autoFUll = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"Auto Full Screen (YTAutoFullScreen)" titleDescription:@"Autoplay videos at full screen."];
autoFUll.hasSwitch = YES;
autoFUll.switchVisible = YES;
autoFUll.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"autofull_enabled"];
autoFUll.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"autofull_enabled"];
return YES;
};
[sectionItems insertObject:autoFUll atIndex:statsForNerdsIndex + 2];
//
YTSettingsSectionItem *hideHUD = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"Hide HUD Messages" titleDescription:@"Example: CC is turned on/off, Video loop is on,... App restart is required."];
hideHUD.hasSwitch = YES;
hideHUD.switchVisible = YES;
hideHUD.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"hideHUD_enabled"];
hideHUD.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"hideHUD_enabled"];
return YES;
};
[sectionItems insertObject:hideHUD atIndex:statsForNerdsIndex + 2];
//
YTSettingsSectionItem *reExplore = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"Replace Shorts tab with Explore tab (YTReExplore)" titleDescription:@"App restart is required."];
reExplore.hasSwitch = YES;
reExplore.switchVisible = YES;
reExplore.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"reExplore_enabled"];
reExplore.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"reExplore_enabled"];
return YES;
};
[sectionItems insertObject:reExplore atIndex:statsForNerdsIndex + 4];
//
YTSettingsSectionItem *bigYTMiniPlayer = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"Bigger miniplayer bar (BigYTMiniPlayer)" titleDescription:@"App restart is required."];
bigYTMiniPlayer.hasSwitch = YES;
bigYTMiniPlayer.switchVisible = YES;
bigYTMiniPlayer.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"bigYTMiniPlayer_enabled"];
bigYTMiniPlayer.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"bigYTMiniPlayer_enabled"];
return YES;
};
[sectionItems insertObject:bigYTMiniPlayer atIndex:statsForNerdsIndex + 4];
}
}
%orig;
}
%end
// Hide HUD Messages
%hook YTHUDMessageView
- (id)initWithMessage:(id)arg1 dismissHandler:(id)arg2 {
if (hideHUD()) {
return NULL;
}
else
return %orig;
}
%end
// YTAutoFullScreen: https://github.com/PoomSmart/YTAutoFullScreen/
%hook YTPlayerViewController
- (void)loadWithPlayerTransition:(id)arg1 playbackConfig:(id)arg2 {
if (autoFullScreen()) {
%orig;
[NSTimer scheduledTimerWithTimeInterval:0.75 target:self selector:@selector(autoFullscreen) userInfo:nil repeats:NO];
} else { return %orig; }
}
%new
- (void)autoFullscreen {
YTWatchController *watchController = [self valueForKey:@"_UIDelegate"];
[watchController showFullScreen];
}
%end
// YTNoHoverCards: https://github.com/level3tjg/YTNoHoverCards
%hook YTCreatorEndscreenView
- (void)setHidden:(BOOL)hidden {
if (!noHoverCard())
hidden = YES;
%orig;
}
%end
// Workaround for https://github.com/MiRO92/uYou-for-YouTube/issues/12
%hook YTAdsInnerTubeContextDecorator
- (void)decorateContext:(id)arg1 { %orig(nil); }
%end
// YTClassicVideoQuality: https://github.com/PoomSmart/YTClassicVideoQuality
%hook YTVideoQualitySwitchControllerFactory
- (id)videoQualitySwitchControllerWithParentResponder:(id)responder {
Class originalClass = %c(YTVideoQualitySwitchOriginalController);
return originalClass ? [[originalClass alloc] initWithParentResponder:responder] : %orig;
}
%end
// YTNoCheckLocalNetwork: https://poomsmart.github.io/repo/depictions/ytnochecklocalnetwork.html
%hook YTHotConfig
- (BOOL)isPromptForLocalNetworkPermissionsEnabled { return NO; }
%end
// YTSystemAppearance: https://poomsmart.github.io/repo/depictions/ytsystemappearance.html
// YouRememberCaption: https://poomsmart.github.io/repo/depictions/youremembercaption.html
%hook YTColdConfig
- (BOOL)shouldUseAppThemeSetting { return YES; }
- (BOOL)respectDeviceCaptionSetting { return NO; }
%end
// OLED
// Thanks u/DGh0st for his very well explained comment - https://www.reddit.com/r/jailbreakdevelopers/comments/9uape7/comment/e94sq80/
// Thanks sinfool for his flex patch which brings OLED Dark mode for YouTube - "Color Customizer (YouTube) OLED"
%group gOLED
%hook UIView
-(void)setBackgroundColor:(id)arg1 {
if ([self.nextResponder isKindOfClass:%c(DownloadedVC)]) //uYou
arg1 = oledColor;
if ([self.nextResponder isKindOfClass:%c(DownloadsPagerVC)]) //uYou
arg1 = oledColor;
if ([self.nextResponder isKindOfClass:%c(YTLinkCell)])
arg1 = oledColor;
if ([self.nextResponder isKindOfClass:%c(YTCommentsHeaderView)])
arg1 = oledColor;
if ([self.nextResponder isKindOfClass:%c(YTSearchView)])
arg1 = oledColor;
if ([self.nextResponder isKindOfClass:%c(YTSearchBoxView)])
arg1 = oledColor;
if ([self.nextResponder isKindOfClass:%c(YTEngagementPanelHeaderView)])
arg1 = oledColor;
if ([self.nextResponder isKindOfClass:%c(YTEngagementPanelView)])
arg1 = oledColor;
if ([self.nextResponder isKindOfClass:%c(YTPivotBarView)])
arg1 = oledColor;
if ([self.nextResponder isKindOfClass:%c(YTHUDMessageView)])
arg1 = oledColor;
if ([self.nextResponder isKindOfClass:%c(YTChipCloudCell)])
arg1 = oledColor;
if ([self.nextResponder isKindOfClass:%c(YCHLiveChatTextCell)])
arg1 = oledColor;
if ([self.nextResponder isKindOfClass:%c(YCHLiveChatViewerEngagementCell)])
arg1 = oledColor;
if ([self.nextResponder isKindOfClass:%c(YTSlideForActionsView)])
arg1 = oledColor;
if ([self.nextResponder isKindOfClass:%c(YTPlaylistHeaderView)])
arg1 = oledColor;
if ([self.nextResponder isKindOfClass:%c(YTAsyncCollectionView)])
arg1 = oledColor;
if ([self.nextResponder isKindOfClass:%c(YTFeedHeaderView)])
arg1 = oledColor;
if ([self.nextResponder isKindOfClass:%c(YTMessageCell)])
arg1 = oledColor;
if ([self.nextResponder isKindOfClass:%c(YTPlaylistPanelProminentThumbnailVideoCell)])
arg1 = oledColor;
if ([self.nextResponder isKindOfClass:%c(ASWAppSwitcherCollectionViewCell)])
arg1 = oledColor;
%orig;
}
%end
%hook YTAsyncCollectionView
-(void)setBackgroundColor:(id)arg1 {
if([self.nextResponder isKindOfClass:%c(YTRelatedVideosCollectionViewController)]) {
arg1 = [oledColor colorWithAlphaComponent:0.0];
} else if([self.nextResponder isKindOfClass:%c(YTFullscreenMetadataHighlightsCollectionViewController)]) {
arg1 = [oledColor colorWithAlphaComponent:0.0];
} else {
arg1 = oledColor;
%orig;
}
}
%end
%hook YTTopAlignedView // Example from Dune - https://github.com/Skittyblock/Dune/blob/9b1df9790230115b7553cc9dbadf36889018d7f9/Tweak.xm#L700
-(void)layoutSubviews {
%orig;
MSHookIvar<UIView *>(self, "_contentView").backgroundColor = oledColor;
}
%end
%hook MDXQueueView // Cast queue
-(void)setBackgroundColor:(id)arg1 {
arg1 = oledColor;
%orig;
}
%end
%hook YTChannelProfileEditorView
-(void)setBackgroundColor:(id)arg1 {
arg1 = oledColor;
%orig;
}
%end
%hook YTChannelSubMenuView //
-(void)setBackgroundColor:(id)arg1 {
arg1 = oledColor;
%orig;
}
%end
%hook YTChannelListSubMenuView // sub -
-(void)setBackgroundColor:(id)arg1 {
arg1 = oledColor;
%orig;
}
%end
%hook YTCommentView
-(void)setBackgroundColor:(id)arg1 {
arg1 = oledColor;
%orig;
}
%end
%hook YTCreateCommentAccessoryView
-(void)setBackgroundColor:(id)arg1 {
arg1 = oledColor;
%orig;
}
%end
%hook YTCreateCommentTextView
-(void)setBackgroundColor:(id)arg1 {
arg1 = oledColor;
%orig;
}
%end
%hook YCHLiveChatActionPanelView
-(void)setBackgroundColor:(id)arg1 {
arg1 = oledColor;
%orig;
}
%end
%hook YTEmojiTextView
-(void)setBackgroundColor:(id)arg1 {
arg1 = oledColor;
%orig;
}
%end
%hook YTShareTitleView // Share sheet
-(void)setBackgroundColor:(id)arg1 {
arg1 = oledColor;
%orig;
}
%end
%hook YTNavigationBar
-(void)setBackgroundColor:(id)arg1 {
arg1 = oledColor;
%orig;
}
-(void)setBarTintColor:(id)arg1 {
arg1 = oledColor;
%orig;
}
%end
%hook YTPrivacyTosFooterView
-(void)setBackgroundColor:(id)arg1 {
arg1 = oledColor;
%orig;
}
%end
%hook YTWatchMiniBarView
-(void)setBackgroundColor:(id)arg1 {
arg1 = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.9];
%orig;
}
%end
%hook YTPlaylistMiniBarView
-(void)setBackgroundColor:(id)arg1 {
arg1 = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.9];
%orig;
}
%end
%hook YTEngagementPanelHeaderView
-(void)setBackgroundColor:(id)arg1 {
arg1 = oledColor;
%orig;
}
%end
%hook YTChannelMobileHeaderView
-(void)setBackgroundColor:(id)arg1 {
arg1 = oledColor;
%orig;
}
%end
%hook YTInlineSignInView
-(void)setBackgroundColor:(id)arg1 {
arg1 = oledColor;
%orig;
}
%end
%hook YTHeaderView //Stt bar
-(void)setBackgroundColor:(id)arg1 {
arg1 = oledColor;
%orig;
}
%end
%hook YTTabTitlesView // Tab bar - mychannel
-(void)setBackgroundColor:(id)arg1 {
arg1 = oledColor;
%orig;
}
%end
%hook YTSettingsCell // Settings
-(void)setBackgroundColor:(id)arg1 {
arg1 = oledColor;
%orig;
}
%end
%hook GOODialogView // 3 dots menu
-(void)setBackgroundColor:(id)arg1 {
arg1 = oledColor;
%orig;
}
%end
%hook YTCollectionView //sharesheet
-(void)setBackgroundColor:(id)arg1 {
arg1 = oledColor;
%orig;
}
%end
%hook ASWAppSwitchingSheetHeaderView
-(void)setBackgroundColor:(id)arg1 {
arg1 = oledColor;
%orig;
}
%end
%hook ASWAppSwitchingSheetFooterView
-(void)setBackgroundColor:(id)arg1 {
arg1 = oledColor;
%orig;
}
%end
%hook YTCollectionSeparatorView
-(void)setBackgroundColor:(id)arg1 {
arg1 = oledColor;
%orig;
}
- (void)layoutSubviews {}
%end
%hook YTSearchSuggestionCollectionViewCell
-(void)updateColors {}
%end
%hook UISearchBarBackground
-(void)setBarTintColor:(id)arg1 {
arg1 = oledColor;
%orig;
}
%end
/*
%hook YTChannelProfileDescriptionEditorView // edit profile Description
-(void)setBackgroundColor:(id)arg1 {
arg1 = oledColor;
%orig;
}
%end
%hook YTChannelProfileNameEditorView // edit profile Name
-(void)setBackgroundColor:(id)arg1 {
arg1 = oledColor;
%orig;
}
%end
hook GOOTextField
-(void)setBackgroundColor:(id)arg1 { // edit profile Description
arg1 = oledColor;
%orig;
}
%end
%hook GOOMultilineTextField//
-(void)setBackgroundColor:(id)arg1 { // edit profile Name
arg1 = oledColor;
%orig;
}
%end
*/
%end
// YTReExplore: https://github.com/PoomSmart/YTReExplore/
%group gReExplore
static void replaceTab(YTIGuideResponse *response) {
NSMutableArray <YTIGuideResponseSupportedRenderers *> *renderers = [response itemsArray];
for (YTIGuideResponseSupportedRenderers *guideRenderers in renderers) {
YTIPivotBarRenderer *pivotBarRenderer = [guideRenderers pivotBarRenderer];
NSMutableArray <YTIPivotBarSupportedRenderers *> *items = [pivotBarRenderer itemsArray];
NSUInteger shortIndex = [items indexOfObjectPassingTest:^BOOL(YTIPivotBarSupportedRenderers *renderers, NSUInteger idx, BOOL *stop) {
return [[[renderers pivotBarItemRenderer] pivotIdentifier] isEqualToString:@"FEshorts"];
}];
if (shortIndex != NSNotFound) {
[items removeObjectAtIndex:shortIndex];
NSUInteger exploreIndex = [items indexOfObjectPassingTest:^BOOL(YTIPivotBarSupportedRenderers *renderers, NSUInteger idx, BOOL *stop) {
return [[[renderers pivotBarItemRenderer] pivotIdentifier] isEqualToString:[%c(YTIBrowseRequest) browseIDForExploreTab]];
}];
if (exploreIndex == NSNotFound) {
YTIPivotBarSupportedRenderers *exploreTab = [%c(YTIPivotBarRenderer) pivotSupportedRenderersWithBrowseId:[%c(YTIBrowseRequest) browseIDForExploreTab] title:@"Explore" iconType:292];
[items insertObject:exploreTab atIndex:1];
}
}
}
}
%hook YTGuideServiceCoordinator
- (void)handleResponse:(YTIGuideResponse *)response withCompletion:(id)completion {
replaceTab(response);
%orig(response, completion);
}
- (void)handleResponse:(YTIGuideResponse *)response error:(id)error completion:(id)completion {
replaceTab(response);
%orig(response, error, completion);
}
%end
%end
// BigYTMiniPlayer: https://github.com/Galactic-Dev/BigYTMiniPlayer
%group Main
%hook YTWatchMiniBarView
-(void)setWatchMiniPlayerLayout:(int)arg1 {
%orig(1);
}
-(int)watchMiniPlayerLayout {
return 1;
}
-(void)layoutSubviews {
%orig;
self.frame = CGRectMake(([UIScreen mainScreen].bounds.size.width - self.frame.size.width), self.frame.origin.y, self.frame.size.width, self.frame.size.height);
}
%end
%hook YTMainAppVideoPlayerOverlayView
-(BOOL)isUserInteractionEnabled {
if([[self _viewControllerForAncestor].parentViewController.parentViewController isKindOfClass:%c(YTWatchMiniBarViewController)]) {
return NO;
}
return %orig;
}
%end
%end
%ctor {
%init;
if (oled()) {
%init(gOLED);
}
if (ReExplore()) {
%init(gReExplore)
}
if (bigYTMiniPlayer() && (UIDevice.currentDevice.userInterfaceIdiom != UIUserInterfaceIdiomPad)) {
%init(Main)
}
}