Hacer cache de los videos de youtube y demás con Debian + Squid + Apache2 + Videocache 1.9.2

Imagen de RazaMetaL

Tema: 

Ha algún tiempo publiqué un pequeño "joutú" para limitar la velocidad de descarga de ciertas extensiones y contenido con squid.

Hace unos días he estado probando esta herramienta llamada Videocache que en verdad promete mucho. Con Videocache se pueden almacenar en nuestro servidor los videos de algunos sitios como:

- youtube.com
- googlevideo.com
- metacafe.com
- dailymotion.com
- video.google.com
- vimeo.com
- soapbox.msn.com
- blip.tv
- break.com
- tvuol.uol.com.br
- Red Tube
- X Tube Videos
- You Pron Videos
- Tube8 Videos

Lo he probado durante la última semana y hasta ahora no me puedo quejar de su desempeño y los usuarios tampoco, ya que un video que vió uno y lo compartió por email en cadena a los demás usuarios es visualizado fluido y sin cortes :)

Mas información sobre este aplicación y como ayudar en su crecimiento la pueden encontrar en:
http://cachevideos.com/

Para poder utilizar Videocache debemos contar con un squid configurado y funcionando, apache2, Python y un par de módulos adicionales.

Instalamos dependencias:

aptitude install python-urlgrabber

Descargarmos e instalamos iniparse:

cd /usr/src
wget http://iniparse.googlecode.com/files/python-iniparse_0.3.1-1_all.deb
dpkg -i python-iniparse_0.3.1-1_all.deb

Descargamos y descomprimimos videocache:

cd /usr/src
wget http://cachevideos.com/sites/default/files/pub/videocache/videocache-1.9.2.tar.gz
tar zvxf videocache-1.9.2.tar.gz

También se puede utilizar GIT:

aptitude install git-core


cd /usr/src
git clone http://git.cachevideos.com/videocache.git
ln -sf /usr/src/videocache videocache-1.9.2

Modificamos las siguientes variables en el archivo instalador de videocache /usr/src/videocache-1.9.2/setup.py

squid_user = 'proxy'
squid_group = 'proxy'
install_dir = '/usr/share/'
apache_conf_dir = '/etc/apache2/conf.d/'

También se deben modificar la misma información en /usr/src/videocache-1.9.2/update-vc

Una vez editado ejecutamos el instalado:

cd /usr/src/videocache-1.9.2
python setup.py install

Creamos una acl en /etc/squid/squid.conf para que el servidor pueda guardar los videos, para ilustrar el ejemplo vamos a suponer que nuestro servidor tiene la ip 192.168.0.1 :

acl proxy src 192.168.0.1 # 192.168.0.1. es la ip de nuestro proxy
http_access allow proxy

Agregamos al final de nuestro /etc/squid/squid.conf :

# --BEGIN-- videocache config for squid
url_rewrite_program /usr/bin/python /usr/share/videocache/videocache.py
url_rewrite_children 10
acl videocache_allow_url url_regex -i \.youtube\.com\/get_video\?
acl videocache_allow_url url_regex -i \.youtube\.com\/videoplayback \.youtube\.com\/videoplay \.youtube\.com\/get_video\?
acl videocache_allow_url url_regex -i \.youtube\.[a-z][a-z]\/videoplayback \.youtube\.[a-z][a-z]\/videoplay \.youtube\.[a-z][a-z]\/get_video\?
acl videocache_allow_url url_regex -i \.googlevideo\.com\/videoplayback \.googlevideo\.com\/videoplay \.googlevideo\.com\/get_video\?
acl videocache_allow_url url_regex -i \.google\.com\/videoplayback \.google\.com\/videoplay \.google\.com\/get_video\?
acl videocache_allow_url url_regex -i \.google\.[a-z][a-z]\/videoplayback \.google\.[a-z][a-z]\/videoplay \.google\.[a-z][a-z]\/get_video\?
acl videocache_allow_url url_regex -i (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/videoplayback\?
acl videocache_allow_url url_regex -i (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/videoplay\?
acl videocache_allow_url url_regex -i (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/get_video\?
acl videocache_allow_url url_regex -i proxy[a-z0-9\-][a-z0-9][a-z0-9][a-z0-9]?\.dailymotion\.com\/
acl videocache_allow_url url_regex -i vid\.akm\.dailymotion\.com\/
acl videocache_allow_url url_regex -i [a-z0-9][0-9a-z][0-9a-z]?[0-9a-z]?[0-9a-z]?\.xtube\.com\/(.*)flv
acl videocache_allow_url url_regex -i bitcast\.vimeo\.com\/vimeo\/videos\/
acl videocache_allow_url url_regex -i va\.wrzuta\.pl\/wa[0-9][0-9][0-9][0-9]?
acl videocache_allow_url url_regex -i \.files\.youporn\.com\/(.*)\/flv\/
acl videocache_allow_url url_regex -i \.msn\.com\.edgesuite\.net\/(.*)\.flv
acl videocache_allow_url url_regex -i media[a-z0-9]?[a-z0-9]?[a-z0-9]?\.tube8\.com\/ mobile[a-z0-9]?[a-z0-9]?[a-z0-9]?\.tube8\.com\/
acl videocache_allow_url url_regex -i \.mais\.uol\.com\.br\/(.*)\.flv
acl videocache_allow_url url_regex -i \.video[a-z0-9]?[a-z0-9]?\.blip\.tv\/(.*)\.(flv|avi|mov|mp3|m4v|mp4|wmv|rm|ram)
acl videocache_allow_url url_regex -i video\.break\.com\/(.*)\.(flv|mp4)
acl videocache_allow_dom dstdomain .mccont.com .metacafe.com .redtube.com .cdn.dailymotion.com
acl videocache_deny_url url_regex -i http:\/\/[a-z][a-z]\.youtube\.com http:\/\/www\.youtube\.com
url_rewrite_access deny videocache_deny_url
url_rewrite_access allow videocache_allow_url
url_rewrite_access allow videocache_allow_dom
redirector_bypass on
# --END-- videocache config for squid

Modificamos en /etc/videocache.conf los parámetros cache_host y proxy para que contengan la IP del servidor proxy, por ejemplo si mi proxy tiene la dirección 192.168.0.1:

cache_host = 192.168.0.1
proxy = http://192.168.0.1:3128/

Luego actualizamos la información con update-vc:

update-vc

Reiniciamos los servicios:

invoque-rc.d squid restart
invoque-rc.d apache2 restart

Ahora si podemos probar mirando un video de youtube (ó porntube si así lo prefieren) en un terminal, y una vez finalizado abrirlo en otros terminales, seguro notarán la diferencia :)

El contenido guardado por videocache podrá ser visto desde:
http://proxy/videocache

En el log podemos visualizar si un video es visualizado desde el cache o no:

2009-09-27 21:13:04,558 13846 192.168.0.203 7b259975c04da1cb CACHE_MISS YOUTUBE Requested video was not found in cache.
2009-09-27 21:13:04,574 13846 192.168.0.203 7b259975c04da1cb NEW_URL YOUTUBE http://v16.nonxt7.c.youtube.com/videoplayback?ip=0.0.0.0&sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Cburst%2Cfactor&fexp=905303%2C900037&itag=5&ipbits=0&signature=76037D5DCA6ACCCF32F0BD0AC21FF23678B90A3E.99B4C9EC3CBA4555A3E148945C049F36DBF025A4&sver=3&expire=1254128400&key=yt1&factor=1.25&burst=40&id=7b259975c04da1cb&redirect_counter=1

Esto indica que el video no se encuentra en el caché y que va a ser descargado.


2009-09-27 21:08:09,697 13846 192.168.0.204 27399fa5f22ad3ee URL_HIT YOUTUBE http://v19.lscache8.c.youtube.com/videoplayback?ip=0.0.0.0&sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Cburst%2Cfactor&itag=34&ipbits=0&signature=8CDCEEC03501B93F98216A506D8B153615EFDEF4.9833FD05744A1E8F4A54548F4AB0560C1AE45F27&sver=3&expire=1254128400&key=yt1&factor=1.25&burst=40&id=27399fa5f22ad3ee
2009-09-27 21:08:09,697 13846 192.168.0.204 27399fa5f22ad3ee CACHE_HIT YOUTUBE Video was served from cache.

Esto quiere decir que el video esta en el caché y va a ser servido desde ahí.

Si tenemos apache corriendo en un puerto diferente al 80 se debe modificar el parámetro cache_host en /etc/videocache.conf :

cache_host = 192.168.0.1:81

Donde 192.168.0.1 es la ip del servidor y 81 es el puerto en el que esta escuchando apache.

Luego de eso hay que ejecutar para activar los cambios:

update-vc
invoque-rc.d apache2 restart

Comentarios

donde dice eso?

Imagen de RazaMetaL

:? donde dice eso? ahh, ya lo ví:


Version 1.9.2

Videocache Bundle is one file containing all the above three packages (rpm, srpm, tar) in one archive which is available for just $9.99. With this package, you get free support via Support Forums. We will mail you the software bundle within 24 hours of the purchase.

Puedes bajar el archivo tar.gz (snapshot) desde el repositorio git:

http://git.cachevideos.com/videocache.git/

O bajarlo desde la consola con:

git clone git://git.cachevideos.com/videocache.git

-----

Visita este link :evil:

alguien tiene este video cache

buenas amigos soy nuevo usuario y me interesa esto del videocache 1.9, tengo un servidor en ubuntu y quisiera saber quien lo puede distribuir o venderme para realizar la instalación a ver que tan bien funciona y mas o menos para un isp que tanto se necesitaria de espacio en disco duro ocuparia de espacio o cuanto seria necesario tener de espacio.
gracias algun samaritano que me ayude con esto...

Este manual lo hice con la

Imagen de RazaMetaL

Este manual lo hice con la versión 1.92 de videocaché cuya licencia es GPLv2. Es posible que puedas utilizarlo, siempre y cuando devuelvas las mejoras y distribuyas el código fuente. Para obtener el software ahora el desarrollador exige una pequeña contribución monetaria, la cual considero justa por haber desarrollado videocache.

Ahora, yo tengo la versión que descargué antes de que sea de pago y que sugún su licencia es GPLv2, basado en esto, puedo o no distribuirlo?

-----

Visita este link :evil:

Sí puedes. Al obtener esa

Imagen de acl

Sí puedes. Al obtener esa copia bajo los términos que el autor aceptaba en aquel entonces, tu copia es legítimamente obtenida, y la licencia sigue aplicando para tí.

si se puede

Imagen de williamromero

Primero

Nosotros somos ISP. tenemos como 4.000 clientes via ADSL, y personalmente te recomiendo uses el soporte y la distribucion de www.cachevideos.com hay que pagar, pero despues de varias semanas por no decir meses, lo he puesto a funcionar a punto.

COmo empresa o ISP no se puede dar uno el lujo de no tener soporte, a pesar de la investigacion que uno realice.

Te puedeo decir que ya llevo mas de 300.000 videos en cache y me ha ayudado mucho, Y ya comenzo a elimianr antiguos y demas

Te tocara romperte un poco la cabeza realizando ajustes, pero funciona. Y mas cuando somos ISP, debes tener cuidado, los clientes se te retiran o tu servicio se degradara.

Dile a Kulbir, que es de mi parte, te hara un descuento: WILLIAM ROMERO - DE COLOMBIA

Saludos

William

JOSE WILLIAM ROMERO
COLOMBIA
TERRASOFT

Como asigno espacio en disco

Imagen de discipulo

Hola Raza,

estaba revisando y no encuentro donde asignar espacio en disco para lo de video cache, para que se sobreescriba, o como es la forma de almacenamiento de esto, ya que tengo un disco pequeño y se va a llenar de una y no se que problemas de luego..

Gracias..

Pasion por Dios...

Páginas