* implement new WidevineCdm extraction from crx3. * fix widevinecdm folder. * use m1k1o/go-crx3.
44 lines
1.2 KiB
Bash
Executable file
44 lines
1.2 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
TARGET_DIR="$(realpath "$1")"
|
|
if [ -z "$TARGET_DIR" ]; then
|
|
echo "Usage: $0 /path/to/install/WidevineCdm"
|
|
exit 1
|
|
fi
|
|
|
|
TMPDIR=$(mktemp -d)
|
|
cd "$TMPDIR"
|
|
|
|
function cleanup {
|
|
rm -rf "$TMPDIR"
|
|
}
|
|
trap cleanup EXIT
|
|
|
|
# Fetch manifest and extract URL
|
|
URL=$(python3 -c "
|
|
import json, urllib.request
|
|
data = json.load(urllib.request.urlopen('https://raw.githubusercontent.com/mozilla/gecko-dev/master/toolkit/content/gmp-sources/widevinecdm.json'))
|
|
for v in data['vendors'].values():
|
|
for k, p in v['platforms'].items():
|
|
if 'Linux_x86_64-gcc3' in k:
|
|
print(p['fileUrl'])
|
|
break
|
|
")
|
|
|
|
# Download CRX
|
|
curl -L -o widevinecdm.crx "$URL"
|
|
|
|
# Install go-crx3
|
|
echo "Fetching latest go-crx3 version..."
|
|
VERSION=$(curl -s https://api.github.com/repos/m1k1o/go-crx3/releases/latest | grep 'tag_name' | cut -d '"' -f4)
|
|
ARTIFACT="go-crx3_${VERSION#v}_linux_amd64.tar.gz"
|
|
URL="https://github.com/m1k1o/go-crx3/releases/download/${VERSION}/${ARTIFACT}"
|
|
echo "Downloading $URL"
|
|
curl -L -o "$ARTIFACT" "$URL"
|
|
tar -xzf "$ARTIFACT"
|
|
|
|
# Unpack with go-crx3
|
|
./go-crx3 unpack widevinecdm.crx
|
|
mkdir -p "$TARGET_DIR"
|
|
cp -ar widevinecdm/* "$TARGET_DIR"
|