Hace unos 5 años, descubrí el mundo de los podcasts gracias a Google Podcasts, aplicación que venía preinstalada en mi teléfono con Android One. Desde entonces, los podcasts se han convertido en mi fiel compañía durante el ejercicio, las tareas del hogar, los viajes en coche, etc. Hasta la fecha, he escuchado 539 horas de podcasts, y entre mis favoritos se encuentran Stuff You Should Know, The Changelog y Cold War Conversations

Todo fue podcasts y diversión, hasta que Google anunció que descontinuaría Google Podcasts. Esto me obligó a buscar una nueva aplicación para escuchar mis podcasts que cumpliera un requisito particular: la capacidad de importar mi historial de episodios escuchados. De mis podcast favoritos a veces escucho episodios antiguos y quiero saber cuales ya escuché.

Tras evaluar diversas opciones, opté por una solución de código abierto y autohospedada que combina dos herramientas:

  • AntennaPod: Una aplicación para Android con una interfaz del mismo formato que Google Podcasts, que permite sincronizar suscripciones y episodios escuchados entre dispositivos.

  • oPodSync: Un servidor para sincronizar suscripciones a podcasts y su historial de episodios escuchados.

Migración

Empecé intentando obtener mis datos de Google Podcasts mediante Google Takeout, pero no me funcionó, según por que mi cuenta es de Google Workspace. Ante esto, no me quedó otra opción más que interpretar el HTML del interfaz web de Google Podcasts para obtener mis episodios escuchados.

Por otro lado, hice un análisis de oPodSync y probé su API, tomando como referencia la documentación de gpodder.net.

Sabiendo que información necesitaba enviar al API de oPodSync, analicé los feed RSS de mis suscripciones para encontrarla. Me fueron útiles estas referencias:

Conociendo las estructuras de datos e interfaces necesarias para la migración, escribí el script migrate_to_antennapod.php para que, por cada suscripción:

  1. Interpretar el HTML para obtener los títulos de los episodios escuchados
  2. Interpretar el RSS del podcast y encontrar los episodios escuchados
  3. Normalizar la información de episodios escuchados
  4. Marcar en oPodSync los episodios escuchados

Para migrar todas mis suscripciones, escribí el script migrate-all.sh.

En el deposito google_podcasts_to_antennapod se encuentran los scripts de pruebas y migración mientras que en homelab esta la documentación para configurar el contenedor de oPodSync.

Conclusión

La migración de Google Podcasts a AntennaPod no fue un proceso sencillo, pero me permitió implementar una alternativa interesante para escuchar podcasts.

En comparación con una solución comercial, AntennaPod y oPodSync ofrecen una funcionalidad similar a un costo significativamente menor. Si bien, la inversión inicial de tiempo y esfuerzo fue mayor, los costos recurrentes estimo son un 20% o menos de los de una alternativa comercial.

Más allá del ahorro económico, esta migración me ha brindado el control total sobre mi información. Además, al centralizar mis datos en un servidor propio, puedo realizar copias de seguridad regulares y garantizar la integridad de mi historial de podcasts.