Subtitular 130 horas de vídeo con la automatización

Diagrama del flujo de trabajo de un proyecto de automatización
Flujo de trabajo completo de la automatización

El desafío

Una agencia de marketing para influencers nos planteó un reto: automatizar el proceso completo de subtitulado de vídeos de YouTube en 3 idiomas distintos y con un plazo máximo de 48 horas por encargo.

El objetivo era reducir la intervención manual, agilizar la producción y controlar cada encargo en tiempo real.

El flujo de trabajo debía cubrir todas las fases clave del proceso:

  1. Subida de los vídeos editados a un servidor.
  2. Transcripción automática de los vídeos y generación de los subtítulos en el idioma correspondiente.
  3. Revisión y sincronización manual de los subtítulos.
  4. Entrega final de los archivos SRT.

Además, el cliente necesitaba un sistema que permitiera llevar el control del tiempo y registrar cada encargo para facilitar la facturación del trabajo manual de subtitulación según la duración de cada vídeo.

Para garantizar el control y la trazabilidad de cada encargo, creamos una hoja de cálculo en Google Sheets compartida con los colaboradores, donde se registraba (entre otras cosas):

  • Datos del video (fecha de llegada, nombre del archivo, duración).
  • Fecha de entrega.
  • Persona responsable del subtitulado.

La comunicación con el equipo se gestionaba a través de Mattermost, una alternativa de código abierto a Slack, lo que facilitaba la coordinación entre el gestor del proyecto y los distintos colaboradores.

No obstante, surgió una limitación importante: el cliente quería que cualquier miembro de su equipo pudiera subir los vídeos sin necesidad de registrarse ni disponer de una cuenta en una aplicación concreta.

Esta restricción nos llevó a descartar la opción de usar directamente Sonix, la herramienta de transcripción y subtitulado elegida, ya que no permite subir archivos de forma anónima.

Análisis del proceso y elección de la herramienta

Para automatizar el flujo de trabajo, identificamos las acciones clave que debían ejecutarse automáticamente con la llegada de cada nuevo vídeo:

  • Importar el vídeo en la plataforma de transcripción Sonix.
  • Registrar los datos del vídeo (fecha, remitente, nombre del archivo y duración) en la hoja de Google correspondiente a cada idioma.
  • Notificar al equipo mediante un mensaje en Mattermost, en un canal dedicado para cada idioma.

Un aspecto fundamental de todo el proceso era el sistema para gestionar la recepción y el almacenamiento de los vídeos. Por ello exploramos distintas soluciones en la nube y, tras evaluar varias opciones, determinamos que la mejor alternativa era utilizar Google Drive. Este sistema es ampliamente utilizado y destaca por su compatibilidad con herramientas de automatización.

Por lo tanto, se barajó la posibilidad de utilizar un formulario de Google vinculado a Google Drive, pero esta opción también requería iniciar sesión con una cuenta de Google, por lo que tampoco cumplía con la necesidad de accesibilidad universal para los editores de vídeo.

La solución definitiva fue añadir un paso previo al proceso, aprovechando la funcionalidad de «File request» de Synology, que permite crear una página dedicada con un simple formulario. Los usuarios solo debían introducir su dirección de correo electrónico y subir el archivo, que se almacenaba automáticamente en una carpeta cuyo nombre coincidía con la dirección de correo.

Para sincronizar esta estructura con Google Drive, utilizamos la app CloudStation, incluida en el sistema operativo DSM de Synology. Así, cada vez que un vídeo se subía al servidor de Synology, este se sincronizaba automáticamente con una carpeta de Google Drive.

Finalmente, para notificar la llegada de nuevos vídeos, programamos un script de cron. Cada 15 minutos, el script revisaba el contenido de las carpetas del servidor y, si detectaba archivos nuevos, enviaba un correo electrónico automático al gestor del proyecto, con la ruta y el nombre del archivo subido.

La elección de la herramienta de automatización también fue una parte crucial del servicio. La primera opción que consideramos fue Zapier, que permite conectar Google Drive con Sonix a través de una «recipe» predefinida. El flujo era simple: cada vez que se subía un nuevo archivo a Google Drive, Zapier transfería el archivo a Sonix, donde se realizaba la transcripción automática.

Aunque esta integración funcionaba de forma correcta, presentaba una limitación importante: la API de Google Drive no permite monitorizar subcarpetas de forma recursiva. Esto significaba que solo se podía monitorizar la carpeta principal, pero no sus subcarpetas. Para este proyecto, donde cada editor de vídeo tenía su propia subcarpeta, habría sido necesario crear un zap para cada subcarpeta, lo que habría requerido un esfuerzo manual que contradecía el objetivo de la automatización.

Pantallazo Zapier

Al descartar Zapier, evaluamos otras alternativas:

  • n8n: Una plataforma de automatización de código abierto, muy potente pero con una interfaz más compleja y una curva de aprendizaje elevada. Tras instalarla en nuestro servidor y probarla, concluimos que no era la opción más eficiente para este proyecto.
  • Make: Este servicio ofrecía una solución interesante, pero tras evaluarlo, consideramos que otras herramientas se adaptaban mejor a las necesidades específicas de nuestro proyecto en términos de funcionalidad y flexibilidad.
  • Pabbly Connect: Destacó por la atención rápida y detallada de su equipo de soporte. Siguiendo sus indicaciones, optamos por desarrollar la automatización con esta herramienta, ya que ofrecía la flexibilidad necesaria para gestionar carpetas y subcarpetas de forma eficiente.

Desarrollo de la solución en Pabbly Connect

El trigger principal se definió como la llegada de un correo de notificación dirigido al gestor de proyecto. A partir de este correo, se extrajeron los siguientes datos clave mediante expresiones regulares (regex):

  • Nombre del archivo: identifica el vídeo a procesar.
  • Carpeta de origen: se corresponde con la dirección de correo del remitente, utilizada para organizar las carpetas de los vídeos.
  • Idioma del vídeo: esencial para clasificar el vídeo y enviar la notificación al canal de Mattermost correspondiente (italiano, español o portugués).

Los datos clave se extrajeron del cuerpo del correo mediante la función de expresión regular (regex) de Pabbly Connect. El objetivo era convertir un texto con múltiples rutas de archivos en una estructura clara y ordenada.

Ejemplo de conversión:
Texto inicial
/volume1/video/Company_ES/enrique.blanco@company.com/video1.mp4
/volume1/video/Company_IT/mario.rossi@company.com/video2.mp4
/volume1/video/Company_PT/joao.verdes@company.com/video3.mp4

Datos extraídos
ES
enrique.blanco@company.com
video1.mp4

IT
mario.rossi@company.com
video2.mp4

PT
joao.verdes@company.com
video3.mp4

El siguiente paso fue automatizar la reiteración de tareas para procesar cada vídeo de forma individual. Para ello, utilizamos la función de Iterator de Pabbly Connect, que permite repetir una secuencia de pasos por cada elemento del correo.

Pantallazo Pabbly Connect

Flujo de trabajo completo

  1. Recepción del correo: El sistema recibe un correo en una dirección específica creada con Pabbly Connect, que actúa como trigger para iniciar la automatización.
  2. Separación de líneas: Usando una regex, el cuerpo del correo se divide en tantas líneas como vídeos se hayan cargado, para tratarlos de forma independiente.
  3. Extracción de datos: Se extraen tres datos clave mediante otra regex:
    • Idioma del vídeo (para identificar la hoja de Google y el canal de Mattermost).
    • Correo del remitente (para identificar la carpeta de origen).
    • Nombre del archivo (para localizar el archivo en Google Drive).
  4. Confirmación automática: Se envía un correo automático al remitente para confirmar la recepción del vídeo.
  5. Búsqueda en Google Drive: Se busca el archivo en Google Drive utilizando el nombre del archivo como clave de búsqueda.
  6. Recuperación de metadatos: Google Drive responde con los detalles del archivo, de los que se extrae la fecha de subida.
  7. Verificación de carpetas en Sonix:
    • Si la carpeta del remitente no existe, se crea automáticamente y se le asigna el mismo nombre que la carpeta de origen.
    • Si la carpeta ya existe, el flujo continúa al siguiente paso.
  8. Subida del vídeo a Sonix: El vídeo se sube a la carpeta correspondiente en Sonix.
  9. Actualización de la hoja de Google: Se añade una nueva línea con los datos clave del vídeo en la hoja de Google correspondiente al idioma.
  10. Notificación en Mattermost: Un mensaje automatizado se envía al canal de Mattermost para notificar al equipo que el vídeo ya está disponible para la revisión de los subtítulos.

Manejo de errores y contingencias

En cualquier proceso automatizado, los errores pueden surgir en distintos puntos del flujo de trabajo. Por ello, se implementaron varias medidas de control de errores y se definieron contingencias para asegurar la continuidad operativa y reducir el riesgo de errores humanos.

Principales fuentes de error identificadas

  • Fallo en la conexión con la API de Google Drive o Sonix: Puede deberse a problemas de red o a la indisponibilidad temporal de los servicios.
  • Archivos mal nombrados o con formato incorrecto: Los archivos que no cumplen con los formatos esperados pueden generar errores en la extracción de datos.
  • Errores en la extracción de datos (regex): Los patrones de texto pueden fallar si la estructura del correo recibido cambia.

Medidas de control implementadas

  • Reintentos automáticos: Si la conexión con la API de Google Drive o Sonix falla, el sistema reintenta la conexión hasta 3 veces con intervalos de 5 minutos entre intentos.
  • Validación de formatos: Antes de subir los archivos, se verifica que el nombre del archivo y la dirección de correo cumplan con un patrón predefinido. Los archivos que no cumplen con el formato se marcan para revisión manual.
  • Sistema de alertas: Si tras 3 reintentos la conexión con la API no se restablece, se envía una notificación automática en Mattermost y un correo de alerta al gestor del proyecto.

Con estas medidas, el sistema es más robusto, autónomo y seguro frente a errores externos o errores en la entrada de datos. Este enfoque garantiza que el flujo no se detenga y que el equipo de producción pueda actuar rápidamente en caso de fallos.

Pantallazo Sonix.ai

Impacto y lecciones aprendidas

El proyecto se ha desarrollado de forma exitosa principalmente gracias a nuestra automatización y ha podido durar varios meses, con una tasa de errores inferior al 5%. En particular se consiguió:

  • Cumplir de forma consistente con el plazo de 48 horas deseado, incluyendo la parte de revisión manual.
  • Evitar errores humanos, al eliminar la necesidad de copiar y pegar manualmente los datos.
  • Centralizar la comunicación, logrando que el equipo esté informado en tiempo real sobre la llegada de nuevos vídeos.

Durante el desarrollo de esta automatización, identificamos tres lecciones importantes:

  • No subestimar la importancia de los triggers: El uso de una dirección de correo específica como disparador permitió centralizar todo el flujo.
  • Simplificar la captura de datos: El uso de expresiones regulares (regex) hizo posible extraer la información de forma precisa y automática.
  • Apoyarse en la atención al cliente de los proveedores: La respuesta rápida y detallada del soporte de Pabbly Connect fue clave para el éxito del proyecto.
Explora las posibilidades de la automatización en tu trabajo diario.
Sector

Marketing

Herramientas clave

Pabbly Connect
Synology CloudSync
Google Drive
Google Sheets
Sonix.ai
Mattermost

Resultados

Subtitulado de 970 vídeos (133 horas totales) y seguimiento del proyecto

Categoría
Gestión de proyectos
Tag
Automatización