Kleine und große Linux AHAs
(x)clip (x)clip hurra: Mediathek Download v2
Viele Kommentare gab es zu “Mediathek Download” (s. Artikel) – auch mit vielen Tipps und Hinweisen. Vielen Dank dafür!!
Einen Verbesserungsvorschlag habe ich nun umgesetzt. Aicke hat vorgeschlagen den Weg für das Einfügen der .asx URL über xclip abzukürzen. Naja, da hat er auch Recht. Warum sollte man die URL erst kopieren und dann einfügen, wenn das eigentlich auch das Script übernehmen kann?!
Die neue Version hat also quasi 3 Modi:
- das Script fragt über einen Dialog nach der URL
- das Script wird über die Kommandozeile mit Parameter die URL gestartet (Debug)
- oder und neu: erst die URL in die Zwischenablage kopieren und dann das Script starten
Sobald sich in der Zwischenablage ein String mit der Endung .asx befindet, startet der Download ohne weitere Interaktion.
#!/bin/bash
#
# Download Script fuer .asx URLs (embedded .wmv)
#
# Download aus der ZDF Mediathek:
# - HTML Version der Mediathek aufrufen
# - Beitrag auswaehlen
# - Windows Media Player Link (DSL 1000 / DSL 2000) kopieren
# - Script aufrufen ... Download startet automatisch
# oder
# - HTML Version der Mediathek aufrufen
# - Beitrag auswaehlen
# - Windows Media Player Link (DSL 1000 / DSL 2000) kopieren
# - den Link als Parameter dem Script uebergeben (debug)
# oder (ohne xclip)
# - HTML Version der Mediathek aufrufen
# - Beitrag auswaehlen
# - Windows Media Player Link (DSL 1000 / DSL 2000) kopieren
# - Script aufrufen und Link einfügen
# - Download starten
#
# Prerequisites:
# - mencoder
# - curl
# - zenitiy
# - .asx URL (linked to a .wmv Stream)
# - xclip (optional)
#
# Ronny Becker, 01.2010
#
# Update: xclip integriert
# Ronny Becker, 05.2010
# grab URL
which xclip >/dev/null 2>&1 && CLIPBOARD="`xclip -o`"
if [[ $CLIPBOARD =~ \.asx ]]
then
URL=$CLIPBOARD
fi
if [ ! $1 ] && [ ! $URL ]; then
URL=`zenity --entry --text "Bitte die URL (.asx) eingeben:" --title "Mediathek Downloader" --width=400`
else
if [ ! $URL ]
then
URL=$1
fi
fi
# check if a URL was entered
if [ ${#URL} -eq 0 ]; then
zenity --error --title "Mediathek Downloader" --text="Keine gueltige URL ($URL)"
exit
fi
# get mms:... out of .asx
URL=`curl -s ${URL} | grep -o "mms:.*\.wmv"`
# get filename from the origin; without .wmv
OUTFILE=`basename $URL | sed 's/\.wmv//'`
# download and save; show progressbar
# if you need debugging, please comment out the progressbar function
# beginning at "| awk ..."; then you get all to console output
if [ $1 ]; then
mencoder -ofps 25 -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd -vf harddup\
-srate 48000 -af lavcresample=48000,volnorm=1\
-lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=15360:vbitrate=15360:keyint=15:acodec=ac3:abitrate=192\
-o "${OUTFILE}.mpg"\
$URL
else
mencoder -ofps 25 -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd -vf harddup\
-srate 48000 -af lavcresample=48000,volnorm=1\
-lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=15360:vbitrate=15360:keyint=15:acodec=ac3:abitrate=192\
-o "${OUTFILE}.mpg"\
$URL 2>&1 | awk -vRS="\r" '$1 ~ /Pos/ {gsub(/Pos:/," ");gsub(/%\)/," ");gsub(/ \(/," ");print $3"\n#Position
\t"$1"\\nFrame
\t"$2"\\nPercentage
\t"$3"%\\nFrame Rate
\t"$4"\\nTime Remaining
\t"$6; fflush();}' | zenity --progress --auto-kill --auto-close
fi
| Artikel drucken | Dieser Beitrag wurde von Ronny am 20. Mai 2010 um 08:11 veröffentlicht und unter bash, Hints, ScriptHints, Ubuntu Desktop, ubuntuusers.de abgelegt. Du kannst allen Antworten zu diesem Beitrag durch RSS 2.0 folgen. Du kannst direkt zum Ende gehen und einen Kommentar hinterlassen. Pings ist momentan nicht möglich. |







vor 1 Jahr
Vielen Dank, nun klappts!
Tolles Skript!
vor 1 Jahr
Hey.
leider funktioniert das skript bei mir nicht. mencoder, curl, xclip, zenity sind installiert. was ist denn .asx URL?
Das Skript nimmt die URL entgegen, gibt die im Terminal aus und beendet sich dann. Was hab ich übersehen?
vor 1 Jahr
Hi,
hab den Fehler gefunden. Da war noch ein “echo $URL; exit” drin – vom debuggen. Das ganze ist nun korrigiert.
Danke fürs Bescheid sagen!