#!/bin/bash
HALUTTURESOLUUTIO="240" #240|360|540|720|1080|1440|2160
HALUTTUAUDIO="audio-medium" # audio-medium TAI audio-high
if [ -z "$*" ]; then
echo "Anna ladattavan sivun osoite. Esimerkiksi:"
echo "$0 https://elonet.finna.fi/Record/kavi.elonet_elokuva_107833"
exit
fi
tiedostonimi=$(echo "$*"|rev|cut -d '/' -f1|rev).mp4
wget "$*" -O /tmp/o 2>/dev/null
raakaurl=$(cat /tmp/o |grep -oP '(?<=data-link=").*?(?=" title)')
url=$(echo "$raakaurl"|perl -MHTML::Entities -pe 'decode_entities($_);') #|sed 's/","type.*//'|tr -d '\')
echo URL: $url
wget "$url" -O /tmp/tmp.m3u8 2>/dev/null
audiourl=$(cat /tmp/tmp.m3u8 |grep 'GROUP-ID'|grep $HALUTTUAUDIO |sed 's/^.*http/http/'|sed 's/.$//')
videourl=$(cat /tmp/tmp.m3u8 |grep -E "RESOLUTION.*x$HALUTTURESOLUUTIO*" -A1|tail -n1)
echo Ladataan video...
youtube-dl "$videourl" -o video.mp4
echo Ladataan audio...
youtube-dl "$audiourl" -o audio.mp4
echo Yhdistetään raidat
ffmpeg -i video.mp4 -i audio.mp4 -c:v copy -c:a copy $tiedostonimi
echo valmis!
Tuollainen pikainen purkka-ratkaisu. Toimii Elonetin pitkiin elokuviin, lyhytelokuviin ei.
Vois ton varmaan nätimminkin hoitaa
HALUTTURESOLUUTIO -riviä kannattaa muuttaa, jos haluaa paremmalla laadulla.