Files
dtic-DIIAA/docs/ambito/dtic-DIGIs/P2603.01_Automatizacion_Zoom.md
T

47 lines
2.9 KiB
Markdown

# 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:
1. Conectarse a Google Sheets para leer nuevas filas pendientes (sin `ID-YTB`).
2. Gestionar la descarga robusta (`wget`/`curl` con sanitización estricta de espacios y nombres) al entorno delimitado `temp/`.
3. Interconectar con la **YouTube Data API v3** para subir los videos directamente, dejándolos No Listados ("Unlisted").
4. 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 `mp4` o 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 `TIT` y ajustando la privacidad.
### ⏳ FASE 4: Notificación final y actualización
- **4.1:** Almacenar de retorno el enlace definitivo en la columna `ID-YTB` de 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**.