miércoles, 28 de abril de 2010

Descargando vídeos desde YouTube (forma manual)

Cualquier contenido que pueda ser visualizado en un navegador web se puede descargar a la computadora, esto incluye cualquier formato que se vea vía streaming.

Hay una gran cantidad de sitios web, plugins y programas que permiten descargar vídeos de YouTube, pero qué pasa si queremos descargar un contenido de GoEar, MySpace Music o cualquier otro sitio? Habría que buscar una solución individual para cada caso.

Por suerte los navegadores nos permiten acceder a todos los archivos que se han descargado (o que se están descargando en ese momento) y simplemente habrá que sacar una copia o cuando mucho, habrá que cambiar la extensión a flv, mp3, etc...

Para descargar un vídeo de YouTube, podemos seguir estos pasos:
(Nota, en este ejemplo utilizaremos Google Chrome)

1. Encontrar el vídeo que se desea descargar
Al tener el enlace que nos llevará a la página en donde se va a reproducir el vídeo, lo abrimos en una ventana de navegación de incógnito.

Las ventanas de navegación de incógnito siempre tienen la caché vacía, así que nos será más fácil encontrar allí la dirección de descarga directa del vídeo (o audio).

Luego de abrir esa ventana es recomendable reproducir el vídeo y esperar hasta que se haya descargado por completo.






2. Acceder a la caché del navegador y encontrar el enlace del vídeo.
Una vez el vídeo se ha reproducido por completo, abrimos una nueva pestaña en la ventana de navegación de incógnito y en el espacio de dirección escribimos:

about:cache

Como el vídeo fue lo último que el navegador descargó, generalmente lo encontraremos entre los primeros enlaces. En el caso de YouTube, las direcciones de acceso directo a los vídeos llevan la palabra videoplayback, así que para ubicar el enlace con más facilidad podemos buscar esta palabra (Ctrl + F -> buscar).






3. Descargar el fichero del vídeo
Por último debemos copiar esa dirección que acabamos de encontrar y pegarla en una nueva pestaña en la misma ventana de navegación de incógnito. Cabe aclarar que no funciona simplemente haciendo clic sobre la dirección ni tampoco utilizando guardar destino como. Se debe copiar tal cual y pegarla en una nueva pestaña. (Ctrl + C, Ctrl + T, Ctrl + V -> copiar, nueva pestaña, pegar y luego Enter.)

El archivo se descargará de forma inmediata con el nombre videoplayback. Ya que los vídeos en YouTube se almacenan en formato flv, bastará con renombrar el archivo agregando dicha extensión para que el reproductor lo reconozca.






Si no tienen ningún reproductor de FLV, les recomiendo buscar e instalar el K-Lite Codec Pack que instala un codec para flv, de modo que se pueda abrir en nuestro reproductor favorito.

viernes, 2 de abril de 2010

Comprimir archivos CSS y JavaScript con GZip (Todos los navegadores)

Las razones principales para reducir el peso de tus páginas web son evidentes:

- Cargan con mayor rapidez
- Ahorras ancho de banda

El problema es que no todos los navegadores soportan la codificación con gzip.

La solución que utilizo es subir una versión comprimida y una versión plana del mismo fichero, luego determino si el navegador soporta la codificación GZip y de esta maneja envío uno u otro archivo.

En este ejemplo cambio la extensión de los archivos comprimidos de Javascript .jsgz y la de los archivos CSS a .csgz.

1- Editando el .htaccess
Añadir las siguientes lineas al .htaccess

# Apache Content Negotiation http://bit.ly/cYepUl
Options MultiViews

# Compressed javascript and CSS files
AddEncoding x-gzip .jsgz .csgz

# Añadir los tipos (cómo se interpretará el fichero)
AddType application/x-javascript .jsgz
AddType text/css .csgz


2- Añadir la comprobación a las páginas que utilicen los archivos comprimidos (PHP)

$jsgz = substr_count($_SERVER['HTTP_ACCEPT_ENCODING'],'gzip')?'.jsgz':'.js';
$csgz = $jgz?'.csgz':'.css';

y finalmente, al momento de incluir los archivos CSS y JS pegar la extensión con PHP

<link type="text/css" href="style<?php echo $csgz; ?>" rel="stylesheet">
<script type="text/javascript" src="script<?php echo $jsgz; ?>"></script>

De esta forma se cargarán los archivos comprimidos solamente si el cliente los soporta.