Script per scaricare tutto:
Codice:
#!/bin/bash
#Script per il recupero dei file *.ra della trasmissione radiofonica "Alle otto della sera"
#Organizzazione dati sui server:
# - Indici generali: ogni pagina contiene max 10 link ad altrettante serie di puntate
# - Indici serie: ogni indice di serie contiene link a file *.ram, uno per puntata
# - File *.ram: contengono praticamente solo del testo, cioè il link allo stream .*ra
#cartella di lavoro
mkdir -p alle8dellasera
cd alle8dellasera
COUNTER=1
while [ $COUNTER -lt 14 ]; do
INDEX_ALLEOTTO="alleottodellasera$COUNTER.cfm"
#recupero indici generali
wget -O - "http://www.radio.rai.it/radio2/alleottodellasera.cfm?PageNum_Get_tipologie=$COUNTER" > $INDEX_ALLEOTTO
#estraggo i link alle serie di puntate
LINKS=`cat $INDEX_ALLEOTTO | sed -e '/href=\"http:\/\/www.radio.rai.it\/radio2\/alleotto\//!d' -e 's/.*href=[^h]*//' -e 's/".*$//' | uniq | sort`
#creo cartelle di lavoro numerate, una per serie
if [[ ! -d "serie$COUNTER" ]]; then
mkdir "serie$COUNTER"
fi
NR_INDEX=1
for serie in $LINKS; do
echo $serie
#recupero indici serie
wget -q -O - $serie > "serie$COUNTER/index$NR_INDEX.htm"
#estraggo i link ai file *.ram
RAMS=`cat "serie$COUNTER/index$NR_INDEX.htm" | sed -e '/Q_CANALE=http:\/\/www.radio.rai.it\/\/radio2\/alleotto\//!d' -e 's/.*Q_CANALE=[^h]*//' -e 's/.ram.,.*$/.ram/' | uniq | sort`
for ram in $RAMS; do
#recupero l'indirizzo dello stream *.ra
STREAM=`wget -q -O - $ram`
#pulizia necessaria...
STREAM=`echo $STREAM | sed -e 's/.*rtsp:\/\/*/rtsp:\/\//' -e 's/.ra[^[:print:]]*$/.ra/'`
#alcuni sono rappresentati come stream pnm -> li forzo ad rtsp
STREAM=`echo $STREAM | sed -e 's/.*pnm:\/\/*/rtsp:\/\//'`
#suddivido i file per serie: estraggo i nomi necessari
FILENAME=`echo $STREAM | sed -e 's/.*\///'`
SERIENAME=`echo $STREAM | sed -e 's/\/[^\/]*$//' -e 's/.*\///'`
#creazione cartelle serie
if [[ ! -d "../$SERIENAME" ]]; then
mkdir "../$SERIENAME"
fi
if [[ ! -f "../$SERIENAME/$FILENAME" ]]; then
#se il file non esiste procedo con il download
echo -e "\nIn download: $SERIENAME/$FILENAME = $STREAM"
if ! mplayer -prefer-ipv4 -noframedrop -dumpfile ../$SERIENAME/$FILENAME -dumpstream $STREAM ; then
echo -e "\n\nERROR! $STREAM -> $SERIENAME/$FILENAME\n\n"
exit 1
fi
else
#il file esiste già.
#Due casi possibili:
# - è già stato scaricato in un'esecuzione precedente
# - è stato solamente iniziato ed è incompleto...
# QUESTO SCRIPT NON SI ACCORGE DI AVENTUALI FILE INCOMPLETI E NON LI SCARICA PIU'
echo -e "\nGià scaricato o interrotto: $SERIENAME/$FILENAME = $STREAM\n"
fi
done
let NR_INDEX=NR_INDEX+1
done
let COUNTER=COUNTER+1
done
#Gimli
Scarica solo i file *.ra, non ho controllato per fare eventuali conversioni di formato.
Non ho idea di quanti file/dati e quanto tempo possa occorrere per un dump completo... (probabilmente proverò ad eseguirlo nel week-end).
Ho letto che stanno per chiuderla questa trasmissione? Un paio d'anni fa avevo orari che mi permettevano di seguirla ed era molto interessante.