Archivo

Entradas Etiquetadas ‘comprimir’

Descárgate KDEMOD3 a tu disco duro! Son los últimos días!

Viernes, 14 de Enero de 2011 Gaspar Fernández Sin comentarios

Kdemod3 me encanta! Y lo tengo instalado en varios ordenadores sobre Arch Linux. El problema es que los repositorios oficiales, foros, etc han desaparecido. Todo ha sido eliminado y la gente de Chackra ha eliminado hasta el último resquicio de Kdemod.
Aunque KDE3 sea cosa del pasado, a mí me sigue gustando y lo sigo viendo mucho más estable que la versión 4.

Pero es difícil encontrar mirrors que sigan teniendo kdemod todavía, aunque aquí van 2:
http://ftp.inf.utfsm.cl/pub/kdemod/kdemod-legacy/
http://ftp.cc.uoc.gr/mirrors/linux/chakra/kdemod-legacy/
http://ftp.cc.uoc.gr/mirrors/linux/chakra/kdemod-legacy/

En esos FTPs hay mucho más, como los últimos kdemod4, por ejemplo.

Aunque ahora, nos tenemos que encargar de descargar todos los archivos de esos repositorios (tal vez queramos instalar kde3 en otro equipo o actualizar algo en los que tenemos actualmente instalados).

Pero cuando los descarguemos todos, tenemos que asegurarnos de que están bien, para ello comprobamos la suma md5 de todos los archivos, y lo suyo es hacer un pequeño script que extraiga la suma de cada archivo y la compruebe (hay varias formas de hacerlo y como soy un poco paranoico, prefiero controlar un poco el proceso antes de decirle a md5sum que lo compruebe todo, tal vez el orden de algún fichero lo líe todo)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/bin/bash

# testpkg
arch="i686"

for i in *
do
# Extraemos la suma del archivo desc
        md5=`sed -n '/%MD5SUM%/ {n;p}' $i/desc`;
# Sacamos la suma del archivo a comprobar, primero miramos en la arquitectura actual, $arch, y luego en any (hay archivos multiplataforma)
        if [ -r "../$i-$arch.pkg.tar.gz" ]
        then
                sum="`md5sum ../$i-$arch.pkg.tar.gz | cut -d\" \" -f1`";
        else
                if [ -r "../$i-any.pkg.tar.gz" ]
                then
                        sum="`md5sum ../$i-any.pkg.tar.gz | cut -d\" \" -f1`"
                else
# Si no tenemos suma, el archivo no lo hemos encontrado
                        echo $i" NO ENCONTRADO";
                fi
        fi

# Una vez con todos los datos, comprobamos la suma obtenida con lo que debe dar
        if [ "$md5" != "$sum" ];
        then
# Pongo un mensaje largo, para que se vea a primera vista
                echo $i" IIIIIIIIIINCORRECTO";
#       else
#               echo $i" CORRECTO";
        fi;
done

Con esto podemos comprobar todos los archivos de una arquitectura a la vez.

En estos repositorios puede que haya algún archivo que no coincida su suma md5 con lo que debe dar, bien, podemos asegurarnos de que el archivo es bueno y cambiar la suma en el archivo desc, luego comprimirlo todo en kdemod-legacy.db.tar.gz.

Categories: Linux, kde Tags: , , , , ,

Descargar automáticamente todos los programas de Redes

Domingo, 9 de Mayo de 2010 Gaspar Fernández Sin comentarios

neuron
Apenas veo la televisión, pero hay ciertos programas que son interesantes y merecen la pena como Redes. Y tampoco me gusta verlos desde la web ya que Flash es muy lento, y me gusta tener lo que veo echar hacia atrás y hacia alante (como hace mplayer) y verlo cómodamente.

Para ello, lo más cómodo es descargarlos, pero cómo descargarlos si tengo que bajarlos uno a uno (y son muchos), y tengo que mirar dónde está el archivo de vídeo (lo primero que nos podemos bajar a mano es una archivo de metadatos que nos dirá dónde está el vídeo), es una tarea muy lenta para hacerla a mano. ¿ Por qué no automatizar el proceso ?

Vemos que desde la web de Redes para la Ciencia nos podemos descargar los programas desde 2008 (lástima que los anteriores no estén disponibles en vídeo desde esta web), y éstos están alojados en Smartplanet (blip.tv). Con estos datos, he confeccionado este script (aún en beta, no es muy estable, ni está optimizado, pero nos hace el apaño).

Si observamos los pasos intermedios de este script, y vemos el fichero de metadatos por dentro, veremos cómo podemos ver más información, descargar el archivo en mov o mp4 (a gusto del consumidor), también encontramos un resumen del programa; os invito a hacer pruebas y comentarlas en este post.

Una posible mejora a corto plazo, sería poner en orden la variable get_years y que, si descubre que varios capítulos han sido descargados, no intente bajar más (a la hora de descargar el último capítulo también con el script), o incluso almacenar en un archivo el número del último capítulo descargado, para así buscar el siguiente en la siguiente ejecución… todo se andará; por ahora, os dejo el script así, que con un poco de cuidado funciona bien.

Y otra cosa más, con un poco de suerte, para el año que viene, sólo tendremos que añadir a la variable get_years el link del blog con los enlaces a los capítulos del año 2011.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#/bin/bash

get_years="http://www.redesparalaciencia.com/programas-2009 http://www.redesparalaciencia.com/programas-de-2008 http://www.redesparalaciencia.com/programas-2010"

for i in $get_years
do
    echo Descargando $i ...
    wget -q -O /tmp/listado_year $i
    echo Descargado
    # Hay algunas URLS que salen con ../
    caps_year=`cat /tmp/listado_year | grep 'href' | grep '>Redes [0-9]' | sed -e 's/\.\.\//http:\/\/www\.redesparalaciencia\.com\//g' -n -e 's/\(.*\)href=\"\([^\"]*\)\"\(.*\)/\2/p'`
#   caps_year=`cat /tmp/listado_year | grep 'href' | grep '>Redes [0-9]' | grep -o '"http://[a-zA-Z0-9.\/\-]*"' | cut -d\" -f2`
    for j in $caps_year
    do
        echo Descargando metadatos del episodio...
        wget -q -O /tmp/episodio $j
        episodio=`grep -o 'http://blip.tv/rss/flash/[0-9]*' /tmp/episodio`
        wget -O /tmp/metadatos $episodio
        echo Metadatos descargados
        video=`awk -F "\"" '/media\:content/ {print $2}' /tmp/metadatos | grep flv`
        titulo=`sed -n 's/<media:title>\(.*\)<\/media:title>/\1/p' /tmp/metadatos`
        if [ -r "$titulo.avi" ] || [ -r "$titulo.flv" ]
            then
            echo "Episodio $titulo ya existe. Descartando."
        else
            echo "Descargando episodio... $titulo"
# Podemos quitar el -q para ver cómo va la descarga.
            wget -q -O "$titulo.flv" $video
            echo "Recomprimiendo episodio..."
            ffmpeg -i "$titulo.flv" -vcodec msmpeg4v2 -b 1200k -acodec mp2 -ab 128k "$titulo.avi"
        fi
    done
done

Requerimientos: wget, sed, awk, ffmpeg (si queréis recomprimir los programas) y algunos gigas libres de disco duro (unos 20 o así si queremos recomprimir).

Notas:

  • La compresión no está muy optimizada, tal vez comprimamos con más bitrate del que debemos, pero bueno. Si no queremos comprimir, basta con comentar la línea de ffmpeg, aunque si queremos verlo en algún reproductor debemos dejarla. El codec de audio (acodec), es mp2, ya que el mp3 no me funcionaba bien, libmp3lame debe estar instalado y ffmpeg compilado con soporte para él, aún así, probad antes).
  • Soy consciente de que hay demasiado sed, awk y scripts de sobra, pero fue un script rápido y tampoco importa mucho el tiempo que pasemos parseando los metadatos.
  • No hay control de errores, si falla algo y el script se vuelve loco… yo no garantizo nada :)
  • Por ahora, si un archivo no se baja del todo, debemos eliminarlo para que se baje de nuevo por completo.

Espero que disfrutéis del programa.

Foto: MikaNet (Flickr)

Visita otras webs de la red