mirror of
https://github.com/YTLitePlus/YTLitePlus.git
synced 2026-03-11 13:05:33 +00:00
Update build workflow: bump actions, SDK 18.6, simplify paths, swap extension repo (#700)
* Dynamic versioning, remove duplicate features, fix build references
- Replace hardcoded YTLITE_VERSION=5.0.1 with dynamic GitHub API fetch in Makefile
- Add fallback error if API fetch fails in Makefile
- Update buildapp.yml to use dynamic version fetching with jq
- Replace all hardcoded 5.0.1 references with env vars in buildapp.yml
- Add jq to workflow dependencies
- Remove duplicate tweaks from INJECT_DYLIBS and SUBPROJECTS (iSponsorBlock,
YTHoldForSpeed, YouLoop, YouMute, YouQuality, YouSpeed)
- Remove git submodules for removed tweaks
- Remove SponsorBlock button hiding code from YTLitePlus.xm
- Remove iSponsorBlock first-run setup from YTLitePlus.xm
- Remove SponsorBlockSettingsController/ViewController hooks from Themes.xm
- Remove hideSponsorBlockButton setting from Settings.xm
- Update iSponsorBlock text references in Settings.xm
- Remove SponsorBlock class declarations from YTLitePlus.h
- Remove duplicate overlay keys from SettingsKeys.h
Co-authored-by: Balackburn <93828569+Balackburn@users.noreply.github.com>
* All changes verified and complete
Co-authored-by: Balackburn <93828569+Balackburn@users.noreply.github.com>
* Remove accidentally committed codeql artifact, add to .gitignore
Co-authored-by: Balackburn <93828569+Balackburn@users.noreply.github.com>
* Update build workflow and remove duplicate features from README
Workflow changes:
- Bump actions/cache from v4.2.0 to v5.0.2
- Bump actions/checkout from v4.2.2 to v6.0.1
- Bump softprops/action-gh-release from v2 to v2.5.0
- Update theos ref to latest commit (13c2237)
- Add THEOS env to Fix Compiling step
- Update default SDK version from 17.5 to 18.6
- Change SDK repo from aricloverALT to aricloverEXTRA
- Remove Checkout Main step (not needed for building)
- Remove unnecessary ${{ github.workspace }} paths
- Change YouTube extension repo from CokePokes to BillyCurtis
Other changes:
- Update Makefile default SDK references to 18.6
- Update .gitmodules Extensions URL
- Remove duplicate features from README (YouMute, iSponsorBlock,
YTSpeed, YTHoldForSpeed, YouQuality) and fix numbering
Co-authored-by: Balackburn <93828569+Balackburn@users.noreply.github.com>
* Add back repo checkout step without path prefix
The checkout step is still needed to get the source code,
but without path: main so it checks out to workspace root.
This is consistent with the removal of all main/ path prefixes.
Co-authored-by: Balackburn <93828569+Balackburn@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Balackburn <93828569+Balackburn@users.noreply.github.com>
This commit is contained in:
parent
b4380d602a
commit
4087630525
16 changed files with 69 additions and 139 deletions
79
.github/workflows/buildapp.yml
vendored
79
.github/workflows/buildapp.yml
vendored
|
|
@ -8,7 +8,7 @@ on:
|
|||
inputs:
|
||||
sdk_version:
|
||||
description: "iOS SDK Version"
|
||||
default: "17.5"
|
||||
default: "18.6"
|
||||
required: true
|
||||
type: string
|
||||
decrypted_youtube_url:
|
||||
|
|
@ -59,27 +59,26 @@ jobs:
|
|||
contents: write
|
||||
|
||||
steps:
|
||||
- name: Checkout Main
|
||||
uses: actions/checkout@v4.2.2
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6.0.1
|
||||
with:
|
||||
path: main
|
||||
ref: ${{ github.event.inputs.commit_id || github.ref }}
|
||||
submodules: recursive
|
||||
|
||||
- name: Install Dependencies
|
||||
run: brew install ldid dpkg make
|
||||
run: brew install ldid dpkg make jq
|
||||
|
||||
- name: Download Theos
|
||||
uses: actions/checkout@v4.2.2
|
||||
uses: actions/checkout@v6.0.1
|
||||
with:
|
||||
repository: theos/theos
|
||||
ref: master
|
||||
ref: 13c22376b5d83ff759c1993de0a861e673aa522b
|
||||
path: theos
|
||||
submodules: recursive
|
||||
|
||||
- name: iOS SDK Caching
|
||||
id: SDK
|
||||
uses: actions/cache@v4.2.0
|
||||
uses: actions/cache@v5.0.2
|
||||
env:
|
||||
cache-name: iOS-${{ inputs.sdk_version }}-SDK
|
||||
with:
|
||||
|
|
@ -91,16 +90,16 @@ jobs:
|
|||
if: steps.SDK.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
# Only download the specific SDK version
|
||||
git clone -n --depth=1 --filter=tree:0 https://github.com/aricloverALT/sdks/
|
||||
git clone -n --depth=1 --filter=tree:0 https://github.com/aricloverEXTRA/sdks/
|
||||
cd sdks
|
||||
git sparse-checkout set --no-cone iPhoneOS${{ inputs.sdk_version }}.sdk
|
||||
git checkout
|
||||
mv *.sdk $THEOS/sdks
|
||||
env:
|
||||
THEOS: ${{ github.workspace }}/theos
|
||||
THEOS: theos
|
||||
|
||||
- name: Download Theos Jailed
|
||||
uses: actions/checkout@v4.2.2
|
||||
uses: actions/checkout@v6.0.1
|
||||
with:
|
||||
repository: qnblackcat/theos-jailed
|
||||
ref: master
|
||||
|
|
@ -111,7 +110,7 @@ jobs:
|
|||
run: |
|
||||
./theos-jailed/install
|
||||
env:
|
||||
THEOS: ${{ github.workspace }}/theos
|
||||
THEOS: theos
|
||||
|
||||
- name: Fix Compiling
|
||||
run: |
|
||||
|
|
@ -119,6 +118,8 @@ jobs:
|
|||
echo "$(brew --prefix make)/libexec/gnubin" >> $GITHUB_PATH
|
||||
(echo export PATH="/usr/local/opt/make/libexec/gnubin:$PATH" >> ~/.bash_profile)
|
||||
source ~/.bash_profile
|
||||
env:
|
||||
THEOS: theos
|
||||
|
||||
- name: Hash YT ipa url
|
||||
run: |
|
||||
|
|
@ -129,18 +130,21 @@ jobs:
|
|||
- name: Prepare YouTube iPA
|
||||
run: |
|
||||
# Download and unzip iPA
|
||||
wget "$YOUTUBE_URL" --quiet --no-verbose -O main/YouTube.ipa
|
||||
unzip -q main/YouTube.ipa -d main/tmp
|
||||
wget "$YOUTUBE_URL" --quiet --no-verbose -O YouTube.ipa
|
||||
unzip -q YouTube.ipa -d tmp
|
||||
# Get the version number of the YouTube app and store it
|
||||
echo "YT_VERSION=$(grep -A 1 '<key>CFBundleVersion</key>' main/tmp/Payload/YouTube.app/Info.plist | grep '<string>' | awk -F'[><]' '{print $3}')" >> $GITHUB_ENV
|
||||
# Get the version number of the latest release
|
||||
wget -qO- https://github.com/dayanch96/YTLite/releases/latest > main/tmp/release_page.html
|
||||
YTLITE_VERSION=$(grep -o -E '/tag/v[^"]+' main/tmp/release_page.html | head -n 1 | sed 's/\/tag\/v//')
|
||||
echo "YTLITE_VERSION=5.0.1" >> $GITHUB_ENV
|
||||
echo $YTLITE_VERSION
|
||||
echo "YT_VERSION=$(grep -A 1 '<key>CFBundleVersion</key>' tmp/Payload/YouTube.app/Info.plist | grep '<string>' | awk -F'[><]' '{print $3}')" >> $GITHUB_ENV
|
||||
# Fetch the latest YTLite version from GitHub API
|
||||
YTLITE_VERSION=$(curl -s https://api.github.com/repos/dayanch96/YTLite/releases/latest | jq -r '.tag_name' | sed 's/^v//')
|
||||
if [ -z "$YTLITE_VERSION" ] || [ "$YTLITE_VERSION" = "null" ]; then
|
||||
echo "::error::Failed to fetch latest YTLite version from GitHub API"
|
||||
exit 1
|
||||
fi
|
||||
echo "YTLITE_VERSION=$YTLITE_VERSION" >> $GITHUB_ENV
|
||||
echo "Fetched YTLite version: $YTLITE_VERSION"
|
||||
# Remove contents in the iPA that interfere with sideloading
|
||||
rm -rf main/tmp/Payload/YouTube.app/_CodeSignature/CodeResources
|
||||
rm -rf main/tmp/Payload/YouTube.app/PlugIns/*
|
||||
rm -rf tmp/Payload/YouTube.app/_CodeSignature/CodeResources
|
||||
rm -rf tmp/Payload/YouTube.app/PlugIns/*
|
||||
# Modify Info.plist to remove UISupportedDevices (Python script)
|
||||
python - <<EOF
|
||||
import plistlib
|
||||
|
|
@ -154,36 +158,35 @@ jobs:
|
|||
with open(filepath, 'wb') as f:
|
||||
plistlib.dump(plist, f)
|
||||
|
||||
filepath = 'main/tmp/Payload/YouTube.app/Info.plist'
|
||||
filepath = 'tmp/Payload/YouTube.app/Info.plist'
|
||||
remove_uisupporteddevices(filepath)
|
||||
EOF
|
||||
# Manually install the Open in YouTube extension
|
||||
cp -R main/Extensions/*.appex main/tmp/Payload/YouTube.app/PlugIns
|
||||
cp -R Extensions/*.appex tmp/Payload/YouTube.app/PlugIns
|
||||
env:
|
||||
THEOS: ${{ github.workspace }}/theos
|
||||
THEOS: theos
|
||||
YOUTUBE_URL: ${{ env.URL_YT }}
|
||||
|
||||
- name: Build Package
|
||||
id: build_package
|
||||
run: |
|
||||
cd ${{ github.workspace }}/main
|
||||
# Replace lines in Makefile based on inputs
|
||||
sed -i '' "s/^BUNDLE_ID.*$/BUNDLE_ID = ${{ env.BUNDLE_ID }}/" Makefile
|
||||
sed -i '' "s/^DISPLAY_NAME.*$/DISPLAY_NAME = ${{ env.APP_NAME }}/" Makefile
|
||||
sed -i '' "s/^PACKAGE_VERSION.*$/PACKAGE_VERSION = ${{ env.YT_VERSION }}-5.0.1/" Makefile
|
||||
sed -i '' "s/^PACKAGE_VERSION.*$/PACKAGE_VERSION = ${{ env.YT_VERSION }}-${{ env.YTLITE_VERSION }}/" Makefile
|
||||
sed -i '' "s/^export TARGET.*$/export TARGET = iphone:clang:${{ inputs.sdk_version }}:14.0/" Makefile
|
||||
sed -i '' "s/^export SDK_PATH.*$/export SDK_PATH = \$(THEOS)\/sdks\/iPhoneOS${{ inputs.sdk_version }}.sdk\//" Makefile
|
||||
# Build the package
|
||||
make package SIDELOAD=1 THEOS_PACKAGE_SCHEME=rootless FINALPACKAGE=1
|
||||
# Rename the package based on the version
|
||||
(mv "packages/$(ls -t packages | head -n1)" "packages/YTLitePlus_${{ env.YT_VERSION }}_5.0.1.ipa")
|
||||
(mv "packages/$(ls -t packages | head -n1)" "packages/YTLitePlus_${{ env.YT_VERSION }}_${{ env.YTLITE_VERSION }}.ipa")
|
||||
# Pass package name to the upload step
|
||||
echo "package=$(ls -t packages | head -n1)" >> $GITHUB_OUTPUT
|
||||
# Print out the hash and bundle ID
|
||||
echo -e "==> \033[1mSHASUM256: $(shasum -a 256 packages/*.ipa | cut -f1 -d' ')\033[0m"
|
||||
echo -e "==> \033[1mBundle ID: ${{ env.BUNDLE_ID }}\033[0m"
|
||||
env:
|
||||
THEOS: ${{ github.workspace }}/theos
|
||||
THEOS: theos
|
||||
BUNDLE_ID: ${{ inputs.bundle_id }}
|
||||
APP_NAME: ${{ inputs.app_name }}
|
||||
|
||||
|
|
@ -192,13 +195,13 @@ jobs:
|
|||
uses: actions/upload-artifact@v4.5.0
|
||||
with:
|
||||
name: YTLitePlus_${{ env.YT_VERSION }}_${{ env.YTLITE_VERSION }}
|
||||
path: ${{ github.workspace }}/main/packages/${{ steps.build_package.outputs.package }}
|
||||
path: packages/${{ steps.build_package.outputs.package }}
|
||||
if-no-files-found: error
|
||||
|
||||
- name: Upload Artifact to Catbox and update AltStore repo
|
||||
if: ${{ inputs.catbox_upload }}
|
||||
run: |
|
||||
RESPONSE=$(curl -F "reqtype=fileupload" -F "fileToUpload=@${{ github.workspace }}/main/packages/${{ steps.build_package.outputs.package }}" https://catbox.moe/user/api.php)
|
||||
RESPONSE=$(curl -F "reqtype=fileupload" -F "fileToUpload=@packages/${{ steps.build_package.outputs.package }}" https://catbox.moe/user/api.php)
|
||||
CATBOX_URL=$(echo $RESPONSE | grep -o -E 'https://files.catbox.moe/[^"]*')
|
||||
echo "Uploaded artifact to $CATBOX_URL"
|
||||
CATBOX_FILE=$(echo $CATBOX_URL | sed 's|https://files.catbox.moe/||')
|
||||
|
|
@ -210,21 +213,21 @@ jobs:
|
|||
if: ${{ inputs.create_release }}
|
||||
run: |
|
||||
export TODAY=$(date '+%Y-%m-%d')
|
||||
sed "s/%ytliteplus_version%/${{ env.YTLITE_VERSION }}/g; s/%youtube_version%/5.0.1/g; s/%catbox_url%/${{ env.CATBOX_FILE }}/g; s/%date%/$TODAY/g" \
|
||||
main/.github/RELEASE_TEMPLATE/Release.md > ${{ github.workspace }}/release_notes.md
|
||||
sed "s/%ytliteplus_version%/${{ env.YTLITE_VERSION }}/g; s/%youtube_version%/${{ env.YT_VERSION }}/g; s/%catbox_url%/${{ env.CATBOX_FILE }}/g; s/%date%/$TODAY/g" \
|
||||
.github/RELEASE_TEMPLATE/Release.md > release_notes.md
|
||||
|
||||
- name: Create Draft Release
|
||||
if: ${{ inputs.create_release }}
|
||||
id: create_release
|
||||
uses: softprops/action-gh-release@v2
|
||||
uses: softprops/action-gh-release@v2.5.0
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
tag_name: v${{ env.YT_VERSION }}-5.0.1
|
||||
name: v${{ env.YT_VERSION }}-5.0.1 - YTLitePlus
|
||||
files: main/packages/*.ipa
|
||||
tag_name: v${{ env.YT_VERSION }}-${{ env.YTLITE_VERSION }}
|
||||
name: v${{ env.YT_VERSION }}-${{ env.YTLITE_VERSION }} - YTLitePlus
|
||||
files: packages/*.ipa
|
||||
draft: true
|
||||
body_path: ${{ github.workspace }}/release_notes.md
|
||||
body_path: release_notes.md
|
||||
|
||||
- name: Update Altstore Source with latest release
|
||||
if: ${{ inputs.catbox_upload }}
|
||||
|
|
|
|||
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -7,3 +7,4 @@ Tweaks/YTLite/*
|
|||
Resources/
|
||||
*.ipa
|
||||
.vscode
|
||||
_codeql_detected_source_root
|
||||
|
|
|
|||
20
.gitmodules
vendored
20
.gitmodules
vendored
|
|
@ -7,18 +7,12 @@
|
|||
[submodule "Tweaks/FLEX"]
|
||||
path = Tweaks/FLEX
|
||||
url = https://github.com/PoomSmart/FLEXing.git
|
||||
[submodule "Tweaks/iSponsorBlock"]
|
||||
path = Tweaks/iSponsorBlock
|
||||
url = https://github.com/Galactic-Dev/iSponsorBlock.git
|
||||
[submodule "Tweaks/YTHoldForSpeed"]
|
||||
path = Tweaks/YTHoldForSpeed
|
||||
url = https://github.com/aricloverALT/YTHoldForSpeed.git
|
||||
[submodule "Tweaks/DontEatMyContent"]
|
||||
path = Tweaks/DontEatMyContent
|
||||
url = https://github.com/therealFoxster/DontEatMyContent.git
|
||||
[submodule "Extensions"]
|
||||
path = Extensions
|
||||
url = https://github.com/CokePokes/YoutubeExtensions.git
|
||||
url = https://github.com/BillyCurtis/OpenYouTubeSafariExtension.git
|
||||
[submodule "Tweaks/YTVideoOverlay"]
|
||||
path = Tweaks/YTVideoOverlay
|
||||
url = https://github.com/PoomSmart/YTVideoOverlay.git
|
||||
|
|
@ -40,12 +34,6 @@
|
|||
[submodule "Tweaks/YouGroupSettings"]
|
||||
path = Tweaks/YouGroupSettings
|
||||
url = https://github.com/PoomSmart/YouGroupSettings
|
||||
[submodule "Tweaks/YouMute"]
|
||||
path = Tweaks/YouMute
|
||||
url = https://github.com/PoomSmart/YouMute
|
||||
[submodule "Tweaks/YouQuality"]
|
||||
path = Tweaks/YouQuality
|
||||
url = https://github.com/PoomSmart/YouQuality
|
||||
[submodule "Tweaks/Return-YouTube-Dislikes"]
|
||||
path = Tweaks/Return-YouTube-Dislikes
|
||||
url = https://github.com/PoomSmart/Return-YouTube-Dislikes.git
|
||||
|
|
@ -55,13 +43,7 @@
|
|||
[submodule "Tweaks/YouTimeStamp"]
|
||||
path = Tweaks/YouTimeStamp
|
||||
url = https://github.com/aricloverALT/YouTimeStamp.git
|
||||
[submodule "Tweaks/YouLoop"]
|
||||
path = Tweaks/YouLoop
|
||||
url = https://github.com/bhackel/YouLoop
|
||||
[submodule "Tweaks/FLEXing"]
|
||||
path = Tweaks/FLEXing
|
||||
url = https://github.com/PoomSmart/FLEXing.git
|
||||
branch = rootless
|
||||
[submodule "Tweaks/YouSpeed"]
|
||||
path = Tweaks/YouSpeed
|
||||
url = https://github.com/PoomSmart/YouSpeed
|
||||
|
|
|
|||
13
Makefile
13
Makefile
|
|
@ -1,5 +1,5 @@
|
|||
export TARGET = iphone:clang:17.5:14.0
|
||||
export SDK_PATH = $(THEOS)/sdks/iPhoneOS17.5.sdk/
|
||||
export TARGET = iphone:clang:18.6:14.0
|
||||
export SDK_PATH = $(THEOS)/sdks/iPhoneOS18.6.sdk/
|
||||
export SYSROOT = $(SDK_PATH)
|
||||
export ARCHS = arm64
|
||||
|
||||
|
|
@ -24,7 +24,7 @@ BUNDLE_ID = com.google.ios.youtube
|
|||
|
||||
YTLitePlus_FILES = YTLitePlus.xm $(shell find Source -name '*.xm' -o -name '*.x' -o -name '*.m')
|
||||
YTLitePlus_FRAMEWORKS = UIKit Security
|
||||
YTLitePlus_INJECT_DYLIBS = Tweaks/YTLite/var/jb/Library/MobileSubstrate/DynamicLibraries/YTLite.dylib .theos/obj/libFLEX.dylib .theos/obj/iSponsorBlock.dylib .theos/obj/YTUHD.dylib .theos/obj/YouPiP.dylib .theos/obj/YouTubeDislikesReturn.dylib .theos/obj/YTABConfig.dylib .theos/obj/DontEatMyContent.dylib .theos/obj/YTHoldForSpeed.dylib .theos/obj/YTVideoOverlay.dylib .theos/obj/YouLoop.dylib .theos/obj/YouMute.dylib .theos/obj/YouQuality.dylib .theos/obj/YouSpeed.dylib .theos/obj/YouTimeStamp.dylib .theos/obj/YouGroupSettings.dylib
|
||||
YTLitePlus_INJECT_DYLIBS = Tweaks/YTLite/var/jb/Library/MobileSubstrate/DynamicLibraries/YTLite.dylib .theos/obj/libFLEX.dylib .theos/obj/YTUHD.dylib .theos/obj/YouPiP.dylib .theos/obj/YouTubeDislikesReturn.dylib .theos/obj/YTABConfig.dylib .theos/obj/DontEatMyContent.dylib .theos/obj/YTVideoOverlay.dylib .theos/obj/YouTimeStamp.dylib .theos/obj/YouGroupSettings.dylib
|
||||
YTLitePlus_EMBED_LIBRARIES = $(THEOS_OBJ_DIR)/libcolorpicker.dylib
|
||||
YTLitePlus_EMBED_FRAMEWORKS = $(_THEOS_LOCAL_DATA_DIR)/$(THEOS_OBJ_DIR_NAME)/install_Alderis.xcarchive/Products/var/jb/Library/Frameworks/Alderis.framework
|
||||
YTLitePlus_CFLAGS = -fobjc-arc -Wno-deprecated-declarations -Wno-unused-but-set-variable -DTWEAK_VERSION=\"$(PACKAGE_VERSION)\"
|
||||
|
|
@ -36,7 +36,7 @@ YTLitePlus_USE_FISHHOOK = 0
|
|||
|
||||
include $(THEOS)/makefiles/common.mk
|
||||
ifneq ($(JAILBROKEN),1)
|
||||
SUBPROJECTS += Tweaks/Alderis Tweaks/FLEXing/libflex Tweaks/iSponsorBlock Tweaks/YTUHD Tweaks/YouPiP Tweaks/Return-YouTube-Dislikes Tweaks/YTABConfig Tweaks/DontEatMyContent Tweaks/YTHoldForSpeed Tweaks/YTVideoOverlay Tweaks/YouLoop Tweaks/YouMute Tweaks/YouQuality Tweaks/YouSpeed Tweaks/YouTimeStamp Tweaks/YouGroupSettings
|
||||
SUBPROJECTS += Tweaks/Alderis Tweaks/FLEXing/libflex Tweaks/YTUHD Tweaks/YouPiP Tweaks/Return-YouTube-Dislikes Tweaks/YTABConfig Tweaks/DontEatMyContent Tweaks/YTVideoOverlay Tweaks/YouTimeStamp Tweaks/YouGroupSettings
|
||||
include $(THEOS_MAKE_PATH)/aggregate.mk
|
||||
endif
|
||||
include $(THEOS_MAKE_PATH)/tweak.mk
|
||||
|
|
@ -46,7 +46,10 @@ REMOVE_EXTENSIONS = 1
|
|||
CODESIGN_IPA = 0
|
||||
|
||||
YTLITE_PATH = Tweaks/YTLite
|
||||
YTLITE_VERSION := 5.0.1
|
||||
YTLITE_VERSION := $(shell curl -s https://api.github.com/repos/dayanch96/YTLite/releases/latest | grep '"tag_name"' | sed 's/.*"v\(.*\)".*/\1/')
|
||||
ifeq ($(YTLITE_VERSION),)
|
||||
$(error Failed to fetch latest YTLite version from GitHub API)
|
||||
endif
|
||||
YTLITE_DEB = $(YTLITE_PATH)/com.dvntm.ytlite_$(YTLITE_VERSION)_iphoneos-arm64.deb
|
||||
YTLITE_DYLIB = $(YTLITE_PATH)/var/jb/Library/MobileSubstrate/DynamicLibraries/YTLite.dylib
|
||||
YTLITE_BUNDLE = $(YTLITE_PATH)/var/jb/Library/Application\ Support/YTLite.bundle
|
||||
|
|
|
|||
32
README.md
32
README.md
|
|
@ -81,37 +81,27 @@
|
|||
|
||||
4. **YTABConfig**: Adds a new section named "A/B" in the YouTube app settings where all features can be toggled freely by the user.
|
||||
|
||||
5. **YouMute**: Allows users to mute/unmute videos directly in the YouTube Video Player.
|
||||
5. **DontEatMyContent**: Prevents the notch/Dynamic Island from covering 2:1 video content in YouTube.
|
||||
|
||||
6. **DontEatMyContent**: Prevents the notch/Dynamic Island from covering 2:1 video content in YouTube.
|
||||
6. **Return YouTube Dislikes**: Brings back Dislike counts under YouTube videos using ReturnYoutubeDislike's API.
|
||||
|
||||
7. **Return YouTube Dislikes**: Brings back Dislike counts under YouTube videos using ReturnYoutubeDislike's API.
|
||||
7. **YouRememberCaption**: Makes YouTube remember your video caption setting.
|
||||
|
||||
8. **iSponsorBlock**: Skips annoying sponsor ads inside YouTube videos.
|
||||
8. **YTNoTracking**: An iOS YouTube Tweak that disables Tracking Parameters in the YouTube App.
|
||||
|
||||
9. **YouRememberCaption**: Makes YouTube remember your video caption setting.
|
||||
9. **YTNoCheckLocalNetWor**k: Blocks the Local Network permission popup in YouTube.
|
||||
|
||||
10. **YTNoTracking**: An iOS YouTube Tweak that disables Tracking Parameters in the YouTube App.
|
||||
10. **BigYTMiniPlayer**: Jailbreak tweak that makes the miniplayer in youtube easier to see.
|
||||
|
||||
12. **YTNoCheckLocalNetWor**k: Blocks the Local Network permission popup in YouTube.
|
||||
11. **YTVideoOverlay**: A helper tweak that adds buttons on the YouTube video overlay.
|
||||
|
||||
13. **BigYTMiniPlayer**: Jailbreak tweak that makes the miniplayer in youtube easier to see.
|
||||
12. **YTNoModernUI**: This tweak changes and removes some newer UI elements from the YouTube app such as some rounded buttons, old progress bar, and old buffer bar.
|
||||
|
||||
14. **YTSpeed**: Adds 2.25x to 5x playback speed options in the YouTube video player.
|
||||
13. **OLEDDarkmode**: Replace official Youtube darkmode with a true OLED darkmode.
|
||||
|
||||
15. **YTHoldForSpeed**: Allows you to quickly toggle between a selected video playback speed by tapping and holding on the video player in the YouTube application.
|
||||
14. **OLDDarkmode**: Replace new official Youtube darkmode with old (grey) Youtube darkmode.
|
||||
|
||||
16. **YTVideoOverlay**: A helper tweak that adds buttons on the YouTube video overlay.
|
||||
|
||||
17. **YouQuality**: Enables you to view and change video quality in YouTube faster.
|
||||
|
||||
18. **YTNoModernUI**: This tweak changes and removes some newer UI elements from the YouTube app such as some rounded buttons, old progress bar, and old buffer bar.
|
||||
|
||||
19. **OLEDDarkmode**: Replace official Youtube darkmode with a true OLED darkmode.
|
||||
|
||||
20. **OLDDarkmode**: Replace new official Youtube darkmode with old (grey) Youtube darkmode.
|
||||
|
||||
21. **LowContrastMode**: Makes the UI interface look dimmer to make it easier on the eyes. (App Compatibility: v17.33.2-v17.38.10)
|
||||
15. **LowContrastMode**: Makes the UI interface look dimmer to make it easier on the eyes. (App Compatibility: v17.33.2-v17.38.10)
|
||||
|
||||
# AltStore
|
||||
|
||||
|
|
|
|||
|
|
@ -154,7 +154,7 @@ static const NSInteger YTLiteSection = 789;
|
|||
|
||||
// Show an option to export YouTube Plus settings
|
||||
UIAlertController *exportAlert = [UIAlertController alertControllerWithTitle:@"Export Settings"
|
||||
message:@"Note: This feature cannot save iSponsorBlock and most YouTube settings.\n\nWould you like to also export your YouTube Plus Settings?"
|
||||
message:@"Note: This feature cannot save most YouTube settings.\n\nWould you like to also export your YouTube Plus Settings?"
|
||||
preferredStyle:UIAlertControllerStyleAlert];
|
||||
[exportAlert addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]];
|
||||
[exportAlert addAction:[UIAlertAction actionWithTitle:@"Export" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
|
||||
|
|
@ -655,7 +655,6 @@ static const NSInteger YTLiteSection = 789;
|
|||
BASIC_SWITCH(LOC(@"NEW_MINIPLAYER_STYLE"), LOC(@"NEW_MINIPLAYER_STYLE_DESC"), @"bigYTMiniPlayer_enabled"),
|
||||
BASIC_SWITCH(LOC(@"HIDE_CAST_BUTTON"), LOC(@"HIDE_CAST_BUTTON_DESC"), @"hideCastButton_enabled"),
|
||||
BASIC_SWITCH(LOC(@"VIDEO_PLAYER_BUTTON"), LOC(@"VIDEO_PLAYER_BUTTON_DESC"), @"videoPlayerButton_enabled"),
|
||||
BASIC_SWITCH(LOC(@"HIDE_SPONSORBLOCK_BUTTON"), LOC(@"HIDE_SPONSORBLOCK_BUTTON_DESC"), @"hideSponsorBlockButton_enabled"),
|
||||
BASIC_SWITCH(LOC(@"HIDE_HOME_TAB"), LOC(@"HIDE_HOME_TAB_DESC"), @"hideHomeTab_enabled"),
|
||||
BASIC_SWITCH(LOC(@"FIX_CASTING"), LOC(@"FIX_CASTING_DESC"), @"fixCasting_enabled"),
|
||||
BASIC_SWITCH(LOC(@"REPLACE_COPY_AND_PASTE_BUTTONS"), LOC(@"REPLACE_COPY_AND_PASTE_BUTTONS_DESC"), @"switchCopyandPasteFunctionality_enabled"),
|
||||
|
|
@ -722,7 +721,7 @@ static const NSInteger YTLiteSection = 789;
|
|||
[[%c(GOOHUDManagerInternal) sharedInstance] showMessageMainThread:[%c(YTHUDMessage) messageWithText:@"Settings saved"]];
|
||||
// Export mode: Display a reminder to save YouTube Plus settings
|
||||
UIAlertController *exportAlert = [UIAlertController alertControllerWithTitle:@"Export Settings"
|
||||
message:@"Note: This feature cannot save iSponsorBlock and most YouTube settings.\n\nWould you like to also export your YouTube Plus Settings?"
|
||||
message:@"Note: This feature cannot save most YouTube settings.\n\nWould you like to also export your YouTube Plus Settings?"
|
||||
preferredStyle:UIAlertControllerStyleAlert];
|
||||
[exportAlert addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]];
|
||||
[exportAlert addAction:[UIAlertAction actionWithTitle:@"Export" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ NSArray *NSUserDefaultsCopyKeys = @[
|
|||
@"enableVersionSpoofer_enabled", @"fixCasting_enabled", @"flex_enabled", @"fullscreenToTheRight_enabled",
|
||||
@"hideAutoplayMiniPreview_enabled", @"hideCastButton_enabled", @"hideHUD_enabled", @"hideHeatwaves_enabled",
|
||||
@"hideHomeTab_enabled", @"hidePreviewCommentSection_enabled", @"hideRightPanel_enabled",
|
||||
@"hideSpeedToast_enabled", @"hideSponsorBlockButton_enabled", @"hideVideoPlayerShadowOverlayButtons_enabled",
|
||||
@"hideSpeedToast_enabled", @"hideVideoPlayerShadowOverlayButtons_enabled",
|
||||
@"iPadLayout_enabled", @"iPhoneLayout_enabled", @"inline_muted_playback_enabled", @"lowContrastMode_enabled",
|
||||
@"newSettingsUI_enabled", @"oledKeyBoard_enabled", @"playerGesturesHapticFeedback_enabled",
|
||||
@"playerGestures_enabled", @"seekAnywhere_enabled", @"switchCopyandPasteFunctionality_enabled",
|
||||
|
|
@ -23,18 +23,15 @@ NSArray *NSUserDefaultsCopyKeys = @[
|
|||
// DEMC - https://github.com/therealFoxster/DontEatMyContent/blob/master/Tweak.h
|
||||
@"DEMC_enabled", @"DEMC_colorViewsEnabled", @"DEMC_safeAreaConstant", @"DEMC_disableAmbientMode",
|
||||
@"DEMC_limitZoomToFill", @"DEMC_enableForAllVideos",
|
||||
// iSponsorBlock cannot be exported using this method - it is also being removed in v5
|
||||
// iSponsorBlock has been removed in v5 - YTLite has built-in SponsorBlock
|
||||
// Return-YouTube-Dislike - https://github.com/PoomSmart/Return-YouTube-Dislikes/blob/main/TweakSettings.h
|
||||
@"RYD-ENABLED", @"RYD-VOTE-SUBMISSION", @"RYD-EXACT-LIKE-NUMBER", @"RYD-EXACT-NUMBER",
|
||||
// All YTVideoOverlay Tweaks - https://github.com/PoomSmart/YTVideoOverlay/blob/0fc6d29d1aa9e75f8c13d675daec9365f753d45e/Tweak.x#L28C1-L41C84
|
||||
@"YTVideoOverlay-YouLoop-Enabled", @"YTVideoOverlay-YouTimeStamp-Enabled", @"YTVideoOverlay-YouMute-Enabled",
|
||||
@"YTVideoOverlay-YouQuality-Enabled", @"YTVideoOverlay-YouLoop-Position", @"YTVideoOverlay-YouTimeStamp-Position",
|
||||
@"YTVideoOverlay-YouMute-Position", @"YTVideoOverlay-YouQuality-Position",
|
||||
// YTVideoOverlay Tweaks - https://github.com/PoomSmart/YTVideoOverlay/blob/0fc6d29d1aa9e75f8c13d675daec9365f753d45e/Tweak.x#L28C1-L41C84
|
||||
@"YTVideoOverlay-YouTimeStamp-Enabled", @"YTVideoOverlay-YouTimeStamp-Position",
|
||||
// YouPiP - https://github.com/PoomSmart/YouPiP/blob/main/Header.h
|
||||
@"YouPiPPosition", @"CompatibilityModeKey", @"PiPActivationMethodKey", @"PiPActivationMethod2Key",
|
||||
@"NoMiniPlayerPiPKey", @"NonBackgroundableKey",
|
||||
// YTABConfig cannot be reasonably exported using this method
|
||||
// YTHoldForSpeed will be removed in v5
|
||||
// YouTube Plus / YTLite cannot be exported using this method
|
||||
// YTUHD - https://github.com/PoomSmart/YTUHD/blob/master/Header.h
|
||||
@"EnableVP9", @"AllVP9",
|
||||
|
|
|
|||
|
|
@ -49,22 +49,6 @@ UIColor *customColor = [UIColor colorWithRed:0.129 green:0.129 blue:0.129 alpha:
|
|||
return self.pageStyle == 1 ? customColor : %orig;
|
||||
}
|
||||
%end
|
||||
%hook SponsorBlockSettingsController
|
||||
- (void)viewDidLoad {
|
||||
if (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
|
||||
%orig;
|
||||
self.tableView.backgroundColor = customColor;
|
||||
} else { return %orig; }
|
||||
}
|
||||
%end
|
||||
%hook SponsorBlockViewController
|
||||
- (void)viewDidLoad {
|
||||
if (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
|
||||
%orig;
|
||||
self.view.backgroundColor = customColor;
|
||||
} else { return %orig; }
|
||||
}
|
||||
%end
|
||||
%hook YTAsyncCollectionView
|
||||
- (void)setBackgroundColor:(UIColor *)color {
|
||||
if ([self.nextResponder isKindOfClass:NSClassFromString(@"YTRelatedVideosCollectionViewController")]) {
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
Subproject commit ba20df7ad8d0dfdb024688f3d92735f887fe5908
|
||||
|
|
@ -1 +0,0 @@
|
|||
Subproject commit 899a2fdd539ae308e5847bbb3d7212cfce30a3a6
|
||||
|
|
@ -1 +0,0 @@
|
|||
Subproject commit 8d6726e569a194d3f1c1ae973b290c66301087f1
|
||||
|
|
@ -1 +0,0 @@
|
|||
Subproject commit d56dccd4336f0902f05813f4af177360c69fe33f
|
||||
|
|
@ -1 +0,0 @@
|
|||
Subproject commit 79b9ed44958ad27fe75ee14ccc300aa99610c263
|
||||
|
|
@ -1 +0,0 @@
|
|||
Subproject commit e0f97ef5fe47c5c3728ce2ff7a6fb02bc085e86b
|
||||
|
|
@ -190,13 +190,12 @@ typedef NS_ENUM(NSUInteger, GestureSection) {
|
|||
@property (nonatomic, assign, readwrite) YTQTMButton *watchCollapseButton;
|
||||
@end
|
||||
|
||||
// SponsorBlock button in Nav bar
|
||||
// SponsorBlock button in Nav bar - removed (now built into YTLite v5.x)
|
||||
@interface MDCButton : UIButton
|
||||
@end
|
||||
|
||||
@interface YTRightNavigationButtons (YTLitePlus)
|
||||
@property YTQTMButton *notificationButton;
|
||||
@property YTQTMButton *sponsorBlockButton;
|
||||
@property YTQTMButton *videoPlayerButton;
|
||||
@end
|
||||
|
||||
|
|
@ -274,12 +273,6 @@ typedef NS_ENUM(NSUInteger, GestureSection) {
|
|||
@interface YTCommentDetailHeaderCell : UIView
|
||||
@end
|
||||
|
||||
@interface SponsorBlockSettingsController : UITableViewController
|
||||
@end
|
||||
|
||||
@interface SponsorBlockViewController : UIViewController
|
||||
@end
|
||||
|
||||
@interface UICandidateViewController : UIViewController
|
||||
@end
|
||||
|
||||
|
|
|
|||
|
|
@ -108,16 +108,6 @@ BOOL isSelf() {
|
|||
}
|
||||
%end
|
||||
|
||||
// Hide SponsorBlock Button in navigation bar
|
||||
%hook YTRightNavigationButtons
|
||||
- (void)layoutSubviews {
|
||||
%orig;
|
||||
if (IsEnabled(@"hideSponsorBlockButton_enabled")) {
|
||||
self.sponsorBlockButton.hidden = YES;
|
||||
}
|
||||
}
|
||||
%end
|
||||
|
||||
// Hide Video Player Cast Button
|
||||
%group gHideCastButton
|
||||
%hook MDXPlaybackRouteButtonController
|
||||
|
|
@ -1305,12 +1295,6 @@ NSInteger pageStyle = 0;
|
|||
NSArray *allKeys = [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys];
|
||||
if (![allKeys containsObject:@"YTLPDidPerformFirstRunSetup"]) {
|
||||
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"YTLPDidPerformFirstRunSetup"];
|
||||
// Set iSponsorBlock to default disabled
|
||||
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
|
||||
NSString *settingsPath = [documentsDirectory stringByAppendingPathComponent:@"iSponsorBlock.plist"];
|
||||
NSMutableDictionary *settings = [NSMutableDictionary dictionary];
|
||||
[settings setObject:@(NO) forKey:@"enabled"];
|
||||
[settings writeToFile:settingsPath atomically:YES];
|
||||
// Set miscellaneous YTLitePlus features to enabled
|
||||
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"RYD-ENABLED"];
|
||||
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"YouPiPEnabled"];
|
||||
|
|
|
|||
Loading…
Reference in a new issue