Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # discopolis-rock-sinfonico : descarga los audios de los programas especiales
- # sobre Rock Sinfónico en Discópolis, pero podría
- # adaptarse fácilmente a otros programas de radio
- # de RNE modificando las variables de más abajo...
- # por Rodia en daltonico.net
- httpcli=$(which curl)
- if [ -z "$httpcli" ]; then
- httpcli='wget'
- httpout='-O -'
- httpref='--referer='
- httpopts='-nv'
- else
- httpref='--referer '
- httpopts='-L -s -S'
- fi
- useragent="-A 'Mozilla/5.0'"
- script=$(basename $0)
- server="http://www.rtve.es"
- query='alacarta/interno/contenttable.shtml?pbq=1&modl=TOC&locale=es&pageSize=150&ctx=1936'
- prog_pattern="a href.*[Rr]ock [Ss]inf.nico"
- prog_prefix="Discópolis"
- tmp_file=/tmp/$script.$$
- log_file=$script.log
- prog_list=/tmp/prog_list.$$
- prog_file=/tmp/prog_html.$$
- $httpcli $httpopts $useragent $server/$query $httpout > $tmp_file 2> $log_file
- if [ $? -ne 0 ]; then
- echo "$script: error: no se pudo contactar con $server"
- exit 1
- else
- echo "$script: info: servidor $server contactado..."
- fi
- grep "$prog_pattern" $tmp_file | cut -d'"' -f4 | sort -u > $prog_list
- sed -i '/^$/d' $prog_list
- num_programas=$(wc -l $prog_list | cut -d' ' -f1)
- if [ $num_programas -eq 0 ]; then
- echo "$script: error: no se encontró ningún programa..."
- exit 1
- else
- echo -e "$script: info: encontrados $num_programas programas...\n"
- fi
- while read program
- do
- $httpcli $httpopts $useragent $server$program $httpout > $prog_file \
- 2>>$log_file
- if [ $? -ne 0 ]; then
- echo "$script: error: no se pudo acceder a $program"
- exit 1
- else
- echo "$script: info: accediendo al programa $program..."
- fi
- title=$(grep -m1 '<title>' $prog_file | sed 's/<[^>]*>//g' \
- | cut -d'-' -f2 | sed 's/ \([0-9]\) / 0\1/')
- if [ -z "$title" ]; then
- echo -e "$script: error: no se pudo obtener título de $program\n"
- continue
- else
- echo "$script: info: encontrado título: $title..."
- fi
- audio_file="$prog_prefix-$(echo $title | tr ' ' '_').mp3"
- audio_link=$(grep 'audio_src' $prog_file | cut -d'=' -f3 | cut -d'"' -f2)
- if [ -z "$audio_link" ]; then
- echo -e "$script: error: no se pudo obtener link de audio de $program\n"
- continue
- fi
- if [ -f "$audio_file" ]; then
- echo -e "$script: aviso: ya existe el archivo $audio_file\n"
- sleep 1
- continue
- fi
- echo "$script: info: descargando $audio_link..."
- $httpcli $httpopts $useragent $audio_link $httpout $httpref$server$program \
- > $audio_file 2>> $log_file
- if [ $? -ne 0 ]; then
- echo -e "$script: error: no se pudo descargar $audio_link\n"
- continue
- fi
- echo "$script: info: descargado como $(ls $audio_file)"
- delay=$((RANDOM%7))
- echo -e "\n$script: info: esperando $delay segundo(s)...\n"
- sleep $delay
- done < $prog_list
- exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement