youtube-dl-agent laedt eine liste von youtube-videos mit youtube-dl runter, konvertiert sie mit ffmpeg und fuegt sie mit mencoder zusammen. gedacht fuer splited youtube-videos.
usage:
$ youtube-dl-agent http://www.youtube.com/watch?v=Qpwj5k0zYDs \ http://www.youtube.com/watch?v=XCyXY4jLxo8 \ http://www.youtube.com/watch?v=BwJUV8vvGyA \ http://www.youtube.com/watch?v=xQuyiMravE4 \ --output="Weimar nach der Wende.avi"
#!/bin/bash case "$1" in "" ) exit $E_PARAM ; ;; * ) TEMPPATH=$PWD"/youtube-dl-agent.swap/"; mkdir $TEMPPATH; cd $TEMPPATH; for i in "$@" do case "$i" in http://* ) URL=`echo $i`; echo " * * * "$URL" * * *"; ### # DOWNLOAD FLV WITH YOUTUBE-DL /usr/local/bin/youtube-dl -t $URL ### # FIND DOWNLOADED FLV FILE BY ID ID=`echo $URL | /bin/sed -r 's/.*v=(.*)$/\1/'`; # echo $ID; IDS=$IDS$ID" "; FLV=`/usr/bin/find $PWD"/" -maxdepth 1 -name "*$ID.flv"`; # echo $FLV; FLVS=$FLVS$FLV" "; ### # COVERT FLV TO AVI /usr/bin/ffmpeg -i $FLV -vcodec copy \ -acodec libmp3lame -ab 128k $FLV".avi" AVI=`/usr/bin/find $PWD"/" -maxdepth 1 \ -name "*$ID*.avi"`; # echo $AVI AVIS=$AVIS$AVI" "; ;; # STRINGS WITH WHITESPACES HAVE TO BE # ENCAPSULATE WITH DOUBLE QUOTES --output=* ) OUTPUT=`echo $i | sed 's/--output=//'`; ;; * ) exit $E_PARAM ; ;; esac done ;; esac ### # MERGE SPLIT AVIS /usr/bin/mencoder -ovc copy -oac copy $AVIS -o $OUTPUT ### # MOVE FROM TEMP-DIR TO $USERS PWD /bin/mv -v $OUTPUT .. ### # CLEAN UP /bin/rm -rv $TEMPPATH exit 0
sehr schick.
eine sache fehlt imho noch: eine playlist angeben und er sammelt sich die videos selbst raus.
geht per YT API: http://code.google.com/intl/de-DE/apis/youtube/2.0/developers_guide_protocol.html#Playlists
jo ich weis. aber das war mir erstmal wichtiger dass das geht. da muss ich eh noch bisschen interface drumrum bauen, damit fehler und so abgefangen werden.
mir faellt auch grad auf dass man nicht sicher sein kann das die videos einheitliche fps haben, worauf aber mencoder angewiesen ist. urgs, jetz muss ich den mist grepen und neucodieren? w00t?!
ich ueberleg gerade ernsthaft, ob dies der auschlag gebende moment ist in dem ich python lerne. zumindest was ich im youtube-dl gelesen hat ist das schon recht nett und command line argument parsen ist ja mal hoechst edel.