Generación de feeds RSS. Usado como ejemplo de programación lineal y de estructuras básicas de datos en Python.
En primer lugar se requiere crear un entorno con Python 3
python3 -m venv ~/genrss
# ingresar al entorno
source ~/genrss/bin/activate
E instalar las librerías requeridas
pip install -r requirements.txt
Para dar de alta un nuevo podcast se crea (dentro de la carpeta _audios) un nuevo directorio con el nombre.
Dentro de ese directorio crear un archivo info.json. Este tiene datos generales del podcast.
Ejemplo (los campos podrían cambiar, revisar alguno ya funcionando en este repo).
{
"titulo": "Entrevistas y audios de Andrés Vázquez",
"link": "https://andresvazquez.com.ar/",
"descripcion": "Audio donde participé y guardo como archivo",
"lenguaje": "es-ar",
"ttl_minutos": "240",
"autor": "Andrés Vázquez",
"imagen_titulo": "Entrevistas Andrés Vázquez",
"imagen_url": "https://andresvazquez.com.ar/blog/wp-content/uploads/2016/11/Selecci%C3%B3n_419-1024x512.png",
"imagen_link": "https://andresvazquez.com.ar/",
"webmaster_email": "andres@data99.com.ar",
"editor_email": "andres@data99.com.ar"
}
En esa carpeta colocar todos los archivos MP3 (por ahora único formato compatible).
Con cada emisión se coloca un audio nuevo y se repiten los pasos que siguen.
Si querés bajar tus recortes de RadioCut para subir a alguna plataforma y generar tu propio RSS acá tenes una opción: https://github.com/mgaitan/radiocut_downloader.
Ejemplo para descargar un recorte (se hace desde nuestro nuevo directorio así el archivo final queda allí):
radiocut https://radiocut.fm/audiocut/eugenia-monte-este-fallo-es-historico-para-el-feminismo/
Por cada audio se requiere en la misma carpeta una imagen con exactamente el mismo nombre del audio pero extensión cambiada (png o jpg).
Por cada audio se requiere en la misma carpeta un archivo de datos JSON con exactamente el mismo nombre del audio pero extensión cambiada a json.
Ejemplo (los campos podrían cambiar, revisar alguno ya funcionando en este repo).
{
"titulo": "Charla en el Podcast de ILDA",
"link": "https://andresvazquez.com.ar/blog/en-el-podcast-de-ilda-los-datos-cerca-del-vecino/",
"guid": "https://andresvazquez.com.ar/blog/en-el-podcast-de-ilda-los-datos-cerca-del-vecino/",
"fecha_publicacion": "Fri, 20 Jul 2018 15:55:23 +0300",
"descripcion": "Entrevista en el podcast de la Iniciativa Latginoamericana de Datos Abiertos. Con Silvana Fumega y JuanI Belbis."
}
Con el comando generate-rss se puede procesar (por primera vez o como actualizacion al agregar un audio) un podcast (carpeta)
Ejemplo (usar con el nombre de la carpeta requerida)
python generate-rss.py audios/entrevistas-andres
Este comando informará si hay errores y si no fuera así mostraría los links finales de los feeds para cada plataforma.
Ejemplo:
Template encontrado googleplay.xml.tpl
Se genero RSS para googleplay.xml. Una vez subido el feed a compartir estará en el link https://avdata99.github.io/test-rss-to-all-platforms/audios/entrevistas-andres/podcast_googleplay.xml
Template encontrado atom.xml.tpl
Se genero RSS para atom.xml. Una vez subido el feed a compartir estará en el link https://avdata99.github.io/test-rss-to-all-platforms/audios/entrevistas-andres/podcast_atom.xml
Template encontrado itunes.xml.tpl
Se genero RSS para itunes.xml. Una vez subido el feed a compartir estará en el link https://avdata99.github.io/test-rss-to-all-platforms/audios/entrevistas-andres/podcast_itunes.xml
Los feeds RSS generados dependen del destinatario. Hay especificaciones para Itunes, Google y otros. La idea es hacer variados feeds compatibles con todas las necesidades.
La carpeta templates tienen un archivo (template Jinja2) por cada formato de salida.
El comando generate-rss creará una archivo por cada template existente.
Para entender el estandar XML/RSS extraje info de: