Script para bajar vídeos de BahnTV

Este script de bash sirve para bajar vídeos de la BahnTV http://www.bahntv-online.de/

funciona de la forma ./script.sh url_con_los_& escapados si no se escapan los & como \& no funciona porque bash se cree que son dos ficheros diferentes.

En resumen:

– Este script baja vídeos wmv desde un servidor raro por protocolo mms, y luego una vez bajados los convierte a mpeg que es menos privativo.

Programas necesarios:

  • bash
  • wget
  • awk
  • tr
  • mimms (sudo apt-get install mimms)
  • ffmpeg (sudo apt-get install ffmpeg)

Si alguien le ve una utilidad o alguna mejora que lo diga;
Boas noites

#!/bin/bash
# script para bajar los vídeos de la BahnTV dada una url
# Andrés Ignacio Martínez Soto
# si el usuario no ha introducido una url con los ampersands escapados (si no, peta)
if [ $# -ne 2 ]
then
echo "Uso: $0 url fichero_salida"
exit 1
fi
# el usuario ha introducido una url que está en argv[1]
echo "La url a bajar es $1 y el fichero donde se va a guardar es $2"
URL=$1
fsalida=$2

# guardamos la página de la bahntv en pagina.bahn y luego buscamos el fichero asx
`wget "$URL" -O pagina.bahn`
# buscamos el fichero asx
file=$(cat pagina.bahn | awk -F = '/src/ {print $2 }' | grep 'asx')
# como es una ruta relativa, le anyadimos el path entero
fileasx=${file/../ http://www.bahntv-online.de/btvo}
# eliminamos los espacios en blanco que pudiese tener la URL
fileasx=$(echo $fileasx | tr -d "\"" )
# se baja el fichero asx que contiene links a las url del tipo mms
`wget $fileasx -O ficheroasx.bahn`
# buscamos la url mms
mmsfile=$(cat ficheroasx.bahn | awk '/mms/ {print $4}')
# eliminamos posibles espacios en esa url
mmsfile=$(echo $mmsfile | tr -d "\"" )
# utilizamos mimms para bajarnos el vídeo correspondiente

if [ -f $2 ]
then
echo " $fsalida ya existe"
echo "Dame otro nombre de fichero: "
read fsalida
echo "¿Estás seguro de querer guardar el vídeo en $fsalida ? (S/N)"
op=""
read op
if [$op="N" ]
then
echo "Abortando el programa"
exit 1
fi
if [ $op="S" ]
then
echo "Se va a guardar el vídeo en $fsalida "
fi
fi
mimms $mmsfile $fsalida

# y luego como wmv es un formato muy privativo, lo convertimos a un mpeg con tamaño de videocd
ffmpeg $fsalida -target pal-vcd $fsalida.mpeg
# borramos los ficheros gastados
rm pagina.bahn ficheroasx.bahn $fsalida

pd: Esto demuestra que tengo bien aprendido Bash, AWK y otros amiguetes … que me entran el jueves 31 en el examen de SOP… ¿lo sacaremos con nota?

One Response to Script para bajar vídeos de BahnTV

  1. klondike escrigué:

    Una mejora, estas dos lineas:
    # guardamos la página de la bahntv en pagina.bahn y luego buscamos el fichero asx
    `wget “$URL” -O pagina.bahn`
    # buscamos el fichero asx
    file=$(cat pagina.bahn | awk -F = ‘/src/ {print $2 }’ | grep ‘asx’)

    Las puedes cambiar por esto:
    # Descargamos la página de la bahntv y le pasamos eso a awk para buscar el fichero asx
    file=$(wget “$URL” -O- | awk -F = ‘/src/ {print $2 }’ | grep ‘asx’)

    También se que el awk se puede mejorar para evitar la llamada a grep ¿Tal vez con expresiones regulares? pero no recuerdo la manera xD

Deixa un comentari

Fill in your details below or click an icon to log in:

WordPress.com Logo

Esteu comentant fent servir el compte WordPress.com. Log Out / Canvia )

Twitter picture

Esteu comentant fent servir el compte Twitter. Log Out / Canvia )

Facebook photo

Esteu comentant fent servir el compte Facebook. Log Out / Canvia )

Google+ photo

Esteu comentant fent servir el compte Google+. Log Out / Canvia )

Connecting to %s

%d bloggers like this: