Podcasts

Actualmente, el método más común para distribuir programas de audio (así como programas de video) es en el internet a través de podcasts (http://en.wikipedia.org/wiki/Podcast  http://es.wikipedia.org/wiki/Podcast). La manera en la que un podcast trabaja para un usario es cuando el usuario utiliza un cliente de podcasts (iTunes, Juice - http://juicereceiver.sourceforge.net, gPodder - http://gpodder.org/, Google Listen, etc) que verifica periódicamente en búsqueda de "alimentadores" (feeds) de material nuevo. Cuando el cliente ve que hay material nuevo disponible, lo descarga automáticamente al computador, y cuando está listo lo presenta al usuario para que se pueda escuchar. Este formato ha resultado muy popular porque es muy simple para el usuario. No hace falta ir a ningún sitio web para descargar material, o esperar mientras descarga, ya que en el momento en que el usuario se da cuenta que hay material nuevo, ya está descargado al computador. Algunos de los clientes de podcasts más avanzados también pueden sincronizar el alimentador a un reproductor de media portátil como un iPod o equipo MP3.

Para el productor del contenido, la parte más importante es es crear un alimentador (feed) que todos los clientes puedan leer. Este "feed" consiste simplemente de un archivo enumerando todos los episodios del show. Este archivo contiene información sobre cada episodio así como un enlace al contenido de ese episodio (usulmente MP3, aunque Ogg también es común). Tanto el archivo para el "feed" como el contenido al cual es dirigido usualmente son archivos que están disponibles para descargarse de un servidor de web. Periódicamente las aplilcaciones clientes irán al URL de este archivo en el servidor, lo descargarán, y verán si contiene algo nuevo. Para facilitar todo este trabajo, el formato del archivo para el alimentador está definido específicamente.

Básicos de XML

El archivo es de un formato especial llamado "Really Simple Syndication" o RSS (Sindicación Muy Simple). Rss es un tipo de archivo XML (el otro tipo de archivo XML que hemos visto en este curso es el SVG para imágenes), en el cual cada pieza de data está contenida dentro de etiquetas que especifican qué tipo de data es.

Aquí hay un ejemplo muy básico de un archivo XML:

<?xml version="1.0" encoding="UTF-8" ?>
<usuarios>  <!-- Esta es la lista de usarios en el sistema -->
  <usuario>
    <nombre>Juan</nombre>
    <direccion>1234 Calle Vista</direccion>
    <telefono tipo="local">456-7890</telefono>
  </usuario>
  <usuario>
    <nombre>Maria</nombre>
    <direccion>4321 Calle Vista</direccion>
    <telefono tipo="larga_distancia">1-123-555-555</telefono>
  </usuario>
</usuarios>


El XML está definido por tipos de data, cada uno de los cuales comienza con una etiqueta que contiene su nombre, como <direccion> y termina con una etiqueta que tiene un diagonal "/" y luego el nombre del tipo, como </direccion>. Puedes ver que cada tipo de data puede contener tres cosas: mas tipos de data, la data actual, y atributos de la data.  Estos dos ultimos los he marcado en azul y en rojo para que pueda ver qué son. Además, hay comentarios que pueden estar en cualquier lugar. Estos comentarios siempre comienzan con "<!--" y continúan hasta que encuentren un "-->" que indica el final del comentario.
http://en.wikipedia.org/wiki/XML
http://es.wikipedia.org/wiki/XML

Definición de un Feed RSS

Volviendo a RSS, es solo un formato específico de XML. El RSS se usa para Podcasts pero también se puede usar para cualquier otro tipo de alimentador como blogs, artículos de noticias, streams de fotos, etc. El layout básico de XML para RSS es el siguente (usado para un blog). Lee a lo largo de esto para entender el uso de las etiquetas y a lo que se refieren.

<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
        <title>Mi Blog</title>
        <description>Que esta pasando en mi vida.</description>
        <link>http://ejemplo.com/blog/</link>
        <lastBuildDate>Mie, 23 Mar 2011 14:55:12 -0400 </lastBuildDate>
 
        <item>
                <title>Algo gracioso</title>
                <description>Esto fue muy gracioso.</description>
                <link>http://
ejemplo.com/posts/Gracioso.html</link>
                <guid>00002</guid>
                <pubDate>Mie, 23 Mar 2011 14:55:12 -0400 </pubDate>
        </item>
        <item>
                <title>Algo serio</title>
                <description>Esto es en lo que he estado pensando.</description>
                <link>http://
ejemplo.com/posts/Algoserio.html</link>
                <guid>00001</guid>
                <pubDate>Mar, 22 Mar 2011 13:20:42 -0400 </pubDate>
        </item>
 
</channel>
</rss>


channel - canal
title - título
description - descripción
link - enlace
lastBuildDate (Last Build Date) - Fecha de Ultima Versión
item - artículo (cosa)
guid (Globally Unique IDentifior) - Identificador Global Unico
pubDate (Short for Publication Date) - Fecha de Publicación

En este caso, estamos usando cinco tipos de data para este canal: title, description, link, lastBuildDate, y pubDate. Esta no es una lista completa de todos los posibles tipos de data que se pueden usar en RSS, ya que hay varios más. Para una lista y explicación completa, puedes referirte a la especificación de RSS en: http://www.rssboard.org/rss-specification

El Canal
title - El título para el "feed"
description - Una descripción de lo que contiene el "feed". Esta puede ser larga o corta y debe ser útil par un usuario poder determinar si consideraría el contenido del feed como algo interesante.
link - Este es un enlace a la página que contiene información general sobre el alimentador (no sobre ningún artículo en específico). Por ejemplo esto puede ser un enlace a un archivo de artículos previos.
lastBuildDate - Cuando el alimentador fue modificado por última vez.
item - Cada item contiene más información sobre un episodio o artículo en específico.

La Item
title - El título de este item.
description - Una descripción sobre lo que contiene el artículo; esto puede ser muy largo. Para un blog o un artículo de noticias esto puede tener hasta el contenidos textual entro. Para un podcast, esto puede tener algunas notas sobre el show.
link - Un enlace a la página web del artículo.
guid - Esto debe ser algo que identifica de forma única a este artículo. Una vez publicas un "feed" con algo de texto en este campo, puede que no lo vuelvas a ver. Es usado por el cliente para determinar si ya ha visto este artículo (y no tendrá que descargarlo de nuevo).
pubDate - La fecha y hora en la que este artículo fue añadido al alimentador.

http://en.wikipedia.org/wiki/RSS
http://es.wikipedia.org/wiki/RSS
http://www.xul.fr/en-xml-rss.html - Tutorial on building RSS

Específicamente para Podcasts

El ejemplo de RSS anterior en realidad no era para un podcast, ya que no habia ningún archivo de audio en su contenido. Era algo más apropiado para un blog. Ahora podemos ver otro ejemplo, que añade un tipo de data clave para convertir el RSS en un alimentador de podcasts.

<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
        <title>Mi Podcast</title>
        <description>Lo que está ocurriendo en mi vida.</description>
        <link>http://ejemplo.com/blog/</link>
        <lastBuildDate>Wed, 23 Mar 2011 14:55:12 -0400 </lastBuildDate>
 
        <item>
                <title>Episode 002 - Cuento gracioso</title>
                <description>Esto fue muy gracioso.</description>
                <link>http://
ejemplo.com/shows/ep002_notas.html</link>
                <guid>00002</guid>
                <pubDate>Mie, 23 Mar 2011 14:55:12 -0400 </pubDate>
                <enclosure url="http://ejemplo.com/media/ep002.mp3" length="3456789" type="audio/mpeg" />
        </item>
        <item>
                <title>Episode 001 - Algo serio</title>
                <description>Esto es en lo que he estado pensando.</description>
                <link>http://
ejemplo.com/shows/ep001_notas.html</link>
                <guid>00001</guid>
                <pubDate>Mie, 22 Mar 2011 13:20:42 -0400 </pubDate>
                <enclosure url="http://ejemplo.com/media/ep001.mp3" length="1234567" type="audio/mpeg" />
        </item>
 
</channel>
</rss>

Puedesver que añadimos el tipo de data de "enclosure" a cada item. El tipo de data de enclosure no tienen nada de data actual que va consigo, sino sólo tres atributos que necesitan ser establecidos: url - el lugar donde se encuentra el archivo, length - el tamaño del archivo (en bytes), y type - el tipo de archivo (para MP3 esto es audio/mpeg).

Notas del Show

Tal vez te hayas preguntado a dónde apunta el enlace a cada artículo, dado que el audio está contenido en el enclosure. En este caso no hay una necesidad estricta sobre un tipo de enlace de data para estos artículos. Al crear un podcast, sin embargo, es usualmente una muy buena idea el tener una página web en la cual se almacene cada episodio. Esta página web usualmente se llama "notas del show" y contiene información sobre lo que está pasando en el audio. Por ejemplo puede contener el nombre (y boletos) a canciones que se reprodujeron, información sobre invitados entrevistados, enlaces a temas que se discutieron, etc. No vamos a llegar muy lejos en esa dirección al momento, ya que todavía no hemos llegado a la sección de crear páginas web. Simplemente nota que esto es una parte importante de tener un podcast.

Generadores de Podcasts

Si no quieres ensuciarte las manos creando tu propio alimentador RSS (aunque hacerlo or tí mismo es muy recomendado), hay también varias organizaciones que pueden hacer todo el trabajo por tí. Ve y trata de buscar "podcast hosting" en Google. Si quieres usar las herramientas para generar el alimentador RSS, busca en google  "podcast generator". Hay por lo menos un programa de generador de software libre que está disponible y lo puedes descargar en: http://podcastgen.sourceforge.net/

Cómo encontrar Podcasts

Una vez tu alimentador de podcast esté completo, puedes darle el URL a quien que quieras. Sin embargo, tal vez también te interece alcanzar una mayor audiencia. Esto requiere publicar tu podcast en un directorio de podcasts al cual consumidores puedan ir a buscarlo. El directorio de podcasts más grande es la tienda de iTunes (aunque ellos tienen data especial que se tienen que añadir al alimentador) pero hay varios otros sitios que son buenos también:
http://podcast-es.org
http://www.apple.com/itunes/podcasts/
http://podcast.com/
http://www.podcastalley.com/
http://www.podomatic.com/

Obtener Podcasts en gPodder

El mejor cliente de software para podcasts es gPodder. Está disponible en Linux (Ubuntu y otros), Windows, y Mac, y facilita randemente el proceso de mantenerse al día con tus podcasts.

Para empezar, abramos gPodder y vayamos a Subscripciones -> Agregando podcast.
gPodder-Basic-es.png

Una vez esto esté abierto, ve a la página principal del podcast: http://mediaintro.teeks99.com/podcast/. Desde aquí verás un enlace al alimentador de RSS de nuestros Podcasts. Puedes hacer clic derecho en este enlace y luego copiarlo para pegarlo en la caja de gPodder.
gPodder-Add-es.png

Ahora gPodder va a ir a obtener toda la información disponible sobre este "feed". Va a encontrar que hay dos episodios disponibles y sugerir que comienzas a descargar.
gPodder-Download-es.png

Una vez la descarga haya completado, te mostrará todo el audio que está disponible para ser escuchando.
gPodder-Ready-es.png

Luego de este punto gPodder seguirá verificando el "feed"en busca de más episodios regularmente. Además, puedes ajustar las opciones para que sincronize los podcasts automáticamente a tu equipo móvil de MP3. Esto va a subir los podcasts nuevos al reproductor, y puede removerlos de gPodder una vez los hayas escuchado.