2.9 KiB
Plan: Automatización Flujo Zoom a YouTube
Grupo de Trabajo: DIGIs (Digitalización y Contenidos)
Código: P2603.01
Fecha: 31 de marzo de 2026
Autor: Sistema ADN
Versión: 1.0
Estado: 📝 PLANIFICADO
📋 Resumen Ejecutivo
El objetivo es automatizar un proceso repetitivo que actualmente requiere un alto esfuerzo manual y tiempo de espera ("toil"): descargar grabaciones de aulas y posgrados de Zoom a partir de enlaces en una Google Sheet, procesarlas localmente, subirlas en modo oculto al canal interno de YouTube, y finalmente notificar o retornar los enlaces a la planilla para los destinatarios.
Al automatizar este flujo utilizando el ecosistema ADN (CLI de herramientas Ruby), la intervención manual se reducirá idealmente a la ejecución de un solo comando (zoom:sync o similar).
🎯 Objetivo
Desarrollar una herramienta nativa ADN que englobe estas etapas clave:
- Conectarse a Google Sheets para leer nuevas filas pendientes (sin
ID-YTB). - Gestionar la descarga robusta (
wget/curlcon sanitización estricta de espacios y nombres) al entorno delimitadotemp/. - Interconectar con la YouTube Data API v3 para subir los videos directamente, dejándolos No Listados ("Unlisted").
- Devolver las URLs post-subida a la planilla y despachar las notificaciones necesarias.
📅 Fases de Implementación Orientativas
⏳ FASE 1: Integración Source (Google Sheets & Descarga)
- 1.1: Habilitar Google Sheets API. Guardar la credencial de Service Account cifrada usando
candados. - 1.2: Crear módulo Ruby (
adn/tools/cli/digis.rb) para extraer columnas IDReu, urlDOWN, y TIT. - 1.3: Descargar archivos de manera concurrente al directorio de trabajo optimizando transferencia y sanitizando las salidas de los nombres de archivos.
⏳ FASE 2: Extracción local (si aplica según webhook)
- 2.1: Detectar dinámicamente si Zoom retorna un
mp4o requiere un unpack/descompresión (en el caso de recursos vinculados a chat txt y grabaciones juntas).
⏳ FASE 3: Upload a YouTube
- 3.1: Habilitar y configurar YouTube Data API v3 usando OAuth2 en la cuenta destino.
- 3.2: Mecanismo de subida asíncrona mediante Ruby, empujando chunks grandes de video con protección contra cortes, nombrando el archivo según
TITy ajustando la privacidad.
⏳ FASE 4: Notificación final y actualización
- 4.1: Almacenar de retorno el enlace definitivo en la columna
ID-YTBde la planilla. - 4.2: Desarrollar rutina para generar correos preformateados o alertas para los organizadores, confirmándoles los enlaces limpios.
🛠 Requisitos para Ecosistema ADN
- Integración en
./adn/tools/run digis zoom:sync - Todo el manejo temporal de GBs debe apuntar a la carpeta limpia
temp/pero preferiblemente limpiar al concluir (cleanup ensure). - Los tokens API irán guardados de forma imperativa dentro de la bóveda de Candados.