sábado 9 de abril de 2011

Script de descarga de videos en Bash

Qué tal amigos!

Pues primero que nada, mil disculpas por no haber publicado nada en este tiempo, me encontraba en proceso de desarrollo y he aquí yo para compartirles nuevos temas.

Investigando un poco sobre cómo descargar videos de youtube o de alguna otra fuente, descifré la forma de  lograrlo a través de terminal. A partir de ello me puse en la tarea de elaborar un script de bash para  llevarlo a cabo.

Antes de ejecutar el script, es necesario que se tenga abierta la pagina de donde esta el video y esperar a que se cargue por completo, de otra forma sólo se descargará lo que actualmente se haya cargado.

Realizado lo anterior, asta con abrir una terminal y ejecutar: sh nombre_archivo.sh, seguir las instrucciones y listo!

El código es el siguiente:


#!/bin/bash
clear

while [ opc != "" ] || [ opc != "c" ] || [ opc != "i" ]

do
echo "** Descarga de videos ** Hecho por  Alexis Hernandez \n"
echo -n "Escriba 'i' para obtener informacion o 'c' para continuar: "
read opc


if [ "$opc" = "i" ]; then
echo "\n- Se ejecutara el comando lsof | grep Flash para buscar los procesos que esten utilizando Flash."
echo "- Dicho proceso durara un tiempo considerable, sea paciente."
echo "- Se arrojara un mensaje como en el siguiente ejemplo:"

echo "\nchrome    2205     user   29r      REG        8,4 14337439     655373 /tmp/FlashXXg7HIFi (deleted)
"
echo "\n - Dado este dato se debe proprionar a est aplicacion el numero de 4 digitos (el segundo parametro) y el numero que se encuentra despues del nombre de usuario (el cuarto parametro sin la letra final 'r')"

echo -n "\n> Presione [ENTER] para continuar"
read l

echo "\nEjecutando comando, esto tardara varios minutos..."

lsof | grep Flash

echo -n "Escriba el numero segundo parametro dado: "
read segundo
echo -n "Escriba el cuarto parametro dado (sin la letra final): "
read cuarto
echo -n "Escriba la ruta (y nombre de archivo) donde desea copiar el video: "
read directory

cp /proc/$segundo/fd/$cuarto $directory
echo "Archivo copiado correctamente"

elif [ "$opc" = "c" ]; then
echo "\nEjecutando comando, esto tardara varios minutos..."
lsof | grep Flash
echo -n "Escriba el numero segundo parametro dado: "
read segundo
echo -n "Escriba el cuarto parametro dado: "
read cuarto
echo -n "Escriba la ruta (y nombre de archivo) donde desea copiar el video: "
read directory
cp /proc/$segundo/fd/$cuarto $directory
echo "Archivo copiado correctamente"
  exit
else
echo "Opcion incorrecta, vuelva a intentar, presione [ENTER] para continuar"
read x
clear
fi
done