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:
Copilot 2026-02-11 19:35:11 +01:00 committed by GitHub
parent b4380d602a
commit 4087630525
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
16 changed files with 69 additions and 139 deletions

View file

@ -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
View file

@ -7,3 +7,4 @@ Tweaks/YTLite/*
Resources/
*.ipa
.vscode
_codeql_detected_source_root

20
.gitmodules vendored
View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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) {

View file

@ -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",

View file

@ -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

View file

@ -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

View file

@ -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"];