2026En producciónLaboral

Operaciones de canal FAST

Para una empresa de medios europea construí el centro de operaciones de su canal FAST, al aire en 12 mercados: catálogo, parrilla, entrega de assets al distribuidor y analytics multi-fuente en una sola plataforma, con ingesta diaria automatizada y publicación al playout desde el propio producto.

Mi aporte
Diseñé y construí la plataforma de operaciones del canal, con ingesta automatizada y publicación al playout.
Para quién
Equipos de programación y operaciones de una empresa de medios europea.
Alcance
Canal al aire en 12 mercados. Tres pipelines diarios conectan catálogo, programación y análisis.

Réplica interactiva

Una réplica navegable de los modos de la plataforma con datos ficticios: mismo layout, misma lógica, sin datos reales.

Pilares de la plataforma (réplica)

By Channel · agregados del canal · consumo por hora del día

La pregunta de programación es a qué hora se consume el canal. Cada barra es una hora; la línea es la media del canal. Todo lo que la supera es franja que rinde; lo que queda debajo es tiempo de relleno.

HOV (h)
1,994
Sessions
1,568
Ad imp.
4,210
Airings
255
MUH · hora pico: 20h. media del canal: 38.40003060912151820MUH · hora pico21media del canal

El pico está en la franja de primetime y la media deja fuera casi toda la madrugada. El mismo título rinde distinto a las 3am que a las 21h.

Mapa hora × día

La misma señal cruzada por día de la semana muestra dónde y cuándo vive el consumo.

Mapa hora × día: HOV0003060912151821LunLun · 00:00 · HOV 7Lun · 01:00 · HOV 5Lun · 02:00 · HOV 4Lun · 03:00 · HOV 3Lun · 04:00 · HOV 3Lun · 05:00 · HOV 5Lun · 06:00 · HOV 8Lun · 07:00 · HOV 14Lun · 08:00 · HOV 22Lun · 09:00 · HOV 28Lun · 10:00 · HOV 32Lun · 11:00 · HOV 37Lun · 12:00 · HOV 40Lun · 13:00 · HOV 38Lun · 14:00 · HOV 35Lun · 15:00 · HOV 40Lun · 16:00 · HOV 47Lun · 17:00 · HOV 57Lun · 18:00 · HOV 69Lun · 19:00 · HOV 83Lun · 20:00 · HOV 90Lun · 21:00 · HOV 86Lun · 22:00 · HOV 55Lun · 23:00 · HOV 24MarMar · 00:00 · HOV 7Mar · 01:00 · HOV 4Mar · 02:00 · HOV 3Mar · 03:00 · HOV 3Mar · 04:00 · HOV 3Mar · 05:00 · HOV 4Mar · 06:00 · HOV 8Mar · 07:00 · HOV 14Mar · 08:00 · HOV 21Mar · 09:00 · HOV 27Mar · 10:00 · HOV 31Mar · 11:00 · HOV 35Mar · 12:00 · HOV 38Mar · 13:00 · HOV 36Mar · 14:00 · HOV 34Mar · 15:00 · HOV 38Mar · 16:00 · HOV 45Mar · 17:00 · HOV 54Mar · 18:00 · HOV 66Mar · 19:00 · HOV 79Mar · 20:00 · HOV 86Mar · 21:00 · HOV 82Mar · 22:00 · HOV 52Mar · 23:00 · HOV 23MiéMié · 00:00 · HOV 7Mié · 01:00 · HOV 5Mié · 02:00 · HOV 4Mié · 03:00 · HOV 3Mié · 04:00 · HOV 3Mié · 05:00 · HOV 5Mié · 06:00 · HOV 8Mié · 07:00 · HOV 14Mié · 08:00 · HOV 22Mié · 09:00 · HOV 28Mié · 10:00 · HOV 32Mié · 11:00 · HOV 37Mié · 12:00 · HOV 40Mié · 13:00 · HOV 38Mié · 14:00 · HOV 35Mié · 15:00 · HOV 40Mié · 16:00 · HOV 47Mié · 17:00 · HOV 57Mié · 18:00 · HOV 69Mié · 19:00 · HOV 83Mié · 20:00 · HOV 90Mié · 21:00 · HOV 86Mié · 22:00 · HOV 55Mié · 23:00 · HOV 24JueJue · 00:00 · HOV 8Jue · 01:00 · HOV 5Jue · 02:00 · HOV 4Jue · 03:00 · HOV 3Jue · 04:00 · HOV 3Jue · 05:00 · HOV 5Jue · 06:00 · HOV 9Jue · 07:00 · HOV 15Jue · 08:00 · HOV 23Jue · 09:00 · HOV 29Jue · 10:00 · HOV 34Jue · 11:00 · HOV 39Jue · 12:00 · HOV 42Jue · 13:00 · HOV 40Jue · 14:00 · HOV 37Jue · 15:00 · HOV 42Jue · 16:00 · HOV 49Jue · 17:00 · HOV 60Jue · 18:00 · HOV 73Jue · 19:00 · HOV 87Jue · 20:00 · HOV 95Jue · 21:00 · HOV 90Jue · 22:00 · HOV 58Jue · 23:00 · HOV 26VieVie · 00:00 · HOV 8Vie · 01:00 · HOV 5Vie · 02:00 · HOV 4Vie · 03:00 · HOV 3Vie · 04:00 · HOV 3Vie · 05:00 · HOV 5Vie · 06:00 · HOV 9Vie · 07:00 · HOV 17Vie · 08:00 · HOV 25Vie · 09:00 · HOV 33Vie · 10:00 · HOV 38Vie · 11:00 · HOV 43Vie · 12:00 · HOV 46Vie · 13:00 · HOV 44Vie · 14:00 · HOV 41Vie · 15:00 · HOV 46Vie · 16:00 · HOV 55Vie · 17:00 · HOV 66Vie · 18:00 · HOV 81Vie · 19:00 · HOV 97Vie · 20:00 · HOV 105Vie · 21:00 · HOV 100Vie · 22:00 · HOV 64Vie · 23:00 · HOV 28SábSáb · 00:00 · HOV 9Sáb · 01:00 · HOV 6Sáb · 02:00 · HOV 5Sáb · 03:00 · HOV 4Sáb · 04:00 · HOV 4Sáb · 05:00 · HOV 6Sáb · 06:00 · HOV 11Sáb · 07:00 · HOV 19Sáb · 08:00 · HOV 28Sáb · 09:00 · HOV 37Sáb · 10:00 · HOV 42Sáb · 11:00 · HOV 48Sáb · 12:00 · HOV 52Sáb · 13:00 · HOV 50Sáb · 14:00 · HOV 46Sáb · 15:00 · HOV 52Sáb · 16:00 · HOV 61Sáb · 17:00 · HOV 74Sáb · 18:00 · HOV 91Sáb · 19:00 · HOV 109Sáb · 20:00 · HOV 118Sáb · 21:00 · HOV 112Sáb · 22:00 · HOV 72Sáb · 23:00 · HOV 32DomDom · 00:00 · HOV 9Dom · 01:00 · HOV 6Dom · 02:00 · HOV 4Dom · 03:00 · HOV 3Dom · 04:00 · HOV 3Dom · 05:00 · HOV 6Dom · 06:00 · HOV 10Dom · 07:00 · HOV 18Dom · 08:00 · HOV 27Dom · 09:00 · HOV 35Dom · 10:00 · HOV 40Dom · 11:00 · HOV 46Dom · 12:00 · HOV 49Dom · 13:00 · HOV 47Dom · 14:00 · HOV 44Dom · 15:00 · HOV 49Dom · 16:00 · HOV 58Dom · 17:00 · HOV 71Dom · 18:00 · HOV 86Dom · 19:00 · HOV 103Dom · 20:00 · HOV 112Dom · 21:00 · HOV 106Dom · 22:00 · HOV 68Dom · 23:00 · HOV 30
Más contexto del casoLectura del caso, arquitectura del dato y decisiones de producto.

Lectura del caso

El centro de operaciones de un canal de TV lineal en vivo: un solo producto cubre el ciclo completo (catálogo, planificación de la parrilla, entrega de assets al distribuidor y analytics multi-fuente), con ingesta diaria automatizada y publicación al playout desde la propia plataforma.

Modos
Assets DB, Scheduler, MAM y Analytics (+Admin)
Fuentes
Distribuidor FAST, YouTube/BigQuery, medición de la plataforma de FAST TV y CRM
Ingesta
3 pipelines diarios en n8n con accesos autorizados de solo lectura
Estado
Canal al aire desde jul-2026 en 12 mercados

Arquitectura del dato

Tres pipelines diarios en n8n ingieren las fuentes mediante accesos autorizados de solo lectura. Supabase es la base canónica: ahí vive el scoring en SQL versionado. La plataforma lee server-side y publica al playout vía el Executor.

Arquitectura del datoFUENTESReports deldistribuidor FASTYouTube · BigQueryMedición de laplataforma de FAST TVCRM (catálogo editorial)n8n3 pipelines diariosaccesosautorizadossnapshot diarioSupabasebase canónica + scoring SQLupsertsidempotentessync read-onlyPlataforma Next.js(Railway)lectura server-side(RBAC)Executor(publicación asistida)Playout deldistribuidorplanguardadopublicaciónsupervisada

Decisiones del caso

Modelo

La plataforma sigue el flujo de fábrica del canal: el catálogo alimenta al Scheduler, el MAM entrega los assets al distribuidor y Analytics cierra el ciclo midiendo la performance real. Todo corre sobre una capa común de roles, seguridad y configuración versionada.

Ejecución al aire

El Executor toma el plan guardado y lo publica en el playout del distribuidor de forma asistida y supervisada, como una cadena continua sin huecos ni solapes. Suma simulación previa y verificación read-only de lo que quedó al aire.

Del spreadsheet a la plataforma

El scheduler empezó como un workflow sobre Google Sheets, con la base viva de contenido en una planilla y un Apps Script (auto_grid) que generaba la grilla. Cuando la plataforma centralizó el canal lo absorbió como un modo más, y hoy el plan guardado es la fuente de verdad de la parrilla.

Privacidad

La ficha pública muestra arquitectura, lógica y decisiones de producto con datos anonimizados: sin nombres de empresa ni de proveedores, sin títulos reales, credenciales ni métricas financieras. Las cifras de escala son reales.

Facetas

Herramientas

Next.js + TypeScript
la plataforma web: rail de modos, RBAC server-side y render de todas las vistas
Supabase (Postgres)
base canónica: catálogo, parrilla, scoring en SQL versionado, matviews y RLS auditada
n8n
3 pipelines diarios que ingieren reports del distribuidor, YouTube/BigQuery y la medición de la plataforma de FAST TV con accesos autorizados
BigQuery
universo YouTube del canal y métricas de perpetuity que alimentan los tiers
Executor
publicación asistida y supervisada de la parrilla en el playout del distribuidor, con simulación previa
Python
CLI de imports/exports, syncs (CRM, BigQuery) y el motor de carga a la base
Railway
deploy productivo con auto-deploy desde main
Google Sheets + Apps Script
génesis del Scheduler con base viva en planilla y grilla automática (auto_grid) antes de absorberse como modo