Seitdem die Website der Lindenstraße im November 2015 erneuert wurde, ist es schwieriger geworden, die Lindenstraße Folgen als video herunterzuladen. Früher konnte man die URL direkt zu den Videodateien im .flv Format rein aus der Nummer der Folge ermitteln. Nun geht das nicht mehr, und statt dessen muß man mehrere Websseiten und ein Java Skript parsen, um an die URL der Videodatei (nun im .mp4 Format) zu gelangen.
Dieses Shell Script is für Linux und andere Un*x-like Betriebssysteme. Für Windoof User: Neuerdings gibt es unter Windows 10 eine Linux Bash Shell. Das Shell Script läuft womöglich damit auch unter Windows, allerdings wurde dies bislang noch nicht getestet. Ansonsten kann man das Skript auch unter cygwin laufen lassen.
Die "savepath" variable könnt Ihr nach Bedarf anpassen (insbesondere bei Aufruf aus einer crontab). Ansonsten wird die Folge ins aktuelle Verzeichnis mit dem Prefix "lindenstrasse" gespeichert.
Die Option -q oder --quiet unterdrückt die Ausgabe (sinnvol für Aufrufe aus einer crontab)
#!/bin/sh
base_url="http://www1.wdr.de"
index=$base_url"/daserste/lindenstrasse/videos/index.html"
savepath="lindenstrasse"
# Set resolution default value (first resolution in url)
resol=1
usage () {
echo "Usage: $0 [-q] [--res=N]" >&2
exit 1;
}
err () {
echo "wget or parse error" >&2
exit 1;
}
while [ "$1" != "" ]; do
PARAM=`echo $1 | awk -F= '{print $1}'`
VALUE=`echo $1 | awk -F= '{print $2}'`
case $PARAM in
-h | --help)
usage
;;
-q | --quiet)
qarg="-q"
;;
--res)
resol=$VALUE
case $resol in
''|*[!1-3])
echo "ERROR: Resolution must be a number between 1 and 3"
usage
;;
esac
;;
*)
usage
;;
esac
shift
done
href_tag=$(wget $qarg -O - $index | grep -A8 -m1 "vor 15 Jahren" | tr -d "\n") || err
url=$base_url$(echo $href_tag | sed 's/.*<a href="\(.*html\).*/\1/') || err
href_tag=$(wget $qarg -O - $url | grep -C0 -m1 "Folge " | tr -d "\n") || err
folge=$(echo $href_tag | sed 's/.*Folge \([0-9]*\).*/\1/') || err
url=$(wget $qarg -O - $url | grep -o 'data-extension.*}}' | grep -o 'http:.*\.js') || err
resol=$(expr ${resol} + 1 )
url=$(wget $qarg -O - $url | grep -o '"dflt":{"videoURL".*}' | grep -o 'http:.*\.mp4' | cut -d',' -f1,1,${resol},6) || err
url=$(echo ${url} | grep -o 'http:.*\.mp4' | tr -d ',' | sed 's/adaptiv/ondemand-ww/' | sed 's#z/##' | sed 's#ww/##') || err
if ! [ "$qarg" == "-q" ]; then
echo "Downloading Folge $folge"
fi
wget $qarg -O ${savepath}${folge}.mp4 $url || err
base_url="http://www1.wdr.de"
index=$base_url"/daserste/lindenstrasse/videos/index.html"
savepath="lindenstrasse"
# Set resolution default value (first resolution in url)
resol=1
usage () {
echo "Usage: $0 [-q] [--res=N]" >&2
exit 1;
}
err () {
echo "wget or parse error" >&2
exit 1;
}
while [ "$1" != "" ]; do
PARAM=`echo $1 | awk -F= '{print $1}'`
VALUE=`echo $1 | awk -F= '{print $2}'`
case $PARAM in
-h | --help)
usage
;;
-q | --quiet)
qarg="-q"
;;
--res)
resol=$VALUE
case $resol in
''|*[!1-3])
echo "ERROR: Resolution must be a number between 1 and 3"
usage
;;
esac
;;
*)
usage
;;
esac
shift
done
href_tag=$(wget $qarg -O - $index | grep -A8 -m1 "vor 15 Jahren" | tr -d "\n") || err
url=$base_url$(echo $href_tag | sed 's/.*<a href="\(.*html\).*/\1/') || err
href_tag=$(wget $qarg -O - $url | grep -C0 -m1 "Folge " | tr -d "\n") || err
folge=$(echo $href_tag | sed 's/.*Folge \([0-9]*\).*/\1/') || err
url=$(wget $qarg -O - $url | grep -o 'data-extension.*}}' | grep -o 'http:.*\.js') || err
resol=$(expr ${resol} + 1 )
url=$(wget $qarg -O - $url | grep -o '"dflt":{"videoURL".*}' | grep -o 'http:.*\.mp4' | cut -d',' -f1,1,${resol},6) || err
url=$(echo ${url} | grep -o 'http:.*\.mp4' | tr -d ',' | sed 's/adaptiv/ondemand-ww/' | sed 's#z/##' | sed 's#ww/##') || err
if ! [ "$qarg" == "-q" ]; then
echo "Downloading Folge $folge"
fi
wget $qarg -O ${savepath}${folge}.mp4 $url || err