#vidxtract.sh:
#-------------------------------------------------------------------------------------------------------------------------------------------
#/bin/bash
######################################################
#
# Autor: Jose Ramon Lambea
# Fecha 27-10-2007
#
# v 0.10.15
#
##[Licencia]
# Esta obra está bajo una licencia Reconocimiento-No
# comercial-Compartir bajo la misma licencia 2.5 España
# de Creative Commons. Para ver una copia de esta
# licencia, visite
# http://creativecommons.org/licenses/by-nc-sa/2.5/es/
# o envie una carta a Creative Commons, 171 Second
# Street, Suite 300, San Francisco, California 94105, USA.
#
##[Compatibilidad]
# Compatible con:
# 251007 Stage6
# TimTube
# Gexo
# UpBloggerX
# XVideos
# 261007 YouTube
# MetaCafe
# 271007 DailyMotion
# SexSube
# HaPorn
# ImgDownload
# Shufuni
# GoEar!
# SecretXXXVideo
# FreeViewMovies
# HardcorePornTube
##[Changelog]
# 271007 Añadida función de convertir en caso
# de descargar un FLV.
# Fix para modo de descarga por lista.
# Cambio de estructuración del código.
######################################################
. ./vidxtract.lib
####################
#
# Limpieza de la pantalla
#
####################
clear
####################
#
# Comprobamos que haya algún argumento
#
####################
if [[ -z $1 ]]
then
echo "Error: No hay URL de entrada"
exit 1
fi
####################
#
# Comprobamos el flag -config
#
####################
if [[ $1 == "-config" ]]
then
configurar
fi
cargar_conf
####################
#
# Comprobamos el flag -f
#
####################
if [[ $1 == "-f" && $# == "2" ]]
then
echo "Modo lista Activado"
LISTA="$2"
echo
echo "Se descargarán los ficheros de $LISTA"
for URL in $(cat $LISTA)
do
FILE=$( expr $FILE + 1 )
# Descargamos URL
echo "1.-Descargando..."
wget -nv "$URL" -O "$FILE"
echo "2.-Analizando fichero"
analizar
#Descargamos fichero
echo "3.-Descargando video"
echo "$VIDEO"
wget -nv "$VIDEO" -rO "$FILE"
echo "Fichero descargado"
#Examinando formato y convirtiendo si es necesario
echo "Examinando formato y convirtiendo si es necesario"
convertir
done
else
URL="$1"
# Descargamos URL
echo "1.-Descargando..."
wget -nv "$URL" -O "$FILE"
echo "2.-Analizando fichero"
analizar
#Descargamos fichero
echo "3.-Descargando video"
echo "$VIDEO"
wget -nv "$VIDEO" -rO "$FILE"
echo "Fichero descargado"
#Examinando formato y convirtiendo si es necesario
echo "Examinando formato y convirtiendo si es necesario"
convertir
fi
#vidxtract.lib:
#-------------------------------------------------------------------------------------------------------------------------------------------
####################
#
# Función para saber que acciones tomar según que servidor se introduce
#
####################
function analizar
{
if [[ $(echo "$URL" | grep -i "stage6[.]divx[.]com" ) ]]
then
VIDEO=$(cat "$FILE" | tr ';' '\n' | grep "[0-9]/[.]divx" | head -1 | sed 's/\&.*$//' )
elif [[ $(echo "$URL" | grep -i "timtube[.]com" ) ]]
then
VIDEO=$(cat "$FILE" | tr '=' '\n' | grep "[0-9][.]flv" | head -1 | sed 's/\&.*$//' )
elif [[ $(echo "$URL" | grep -i "gexo[.]com" ) ]]
then
VIDEO=$(cat "$FILE" | tr "\'" '\n' | grep "[.]flv" | head -1 | sed 's/\&.*$//' )
elif [[ $(echo "$URL" | grep -i "hardcoreporntube[.]com" ) ]]
then
VIDEO=$(cat "$FILE" | tr '"' '\n' | grep "[.]flv" | head -1 )
elif [[ $(echo "$URL" | grep -i "secretxxxvideo[.]com" ) || $(echo "$URL" | grep -i "freeviewmovies[.]com" ) ]]
then
VIDEO=$(cat "$FILE" | tr '"' '\n' | grep "ofconfig" | sed 's/config\=//' )
wget -nv "$VIDEO" -rO "$FILE"
VIDEO="$(cat $FILE | tr '"' '\n' | grep '[.]flv$' )"
elif [[ $(echo "$URL" | grep -i "imgdownload[.]com" ) ]]
then
VIDEO=$(cat "$FILE" | tr "=" '\n' | grep "[.]flv" | head -1 | sed 's/\&.*$//' )
elif [[ $(echo "$URL" | grep -i "upbloggerx[.]com" ) ]]
then
VIDEO=$(cat "$FILE" | tr '=' '\n' | grep "[0-9][.]flv" | head -1 | sed 's/\&.*$//' )
elif [[ $(echo "$URL" | grep -i "xvideos[.]com" ) ]]
then
VIDEO=$(cat "$FILE" | tr '=' '\n' | grep "[a-Z][.]flv" | head -1 | sed 's/\&.*$//' )
elif [[ $(echo "$URL" | grep -i "youtube[.]com" ) ]]
then
URL=$(echo "$URL" | tr '\?' '/' | tr '=' '/' )
wget -nv "$URL"
URL=$( echo "$URL" | tr '=' '\n' | tail -1 | sed 's/^.*\///' )
echo "$URL"
VIDEO="http://youtube.com/get_video?video_id=$URL&$(ls -1 cps.swf* | tr '&' '\n' | grep '^t' )"
rm cps.swf*
elif [[ $(echo "$URL" | grep -i "metacafe[.]com" ) ]]
then
VIDEO=$(cat "$FILE" | tr '=' '\n' | grep "ItemFiles" | head -1 | sed 's/\&.*$//' )
elif [[ $(echo "$URL" | grep -i "dailymotion[.]com" ) ]]
then
VIDEO=$(cat "$FILE" | tr '=' '\n' | grep "flv" | grep "get" | head -1 | sed 's/^.* \"//' | sed 's/\".*$//' | sed 's/\%3A/:/g' | sed 's/\%2F/\//g' | sed 's/\%3F/?/g' | sed 's/\%3D/=/g' )
elif [[ $(echo "$URL" | grep -i "sexsube[.]com" ) ]]
then
VIDEO="$(cat "$FILE" | tr '\"' '\n' | grep "viewkey" | head -1 | sed 's/config=//' )"
wget -nv "$VIDEO" -rO $FILE
VIDEO="$(cat "$FILE" | grep "FLVPath" | sed 's/^.*=\"//' | sed 's/\".*//' )"
elif [[ $(echo "$URL" | grep -i "haporn[.]com" ) ]]
then
VIDEO="$(cat "$FILE" | tr ' ' '\n' | tr '=' '\n' | grep "www.haporn.com/opt/" | head -1 | sed 's/\/.$/\//' )"
wget -nv "$VIDEO" -rO "$FILE"
VIDEO="$(cat "$FILE" | grep "FLVPath" | sed 's/^.*=\"//' | sed 's/\".*//' )"
elif [[ $(echo "$URL" | grep -i "shufuni[.]com" ) ]]
then
mvnm="$(cat "$FILE" | grep "mvnm" | grep "addVariable" | cut -d '"' -f4)"
sdom="$(cat "$FILE" | grep "sdom" | grep "addVariable" | cut -d '"' -f4)"
VIDEO="http://$sdom.shufuni.com/$mvnm"
elif [[ $(echo "$URL" | grep -i "goear[.]com" ) ]]
then
MP3FILE="http://www.goear.com/files/sst/secm$(echo $URL | sed 's/^.*=//' ).xml"
wget -nv "$MP3FILE" -rO "$FILE"
VIDEO="$(cat $FILE | tr '"' '\n' | grep '^http' )"
else
echo "Lo siento, VidXtract de momento no es compatible con el servidor insertado"
exit 5
fi
}
####################
#
# Función para convertir de FLV al formato que se haya configurado
#
####################
function convertir
{
if [[ $( file $FILE | grep "Macromedia Flash Video" ) ]]
then
ffmpeg -i "$FILE" $FILE.$FORMAT 2>/dev/null
rm "$FILE"
fi
}
function cargar_conf
{
FILE="$$"
FORMAT="$(cat vidxtract.cgf | grep "FORMATO" | sed 's/^.*=//' )"
}
function configurar
{
salir="0"
while (( $salir != "1" ))
do
select var in "VIDEO" "SALIR"
do
if [[ $var=="VIDEO" ]]
then
clear
echo "##### Configuración del formato de salida"
select var in "mpg" "avi"
do
cat vidxtract.cgf | sed 's/=.*$/\='$var'/' > $$
mv $$ vidxtract.cgf
clear
break
done
fi
if [[ $var=="SALIR" ]]
then
salir=1
break
fi
done
done
exit
}
#vidxtract.cfg:
#-------------------------------------------------------------------------------------------------------------------------------------------
FORMATO=avi