Compare commits

..

7 Commits

Author SHA1 Message Date
Maksim Ivanov
b77acfb324 Merge pull request #11 from leonmcar1/patch-1
Disable ipv6 for wget
2022-12-26 18:46:42 +03:00
leonmcar1
59dc39dfbc wget issues
Within the network where I work, only enabling in wget the --inet4-only the script works.
2022-12-21 13:50:43 +00:00
Maksim Ivanov
96dcbff82e Fixed message in install.sh 2022-04-22 22:20:37 +03:00
Maksim Ivanov
5f3fa8273a Disabled main ffmpeg source 2022-04-18 15:08:37 +03:00
Ld-Hagen
58be0f5c1c Readme update, dnf hook fix 2021-10-26 21:57:14 +03:00
Ld-Hagen
52954635c8 Hook for RedHat based systems (using dnf package manager). Untested. 2021-10-26 20:59:59 +03:00
Ld-Hagen
8c64261203 No hardcoded Opera directory in apt hook. Some text messages and readme changes 2021-10-14 18:42:27 +03:00
4 changed files with 33 additions and 19 deletions

View File

@@ -2,37 +2,43 @@
* Fixes Opera html5 media content including DRM-protected one. * Fixes Opera html5 media content including DRM-protected one.
* This script must be executed all times opera fails on showing html5 media content. * This script must be executed all times opera fails on showing html5 media content.
* On Debian-based and Arch-based distributions it could be started automatically after Opera each update or reinstall. * On Debian-based, RedHat-based and Arch-based distributions it could be started automatically after Opera each update or reinstall.
## Requirements ## Requirements
1. **wget** (Is needed for downloading the ffmpeg lib and widevine) 1. **wget** (Is needed for downloading the ffmpeg lib and widevine)
```sudo apt install wget```
2. **unzip** (Is needed for unpacking the downloaded file) **unzip** (Is needed for unpacking the downloaded file)
```sudo apt install unzip```
2. **git** (Is needed for fetching this script) **git** (Is needed for fetching this script)
```sudo apt install git```
For Debian-based systems: `sudo apt install wget unzip git`
For Arch-based systems: `sudo pacman -S wget unzip git`
For RedHat-based systems: `sudo dnf install wget unzip git`
2. (*Optional*) **python3-dnf-plugin-post-transaction-actions** (Is needed for autoupdate in RedHat-based systems)
`dnf install python3-dnf-plugin-post-transaction-actions`
## Usage ## Usage
1. Clone this repo 1. Clone this repo
```git clone https://github.com/Ld-Hagen/fix-opera-linux-ffmpeg-widevine.git``` `git clone https://github.com/Ld-Hagen/fix-opera-linux-ffmpeg-widevine.git`
2. Go to the repo root folder 2. Go to the repo root folder
```cd ./fix-opera-linux-ffmpeg-widevine``` `cd ./fix-opera-linux-ffmpeg-widevine`
3. (*Optional*) Run script. And if it works well go to next step. 3. (*Optional*) Run script. And if it works well go to next step.
```sudo ./scripts/fix-opera.sh``` `sudo ./scripts/fix-opera.sh`
4. Run install script and answer few questions. 4. Run install script and answer few questions.
```sudo ./install.sh``` `sudo ./install.sh`
5. Delete the repo 5. Delete the repo
```cd .. && rm -rf ./fix-opera-linux-ffmpeg-widevine``` `cd .. && rm -rf ./fix-opera-linux-ffmpeg-widevine`

View File

@@ -29,6 +29,7 @@ create_hook ()
printf 'Choose your Linux distro:\n' printf 'Choose your Linux distro:\n'
printf ' 1. Debian-based (Debian/Ubuntu/Mint/etc.)\n' printf ' 1. Debian-based (Debian/Ubuntu/Mint/etc.)\n'
printf ' 2. Arch-based (Arch/Manjaro/etc.)\n' printf ' 2. Arch-based (Arch/Manjaro/etc.)\n'
printf ' 3. RedHat-based (RedHat/Fedora/etc.)\n'
printf ' 0. Other\n' printf ' 0. Other\n'
while read -p "Your choice: " DISTRIB; do while read -p "Your choice: " DISTRIB; do
case $DISTRIB in case $DISTRIB in
@@ -38,10 +39,16 @@ create_hook ()
printf 'Now the script will run automatically every time apt installs or updates Opera.\n' printf 'Now the script will run automatically every time apt installs or updates Opera.\n'
break;; break;;
"2" ) "2" )
cp -f $SCRIPT_PATH/scripts/fix-opera.hook $INSTALL_PATH /usr/share/libalpm/hooks cp -f $SCRIPT_PATH/scripts/fix-opera.hook $INSTALL_PATH
ln -sf $INSTALL_PATH/fix-opera.hook /usr/share/libalpm/hooks/ ln -sf $INSTALL_PATH/fix-opera.hook /usr/share/libalpm/hooks/
printf 'Now the script will run automatically every time pacman installs or updates Opera.\n' printf 'Now the script will run automatically every time pacman installs or updates Opera.\n'
break;; break;;
"3" )
dnf install python3-dnf-plugin-post-transaction-actions -y
cp -f $SCRIPT_PATH/scripts/fix-opera.action $INSTALL_PATH
ln -sf $INSTALL_PATH/fix-opera.action /etc/dnf/plugins/post-transaction-actions.d/
printf 'Now the script will run automatically every time dnf installs or updates Opera.\n'
break;;
"0" ) "0" )
printf "Autostart for your Linux distro is currently unsupported\n" printf "Autostart for your Linux distro is currently unsupported\n"
break;; break;;
@@ -51,7 +58,7 @@ create_hook ()
done done
} }
ptintf 'Installing script to your system...\n' printf 'Installing script to your system...\n'
printf 'Would you like to apply Widevine CDM fix? [y/n]' printf 'Would you like to apply Widevine CDM fix? [y/n]'
while read FIX_WIDEVINE; do while read FIX_WIDEVINE; do
@@ -98,7 +105,7 @@ while read CREATE_HOOK; do
"n" | "N") "n" | "N")
break;; break;;
* ) * )
printf "Would you like to create an alias for user $USER_NAME? [y/n]" printf "Would you like to run it automatically after each Opera update?? [y/n]"
continue;; continue;;
esac esac
done done

1
scripts/fix-opera.action Normal file
View File

@@ -0,0 +1 @@
opera-stable:in:/root/.scripts/fix-opera.sh

View File

@@ -39,8 +39,8 @@ readonly OPERA_WIDEVINE_CONFIG="$OPERA_DIR/resources/widevine_config.json"
#Getting download links #Getting download links
printf 'Getting download links...\n' printf 'Getting download links...\n'
##ffmpeg ##ffmpeg
readonly FFMPEG_URL_MAIN=$(wget -qO - $FFMPEG_SRC_MAIN | grep browser_download_url | cut -d '"' -f 4 | grep linux-x64 | head -n 1) #readonly FFMPEG_URL_MAIN=$(wget -qO - $FFMPEG_SRC_MAIN | grep browser_download_url | cut -d '"' -f 4 | grep linux-x64 | head -n 1)
readonly FFMPEG_URL_ALT=$(wget -qO - $FFMPEG_SRC_ALT | grep browser_download_url | cut -d '"' -f 4 | grep linux-x64 | head -n 1) readonly FFMPEG_URL_ALT=$(wget -qO --inet4-only - $FFMPEG_SRC_ALT | grep browser_download_url | cut -d '"' -f 4 | grep linux-x64 | head -n 1)
[[ $(basename $FFMPEG_URL_ALT) < $(basename $FFMPEG_URL_MAIN) ]] && readonly FFMPEG_URL=$FFMPEG_URL_MAIN || readonly FFMPEG_URL=$FFMPEG_URL_ALT [[ $(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 if [[ -z $FFMPEG_URL ]]; then
printf 'Failed to get ffmpeg download URL. Exiting...\n' printf 'Failed to get ffmpeg download URL. Exiting...\n'
@@ -49,7 +49,7 @@ fi
##Widevine ##Widevine
if $FIX_WIDEVINE; then if $FIX_WIDEVINE; then
readonly WIDEVINE_LATEST=`wget -qO - $WIDEVINE_VERSIONS | tail -n1` readonly WIDEVINE_LATEST=`wget -qO --inet4-only - $WIDEVINE_VERSIONS | tail -n1`
readonly WIDEVINE_URL="https://dl.google.com/widevine-cdm/$WIDEVINE_LATEST-linux-x64.zip" readonly WIDEVINE_URL="https://dl.google.com/widevine-cdm/$WIDEVINE_LATEST-linux-x64.zip"
fi fi
@@ -57,14 +57,14 @@ fi
printf 'Downloading files...\n' printf 'Downloading files...\n'
mkdir -p "$TEMP_DIR/opera-fix" mkdir -p "$TEMP_DIR/opera-fix"
##ffmpeg ##ffmpeg
wget -q --show-progress $FFMPEG_URL -O "$TEMP_DIR/opera-fix/ffmpeg.zip" wget -q --inet4-only --show-progress $FFMPEG_URL -O "$TEMP_DIR/opera-fix/ffmpeg.zip"
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
printf 'Failed to download ffmpeg. Check your internet connection or try later\n' printf 'Failed to download ffmpeg. Check your internet connection or try later\n'
exit 1 exit 1
fi fi
##Widevine ##Widevine
if $FIX_WIDEVINE; then if $FIX_WIDEVINE; then
wget -q --show-progress "$WIDEVINE_URL" -O "$TEMP_DIR/opera-fix/widevine.zip" wget -q --inet4-only --show-progress "$WIDEVINE_URL" -O "$TEMP_DIR/opera-fix/widevine.zip"
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
printf 'Failed to download Widevine CDM. Check your internet connection or try later\n' printf 'Failed to download Widevine CDM. Check your internet connection or try later\n'
exit 1 exit 1