Manualinux
http://www.nvu.com http://www.gimp.org InicioPresentaciónActualizacionesManualesDescargasNoticiasAgradecimientoEnlaces

Entornos GráficosAplicaciones

DesarrolloEmuladoresInternetJuegosMultimediaSistema

Descarga MMS - mms-qtDescarga YouTube - NomNom

Descarga YouTube - Cclive




Descarga YouTube - Cclive




Copyright

Copyright © José Luis Lara Carrascal  2009-2013   http://manualinux.eu



Sumario

Introducción
Instalación
Opciones de línea de comandos
Enlaces




Introducción  

Cclive
es una utilidad de línea de comandos, de descarga de archivos de vídeo en formato flv, especialmente indicada para trabajar con servicios de visualización de vídeos como YouTube, Break.com, Google Vídeo, eVisor TV, Sevenload, LiveLeak y DailyMotion. El beneficio de utilizarla respecto a otras soluciones gráficas es el uso mínimo que hace de los recursos del sistema.



Instalación  

Dependencias

Herramientas de Compilación


Entre paréntesis la versión con la que se ha compilado Cclive para la elaboración de este documento.

* GCC - (4.8.1) o Clang - (3.3)
* Gawk - (4.1.0)
* M4 - (1.4.16)
* Libtool - (2.4.2)
* Make - (3.82)
* Automake - (1.14)
* Autoconf - (2.69)
* Pkg-config - (0.28)

Librerías de Desarrollo

* Quvi - (0.4.2)
* Boost - (1.54.0)
* Curl - (7.32.0)
* PCRE - (8.32)



Descarga

cclive-0.7.16.tar.xz

Optimizaciones

GCC
$ export {CFLAGS,CXXFLAGS}='-O3 -march=amdfam10 -mtune=amdfam10'

Clang
$ export {CFLAGS,CXXFLAGS}='-Ofast -march=amdfam10'

Donde pone amdfam10 se indica el procesador respectivo de cada sistema seleccionándolo de la siguiente tabla:
Nota informativa sobre las optimizaciones para GCC
* La opción '-march=' establece el procesador mínimo con el que funcionará el programa compilado, la opción '-mtune=' el procesador específico para el que será optimizado. 

* Los valores separados por comas, son equivalentes, es decir, que lo mismo da poner '-march=k8' que '-march=athlon64'.

* En versiones de GCC 3.2.x e inferiores se utiliza la opción '-mcpu=' en lugar de '-mtune='.
Nota informativa sobre las optimizaciones para Clang
* La opción '-mtune=' no está soportada por Clang.

* Los valores de color azul no son compatibles con Clang.

* Las filas con el fondo de color amarillo son valores exclusivos de Clang, y por lo tanto, no son aplicables con GCC.
Valores CPU
generic Produce un código binario optimizado para la mayor parte de procesadores existentes. Utilizar este valor si no sabemos el nombre del procesador que tenemos en nuestro equipo. Este valor sólo es aplicable en la opción '-mtune='. Esta opción está disponible a partir de GCC 4.2.x.
i386 Intel i386.
i486 Intel i486.
i586, pentium Intel Pentium sin soporte de instrucciones MMX.
pentium-mmx Intel PentiumMMX basado en Pentium con soporte de instrucciones MMX.
pentiumpro Intel PentiumPro.
i686 Produce un código binario optimizado para la mayor parte de procesadores compatibles con la serie 80686 de Intel. Todos los actuales lo son.
pentium2 Intel Pentium2 basado en PentiumPro con soporte de instrucciones MMX.
pentium3, pentium3m Intel Pentium3 basado en PentiumPro con soporte de instrucciones MMX y SSE.
pentium-m Versión de bajo consumo de Intel Pentium3 con soporte de instrucciones MMX, SSE y SSE2. Utilizado por los portátiles Centrino.
pentium4, pentium4m Intel Pentium4 con soporte de instrucciones MMX, SSE y SSE2.
x86-64 Procesadores AMD y compatibles con soporte de instrucciones x86-64, SSE2 y extensiones 64-bit.
yonah Procesadores basados en la microarquitectura de Pentium M, con soporte de instrucciones MMX, SSE, SSE2 y SSE3.
prescott Versión mejorada de Intel Pentium4 con soporte de instrucciones MMX, SSE, SSE2 y SSE3.
nocona Versión mejorada de Intel Pentium4 con extensiones 64-bit y soporte de instrucciones MMX, SSE, SSE2 y SSE3.
core2 Intel Core2 con extensiones 64-bit y soporte de instrucciones MMX, SSE, SSE2, SSE3 y SSSE3. Esta opción está disponible a partir de GCC 4.3.x.
penryn Intel Penryn con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3 y SSE4.1.
corei7 Intel Core i7 con extensiones 64-bit y soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 y SSE4.2. Soporta también los procesadores Intel Core i3 e i5. Esta opción está disponible a partir de GCC 4.6.x.
nehalem Procesadores basados en la microarquitectura de procesador Nehalem de Intel.
westmere Procesadores basados en la microarquitectura de procesador Westmere de Intel.
corei7-avx Intel Core i7 con extensiones 64-bit y soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AES y PCLMUL. Soporta también los procesadores Intel Core i3 e i5. Esta opción está disponible a partir de GCC 4.6.x.
core-avx-i Intel Core (ivyBridge) con extensiones 64-bit y soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AES, PCLMUL, FSGSBASE, RDRND y F16C. Esta opción está disponible a partir de GCC 4.7.x.
core-avx2 Intel Core (Haswell). Esta opción está disponible a partir de GCC 4.7.x.
atom Intel Atom con extensiones 64-bit y soporte de instrucciones MMX, SSE, SSE2, SSE3 y SSSE3. Esta opción está disponible a partir de GCC 4.5.x.
k6 AMD K6 con soporte de instrucciones MMX.
k6-2, k6-3 Versiones mejoradas de AMD K6 con soporte de instrucciones MMX y 3DNow!.
athlon, athlon-tbird AMD Athlon con soporte de instrucciones MMX, 3DNow!, enhanced 3DNow! y SSE prefetch.
athlon4, athlon-xp, athlon-mp Versiones mejoradas de AMD Athlon con soporte de instrucciones MMX, 3DNow!, enhanced 3DNow! y full SSE.
k8, opteron, athlon64, athlon-fx Procesadores basados en AMD K8 core con soporte de instrucciones x86-64 (MMX, SSE, SSE2, 3DNow!, enhanced 3DNow! y extensiones 64-bit).
k8-sse3, opteron-sse3, athlon64-sse3 Versiones mejoradas de AMD K8 core con soporte de instrucciones SSE3. Esta opción está disponible a partir de GCC 4.3.x.
amdfam10, barcelona Procesadores basados en AMD Family 10h core con soporte de instrucciones x86-64 (MMX, SSE, SSE2, SSE3, SSE4A, 3DNow!, enhanced 3DNow!, ABM y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.3.x.
btver1 Procesadores basados en AMD Family 14h core con soporte de instrucciones x86-64 (MMX, SSE, SSE2, SSE3, SSE4A, CX16, ABM y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.6.x.
btver2 Procesadores basados en AMD Family 16h core con soporte de instrucciones x86-64 (MOVBE, F16C, BMI, AVX, PCL_MUL, AES, SSE4.2, SSE4.1, CX16, ABM, SSE4A, SSSE3, SSE3, SSE2, SSE, MMX y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.8.x.
bdver1 Procesadores basados en AMD Family 15h core con soporte de instrucciones x86-64 (FMA4, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.7.x.
bdver2 Procesadores basados en AMD Family 15h core con soporte de instrucciones x86-64 (BMI, TBM, F16C, FMA, LWP, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.7.x.
bdver3 Procesadores basados en AMD Family 15h core con soporte de instrucciones x86-64 (FMA4, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.8.x.
winchip-c6 IDT Winchip C6, que equivale a un i486 con soporte de instrucciones MMX.
winchip2 IDT Winchip2, que equivale a un i486 con soporte de instrucciones MMX y 3DNow!.
c3 Via C3 con soporte de instrucciones MMX y 3DNow!.
c3-2 Via C3-2 con soporte de instrucciones MMX y SSE.
geode AMD integrado con soporte de instrucciones MMX y 3DNow!. Esta opción está disponible a partir de GCC 4.3.x.
native Produce un código binario optimizado para el procesador que tengamos en nuestro sistema, siendo éste detectado utilizando la instrucción cpuid. Procesadores antiguos pueden no ser detectados utilizando este valor. Esta opción está disponible a partir de GCC 4.2.x.

Extracción y Configuración  Bloc de Notas Información general sobre el uso de los comandos

$ tar Jxvf cclive-0.7.16.tar.xz
$ cd cclive-0.7.16
$ export {CC,CXX}=clang
$ export LDFLAGS="-Wl,-rpath,/opt/gcc-4.8.1/lib -lstdc++"
$ ./configure --disable-dependency-tracking --prefix=/usr


Explicación de los comandos

export {CC,CXX}=clang : Si vamos a compilar el paquete con Clang, establecemos la correspondiente variable de entorno.

export LDFLAGS="-Wl,-rpath,/opt/gcc-4.8.1/lib -lstdc++" : Si compilamos Cclive con una versión de GCC que no es la principal del sistema, es decir, que la tenemos ubicada en otro directorio, tenemos que añadir la variable de entorno de la versión de libstdc++.so del compilador que vayamos a utilizar, porque de lo contrario, será imposible la compilación del programa, al no existir ninguna referencia a esta librería en los archivos Makefile generados, con lo que, cuando se vaya a generar el binario cclive, el enlazador dinámico ld, buscará la primera que encuentre, normalmente la que está en /usr/lib, produciendo un error, al no ser la del compilador utilizado.

En este caso y siguiendo el manual de instalación de GCC, la ruta correcta para GCC 4.8.1 es /opt/gcc-4.8.1/lib, a la que se le añade el nombre genérico (requerido por ld) de la librería, -lstdc++, si la versión a utilizar la tenemos en otro directorio, tendremos que cambiar sólo la ruta, /opt/gcc-4.8.1/lib por la de la librería del compilador en cuestión.

En el caso de Clang, utilizaremos la versión de GCC con la que ha sido compilado Clang.

$ export LDFLAGS="-Wl,-rpath,/opt/gcc-4.6.4/lib -lstdc++"

--disable-dependency-trackingAcelera el tiempo de compilación.
--prefix=/usr : Instala el programa en el directorio principal /usr.

Compilación

$ make

Parámetros de compilación opcionales  

-j2 : Si tenemos un procesador de doble núcleo (dual-core), y el kernel está optimizado para el mismo y es SMP, con este parámetro aumentaremos el número de procesos de compilación simultáneos a un nivel de 2 y aceleraremos el tiempo de compilación del programa de forma considerable.
-j4 : Lo mismo que arriba pero con procesadores de 4 núcleos (quad-core).

Instalación como root

$ su
# make install-strip

Archivo de configuración personal

~/.ccliverc Es el archivo de configuración personal de Cclive en nuestro home. No se crea de forma automática.

Desinstalación como root

1) MODO TRADICIONAL

En el directorio de compilación ejecutamos el siguiente comando como root:

$ su
# make uninstall

2) MODO MANUALINUX

El principal inconveniente del comando anterior es que tenemos que tener el directorio de compilación en nuestro sistema para poder desinstalar el programa. En algunos casos esto supone muchos megas de espacio en disco. Con el paquete de scripts que pongo a continuación logramos evitar el único inconveniente que tiene la compilación de programas, y es el tema de la desinstalación de los mismos sin la necesidad de tener obligatoriamente una copia de las fuentes compiladas.

cclive-0.7.16-scripts.tar.gz

$ su
# tar zxvf cclive-0.7.16-scripts.tar.gz
# cd cclive-0.7.16-scripts
# ./Desinstalar_cclive-0.7.16

Copia de Seguridad como root

Con este otro script creamos una copia de seguridad de los binarios compilados, recreando la estructura de directorios de los mismos en un directorio de copias de seguridad (copibin) que se crea en el directorio /var. Cuando se haya creado el paquete comprimido de los binarios podemos copiarlo como usuario a nuestro home y borrar el que ha creado el script de respaldo, teniendo en cuenta que si queremos volver a restaurar la copia, tendremos que volver a copiarlo al lugar donde se ha creado.

$ su
# tar zxvf cclive-0.7.16-scripts.tar.gz
# cd cclive-0.7.16-scripts
# ./Respaldar_cclive-0.7.16

Restaurar la Copia de Seguridad como root

Y con este otro script (que se copia de forma automática cuando creamos la copia de respaldo del programa) restauramos la copia de seguridad como root cuando resulte necesario.

$ su
# cd /var/copibin/restaurar_copias
# ./Restaurar_cclive-0.7.16



Opciones de línea de comandos  Bloc de Notas  

Éstas son las opciones de línea de comandos con los comentarios traducidos al español.

[jose@localhost ~]$ cclive --help

  -D [ --print-config]            Imprime el valor de las opciones de configuración definidas
  -v [ --version]                 Imprime la versión y termina
  -h [ --help]                    Imprime la ayuda y termina
  --license                       Imprime la licencia de uso y termina
  --support                       Imprime las webs soportadas y termina
  -B [ --verbose-libcurl]         Activa el modo verboso de la salida estándar de libcurl

  -q [ --quiet ]                  Desactiva todos los mensajes de salida excepto los de error
  -b [ --background ]             Se coloca en 2º plano de forma inmediata después de su ejecución
  -S [ --print-streams ]          Imprime los flujos de medios disponibles
  -s [ --stream ] VALOR           Selecciona un flujo de medios

  -F [ --query-formats ]          Busca un formato de vídeo disponible para el enlace (obsoleto)
  -f [ --format ] FORMATO         Descarga un formato específico de vídeo (más información) (obsoleto)
  -W [ --overwrite ]              Sobreescribe un archivo existente
  -O [ --output-file ] ARCHIVO    Escribe el vídeo a un archivo
  -n [ --no-download ]            No descarga el vídeo, sólo imprime la información del mismo.
  --no-proxy                      No utiliza un proxy
  --log-file ARCHIVO              Escribe la salida a un archivo, procesándolo en 2º plano (por defecto=`cclive.log')

  --config-file ARCHIVO           Archivo de configuración a utilizar por cclive (por defecto:~/.ccliverc)

Configuración:
  -r [ --no-resolve ]             No resuelve los enlaces redireccionados
  -c [ --continue ]               Continúa una descarga no finalizada
  -N [ --timestamp ]              Intenta preservar la fecha de modificación
  -p [ --prefer-format ] VALOR    Formato preferido [dominio:formato[,...]]
  --progressbar ASPECTO           Muestra una barra de progreso de descarga (aspecto por defecto=`normal')
  --update-interval VALOR         Frecuencia de actualización de la barra de progreso (por defecto=`1')
  --filename-format FORMATO       Formato del nombre de archivo de salida (por defecto=`%t.%s')
  --output-dir DIRECTORIO         Directorio de descarga para los vídeos
  -t [ --tr ] VALOR               Traduce los caracteres del título del vídeo
  --regexp VALOR                  Expresión regular para limpiar el título del vídeo (obsoleto)
  --subst VALOR                   Reemplaza los terminos coincidentes en el nombre de archivo
  --exec COMANDO                  Comando a ejecutar cuando la descarga finalice
  --agent CADENA                  Agente de usuario del navegador (por defecto=`Mozilla/5.0')
  --proxy MÁQUINA:PUERTO          Usa un proxy determinado. Por ejemplo localhost:8123
  --throttle VALOR                Limita la velocidad de descarga a un valor en KB/s
  --connect-timeout SEGUNDOS      Tiempo máximo permitido de la conexión al servidor
  --transfer-timeout SEGUNDOS     Tiempo máximo permitido para la transferencia
  --dns-cache-timeout SEGUNDOS    Tiempo máximo que el DNS permanecerá en la memoria
  --max-retries VALOR             Número máximo de intentos de descarga
  --retry-wait SEGUNDOS           Tiempo de espera en segundos entre cada intento (por defecto=`5')

Parámetros equivalentes en el archivo de configuración

prefer-format =
progressbar =
update-interval =
filename-format =
output-dir =
regexp =
subst =
exec =
agent =
proxy =
throttle =
connect-timeout =
transfer-timeout =
dns-cache-timeout =
max-retries =
retry-wait =

Ejemplo de archivo de configuración

filename-format = %h_%i_(%t).%s
output-dir = /home/jose/Videos
regexp = /(\w|\pL)/g
exec = smplayer %f
throttle = 10
connect-timeout = 120

Formatos más comunes soportados por Cclive
Sitio web ID Alias Sufijo Resolución
youtube.com fmt22
hd mp4 1280x720
youtube.com fmt35
hq flv 640x380
youtube.com fmt18
mp4 mp4 480x360
youtube.com fmt34
- flv 320x180 (calidad variada)
youtube.com fmt17
3gp 3gp 176x144
dailymotion.com vp6-hd
.. on2 1280x720
dailymotion.com vp6-hq
.. on2 848x480
dailymotion.com h264 .. h264 512x384
dailymotion.com vp6 .. on2 320x240
dailymotion.com flv .. flv 320x240
dailymotion.com spark-mini .. flv 80x60
vimeo.com flv | hd
video.google.com flv | mp4

Para los ejemplos de uso, ejecutar 'man cclive'.



Enlaces


http://cclive.sourceforge.net >> La web de Cclive.

http://clive.sourceforge.net >> La web de Clive, programa en el que está basado Cclive.


Foro Galería Blog


Actualizado el 14-09-2013

Descarga YouTube - Cclive

Descarga MMS - mms-qtDescarga YouTube - NomNom