Compare commits

..

9 Commits

Author SHA1 Message Date
Maksim Ivanov
5b767c8077 Getting link for latest Widevine from Mozilla Firefox sources 2025-09-14 19:21:07 +03:00
Maksim Ivanov
c905b7d638 Merge pull request #36 from valdineidossantos/fix_jq_syntax
fix: correct jq syntax for fetching latest ffmpeg release URLs
2025-09-03 20:39:28 +03:00
Valdinei Santos
067428f6c2 fix: correct jq syntax for fetching latest ffmpeg release URLs 2025-09-03 10:33:36 -03:00
Maksim Ivanov
ed5dd641d8 fix for release sorting 2025-08-29 06:46:57 +03:00
Maksim Ivanov
74b21fee16 jq sort_by for getteng latest ffmpeg release 2025-08-28 14:22:22 +03:00
Maksim Ivanov
c71d341623 Merge pull request #34 from EvilSupahFly/main
Fix Widevine 404 by falling back to older available versions
2025-08-28 11:07:25 +03:00
EvilSupahFly
3648b2851f Merge pull request #1 from EvilSupahFly/EvilSupahFly-patch-1
Update fix-opera.sh: Change Widevine download logic to:
 - Iterate through all versions from newest to oldest.
 - Test each candidate URL with curl --fail.
 - Select the first available version.
 - Exit gracefully if none are found.
2025-08-26 19:15:31 -04:00
EvilSupahFly
7290f690c8 Update fix-opera.sh
Change Widevine download logic to:
- Iterate through all versions from newest to oldest.
- Test each candidate URL with curl --fail.
- Select the first available version.
- Exit gracefully if none are found.
2025-08-26 19:13:10 -04:00
Maksim Ivanov
67c77ad757 Update 99fix-opera
statement fix
2025-01-21 21:20:47 +03:00
2 changed files with 19 additions and 17 deletions

View File

@@ -1,2 +1,2 @@
DPkg::Pre-Invoke {"stat -c %Z $(readlink -f $(which opera)) > /tmp/opera.timestamp 2> /dev/null || echo 0 > /tmp/opera.timestamp";};
DPkg::Post-Invoke {"set NEW_OPERA=`stat -c %Z $(readlink -f $(which opera))` || exit 0; set OLD_OPERA=`cat /tmp/opera.timestamp` || exit 0; if [ $NEW_OPERA -ne $OLD_OPERA ]; then /root/.scripts/fix-opera.sh; fi; rm -f /tmp/opera.timestamp";};
DPkg::Post-Invoke {"set NEW_OPERA=`stat -c %Z $(readlink -f $(which opera))` || exit 0; set OLD_OPERA=`cat /tmp/opera.timestamp` || exit 0; if [ "$NEW_OPERA" != "$OLD_OPERA" ]; then /root/.scripts/fix-opera.sh; fi; rm -f /tmp/opera.timestamp";};

View File

@@ -31,10 +31,10 @@ fi
#Config section
readonly FIX_WIDEVINE=true
readonly TEMP_DIR='/tmp'
readonly FIX_DIR='/tmp/opera-fix'
readonly FFMPEG_SRC_MAIN='https://api.github.com/repos/Ld-Hagen/nwjs-ffmpeg-prebuilt/releases'
readonly FFMPEG_SRC_ALT='https://api.github.com/repos/Ld-Hagen/fix-opera-linux-ffmpeg-widevine/releases'
readonly WIDEVINE_VERSIONS='https://dl.google.com/widevine-cdm/versions.txt'
readonly WIDEVINE_SRC='https://raw.githubusercontent.com/mozilla-firefox/firefox/refs/heads/main/toolkit/content/gmp-sources/widevinecdm.json'
readonly FFMPEG_SO_NAME='libffmpeg.so'
readonly WIDEVINE_SO_NAME='libwidevinecdm.so'
readonly WIDEVINE_MANIFEST_NAME='manifest.json'
@@ -51,9 +51,10 @@ fi
#Getting download links
printf 'Getting download links...\n'
##ffmpeg
readonly FFMPEG_URL_MAIN=$(curl -sL4 $FFMPEG_SRC_MAIN | jq -r '.[0].assets[0].browser_download_url')
readonly FFMPEG_URL_ALT=$(curl -sL4 $FFMPEG_SRC_ALT | jq -r '.[0].assets[0].browser_download_url')
readonly FFMPEG_URL_MAIN=$(curl -sL4 $FFMPEG_SRC_MAIN | jq -rS 'sort_by(.published_at) | .[-1].assets[0].browser_download_url')
readonly FFMPEG_URL_ALT=$(curl -sL4 $FFMPEG_SRC_ALT | jq -rS 'sort_by(.published_at) | .[-1].assets[0].browser_download_url')
[[ $(basename $FFMPEG_URL_ALT) < $(basename $FFMPEG_URL_MAIN) ]] && readonly FFMPEG_URL=$FFMPEG_URL_MAIN || readonly FFMPEG_URL=$FFMPEG_URL_ALT
if [[ -z $FFMPEG_URL ]]; then
printf 'Failed to get ffmpeg download URL. Exiting...\n'
@@ -62,22 +63,22 @@ fi
##Widevine
if $FIX_WIDEVINE; then
readonly WIDEVINE_LATEST=`curl -sL4 $WIDEVINE_VERSIONS | tail -n1`
readonly WIDEVINE_URL="https://dl.google.com/widevine-cdm/$WIDEVINE_LATEST-linux-x64.zip"
readonly WIDEVINE_URL=$(curl -sL4 $WIDEVINE_SRC | jq -r '.vendors."gmp-widevinecdm".platforms."Linux_x86_64-gcc3".mirrorUrls[0]')
fi
#Downloading files
printf 'Downloading files...\n'
mkdir -p "$TEMP_DIR/opera-fix"
mkdir -p "$FIX_DIR"
##ffmpeg
curl -L4 --progress-bar $FFMPEG_URL -o "$TEMP_DIR/opera-fix/ffmpeg.zip"
curl -L4 --progress-bar $FFMPEG_URL -o "$FIX_DIR/ffmpeg.zip"
if [ $? -ne 0 ]; then
printf 'Failed to download ffmpeg. Check your internet connection or try later\n'
exit 1
fi
##Widevine
if $FIX_WIDEVINE; then
curl -L4 --progress-bar "$WIDEVINE_URL" -o "$TEMP_DIR/opera-fix/widevine.zip"
curl -L4 --progress-bar "$WIDEVINE_URL" -o "$FIX_DIR/widevine.zip"
if [ $? -ne 0 ]; then
printf 'Failed to download Widevine CDM. Check your internet connection or try later\n'
exit 1
@@ -85,12 +86,13 @@ if $FIX_WIDEVINE; then
fi
#Extracting files
printf 'Extracting files...\n'
##ffmpeg
unzip -o "$TEMP_DIR/opera-fix/ffmpeg.zip" -d $TEMP_DIR/opera-fix > /dev/null
echo "Extracting ffmpeg..."
unzip -o "$FIX_DIR/ffmpeg.zip" -d $FIX_DIR > /dev/null
##Widevine
if $FIX_WIDEVINE; then
unzip -o "$TEMP_DIR/opera-fix/widevine.zip" -d $TEMP_DIR/opera-fix > /dev/null
echo "Extracting WidevineCDM..."
unzip -oj "$FIX_DIR/widevine.zip" -d $FIX_DIR > /dev/null 2>/dev/null
fi
for opera in ${OPERA_VERSIONS[@]}; do
@@ -120,13 +122,13 @@ for opera in ${OPERA_VERSIONS[@]}; do
#Moving libraries to its place
printf 'Moving libraries to their places...\n'
##ffmpeg
cp -f "$TEMP_DIR/opera-fix/$FFMPEG_SO_NAME" "$OPERA_LIB_DIR"
cp -f "$FIX_DIR/$FFMPEG_SO_NAME" "$OPERA_LIB_DIR"
chmod 0644 "$OPERA_LIB_DIR/$FFMPEG_SO_NAME"
##Widevine
if $FIX_WIDEVINE; then
cp -f "$TEMP_DIR/opera-fix/$WIDEVINE_SO_NAME" "$OPERA_WIDEVINE_SO_DIR"
cp -f "$FIX_DIR/$WIDEVINE_SO_NAME" "$OPERA_WIDEVINE_SO_DIR"
chmod 0644 "$OPERA_WIDEVINE_SO_DIR/$WIDEVINE_SO_NAME"
cp -f "$TEMP_DIR/opera-fix/$WIDEVINE_MANIFEST_NAME" "$OPERA_WIDEVINE_DIR"
cp -f "$FIX_DIR/$WIDEVINE_MANIFEST_NAME" "$OPERA_WIDEVINE_DIR"
chmod 0644 "$OPERA_WIDEVINE_DIR/$WIDEVINE_MANIFEST_NAME"
printf "[\n {\n \"preload\": \"$OPERA_WIDEVINE_DIR\"\n }\n]\n" > "$OPERA_WIDEVINE_CONFIG"
fi
@@ -134,4 +136,4 @@ done
#Removing temporary files
printf 'Removing temporary files...\n'
rm -rf "$TEMP_DIR/opera-fix"
rm -rf "$FIX_DIR"