piccolo script per vedere tutti i video di determinati canali di youtube
ho realizzato questo script per una mia esigenza.
mi serviva poter seguire delle video guide dal canale del muflone e di NiktortheNat, e se li visualizzavo con il browser a tutto schermo, dopo un po’, come tutti gli utilizzatori di Gnu/Linux sanno, mi esplodeva il pc
.
allora ho realizzato questo script (potete scaricarlo da qui: http://paste.ubuntu.com/576051/)
Lo script dipende da VLC e da youtube-dl che dovete scaricare da qui:
http://www.megaupload.com/?d=NPE4Z85R o da qui: http://www.box.net/shared/8u2minhh3g
lo si installa estraendolo in /usr/bin (se avete già un youtube-dl installato rinominatelo youtube-dl.old) e poi estraete il “mio” youtube-dl in /usr/bin
altrimenti non funziona con la versione originale di youtube-dl
potete aggiungere tutti i canali che volete, basta mettere quando richiesto il nome del canale.
script:
##################
#!/bin/bash -x
#programma per visualizzare tutti i video dei canali di youtube :
#canali di esempio
#+ nome da aggiungere: NiktorTheNat
#sito: http://tanadelpitone.tk/
#il Muflone
#nome da aggiungere: muflube
#+http://ubuntrucchi.wordpress.com/
# script realizzato da c.realkiller
# email <dino.tartaro@gmail.com>
# nome da aggiungere (per il mio canale): dino1tartaro
#sito: http://tdinox.wordpress.com/
# dipendenze VLC media player 1.1. => , youtube-dl (che dovete scaricare da qui: http://www.megaupload.com/?d=NPE4Z85R altrimenti non funziona)
#puoi registrare il video che stai vedendo andando su VLC > visualizza > controlli aggiuntivi > e spuntare la casella
#apparirà il pulsante rosso REC sopra al pulsante Play
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DIR=$HOME/.getlink
if [ ! -d "$DIR" ]; then
mkdir -p "$DIR"
fi
cd $DIR
if [ -e .getlink.tmp ]; then
rm -f .getlink.tmp
fi
zenity --entry --title="getlink" --text="Vuoi aggiungere un canale?" >> .name.db
CH=`cat .name.db`
Channel=`zenity --list --height=200 --width=150 --title=getlink --text="Scegli il canale da vedere" --column="Seleziona" $CH`
if [ $? = 1 ]; then
exit 0
fi
TotVid=`wget "http://m.youtube.com/profile?gl=IT&client=mv-google&hl=it&user=$Channel&view=videos&p=1" -O - | grep -o "Video ([^)]*" | sed 's/Video (//g'`
let "PageN = $TotVid / 10"
PageN=$(($PageN + 1))
let "INC = 100 / $PageN"
(for i in `seq 1 $PageN`; do
wget "http://m.youtube.com/profile?gl=IT&client=mv-google&hl=it&user=$Channel&view=videos&p=$i" -O - 2>/dev/null | grep \
-o '&v=[^*]*' | sort \
-u | awk -F\; '{print $NF}' | sed \
-e 's#"># #g'\
-e 's#</a>##g' \
-e 's#" />##g' \
-e '/^$/d' \
-e 's#^#http://www.youtube.com/watch?#g' \
-e 's#^#"#;s#$#"#;s# #"\n"#' \
-e 's# #-#g' >> .getlink.tmp &
sleep 0.4
let "COUNT= $INC * $i"
echo "$COUNT" | awk -F \. '{print $1}'
done) | zenity --progress --title="getlink" --text="Download LInk..." --auto-close --auto-kill
sleep 3
Sel=`cat .getlink.tmp`
while (true); do
Link=`zenity --list --height=500 --width=550 --title="getlink" --text="Clicca sull'URL sopra al video scelto" --column="Seleziona" $Sel | grep -o "http://www.youtube.com/watch?v=[^<]*"`
if [ $? = 1 ]; then
exit 0
fi
Title=`youtube-dl -e $Link`
youtube-dl $Link -o "$Title" &
(for n in `seq 1 10`; do
let "t= $n * 10"
sleep 1
echo $t
done ) | zenity --progress --title="getlink" --text="Buffering..." --auto-close --auto-kill
if [ $? = 1 ]; then
break
fi
vlc "$Title"
kill `ps aux | grep youtube-dl | grep -v grep | awk '{print $2}'`
zenity --question --title="getlink" --text="Vuoi conservare il video?"
if [ $? = 1 ]; then
rm -f "$Title"
else
mv "$Title" ~/
zenity --info --title="getlink" --text="Video salvato in $HOME"
fi
done
exit 0










Ciao,se voglia eliminare i canali che ho aggiunto come si fa….grazie e complimenti per la funzionalità dello script
per adesso l’unico modo è di aprire il file .name.db con gedit (o l’editor che vuoi) e cancellare il nome del canale che vuoi eliminare.
il file si trova nella cartella nascosta .getlink che è nella Home dell’utente usato.
e cancelli quello che vuoi.
ciao!
Ciao,ho provato l’aggiornamento dello script,ma ho un problema vlc si apre ma non riproduce ecco output del terminale http://paste.ubuntu.com/576085/
non hai letto bene il mio post sul blog, ho scritto di installare youtube-dl scaricato da dove ho indicato nel post.
lo installi copiandolo in /usr/bin (se hai già installa youtube-dl, rinominalo in youtube-dl.old e poi copia il “mio” youtube-dl al suo posto)
scaricalo da qui:
http://www.box.net/shared/8u2minhh3g
se ti da problemi sostituisci lo shabeng (la prima riga dello script youtube-dl) con questa:
#!/usr/bin/env pythonCiao, dove ti possiamo contattare?
in merito a? comunque: dino DOT tartaro AT gmail DOT com
Grazie della disponibilita’! Avevamo un problema con un sito su wordpress e vedendo il tuo ottimo sito (gia’ nei Nostri bookmarks!) abbiamo pensato di contatarti. Ma abbiamo risolto velocemente. Ti ringraziamo davvero.
Un saluto