Video dentro de tu producto.Sin volverte un equipo de infraestructura de video.
Onboarding, ayuda dentro de la app, video de cada feature. El video ya vive en tu SaaS. Lo que nadie te avisa es el tamaño de lo que viene con él: encoding, CDN, player, protección, analytics. Moviie entrega esa capa entera por una API y un embed, para que enchufes video al producto y sigas avanzando tu roadmap de verdad.
Lo que construir video por dentrote cobra cada sprint.
"Es solo un player" dura hasta el primer upload que falla a las dos de la mañana. El video en el producto no es una feature, es una malla de subsistemas que nunca deja de pedir mantenimiento. Y esa cuenta no aparece en la factura. Aparece en el roadmap que no avanza.
Ingesta, transcode a múltiples calidades, storage, CDN. Es el trabajo de mover y servir archivos pesados, a escala, cerca del viewer. No diferencia tu SaaS en nada. Y es donde más se queman meses de ingeniería antes de que funcione.
Ajustas el player hasta donde te deja la biblioteca. Ahí entran los overrides de CSS, el hack en el DOM, el navegador de TV de 2018 que renderiza distinto, el iOS que decide reproducir en fullscreen solo. El player parece simple hasta volverse una matriz de compatibilidad que nunca cierra.
Para saber que un video terminó de procesar, que el usuario lo vio, que el upload falló, necesitas evento confiable y telemetría. Sin eso, se vuelve polling, una cola con parches y una planilla. Te enteras del estado del video preguntando, no porque te avisen.
Un enlace abierto que corre en cualquier sitio, un embed sin bloqueo, un archivo expuesto. La protección queda para después hasta el día en que el video de tu producto se filtra fuera de él. Ahí ya no es un detalle de roadmap.
¿Quieres el contrato técnico entero, con la Player API por eventos y el catálogo de webhooks? Para Developers
No necesitas un stack de video.
Necesitas una capa que ya existe.
Para poner video en el producto bien, la cuenta es hosting, transcode, player, protección y analytics. Cinco frentes que o construyes y mantienes, o enchufas listos. Moviie es la versión lista.
Por eso Moviie es una sola capa: para que el video en el producto deje de ser un proyecto y vuelva a ser una feature.
Copia, pega, corre.En cualquier pantalla de tu producto.
El player entra en tu app con un embed que pegas donde debería estar el video. Corre en React, en página estática, dentro de tu builder, en el email de onboarding. Escondes los controles nativos y renderizas tu UI por encima cuando quieras, sin fork y sin hack. Es un embed, no un proyecto de integración.
- Una línea, cualquier página.
El mismo embed corre en tu app, en la landing y en el email. Sin SDK pesado para cargar una pantalla de ayuda.
- Tu UI por encima.
Sube sin los controles nativos y construyes los tuyos, con la cara de tu producto.
- First-frame rápido.
El player abre antes de que el usuario piense en salir de la pantalla. Entrega adaptativa de 240p a 4K, cerca de donde está.
- Sin exponer dónde vive el archivo.
El embed entrega el video, no la ruta del storage.
En tu dominio · con tu UI · sin revelar el archivo.
Tu biblioteca, gestionada desde tu backend.Y el estado del video, avisado al instante.
La REST API vive en api.moviie.ai/v1, versionada por prefijo, con OpenAPI publicada para que generes el client en tu lenguaje. Sube, lista, organiza en colecciones y trae métricas directo del servidor. Y te avisan por webhook firmado en cada paso del video, con retry, en vez de andar preguntando.
- REST versionada /v1.
Sube y gestiona video desde tu backend. Sin quiebre de contrato sin aviso, con OpenAPI para generar tu client.
- Webhook firmado y granular.
Enciendes solo el evento que importa, por endpoint. Cada entrega viene firmada con HMAC-SHA256 y contador de intento.
- Te avisan, no preguntas.
Upload, encoding listo, publicación, milestones de audiencia. El estado del video llega a tu sistema, sin polling.
- Panel y código en el mismo lugar.
Lo que está en la API también está en el panel. La clave sale del panel, a dos clics.
El contrato es estable · el aviso es firmado · el control es tuyo.
El video de tu producto se queda dentro de tu producto.Bloqueado por dominio, por token y por Rastro.
El contenido de onboarding y de feature es tuyo, y no debería correr en el sitio de nadie. El embed lock ata el player a los dominios que habilitas. Para el video privado, tu backend firma un token corto, atado a un solo video, y el asset vuelve como URL efímera. Y Rastro marca cada play con la identidad de quien mira, para disuadir la filtración en el origen.
- Embed lock por dominio.
El player corre solo donde lo autorizas. ¿Copiaste el embed afuera? No reproduce.
- Video privado por token.
Tu backend firma un JWT corto, atado a un video. Sin token válido, nada se sirve. Token equivocado para el video equivocado: 403.
- Claves con alcance.
Publishable en el cliente, secreta en el servidor, signing para el token. Cada parte con el mínimo que necesita.
- Rastro en el play.
Marca de agua con la identidad del espectador, en movimiento, para rastrear y disuadir. Una capa más sobre el acceso ya trancado.
Bloquea por dominio · ata por token · marca por Rastro.
Todo lo que viene junto en la capa.Sin un proveedor más para cada ítem.
Subtítulos automáticos.
Toda transcripción se vuelve subtítulo, sin que integres un servicio aparte. Accesibilidad y búsqueda dentro del video gratis.
Player nativo en la app.
Un SDK para poner el player dentro de tu app, con recursos nativos. SDK iOS en desarrollo, Android a continuación.
Analytics de video de verdad.
Play rate, retención segundo a segundo, finalización, origen y dispositivo. Dato de primera parte, en el mismo lugar.
Capítulos y búsqueda en el player.
El viewer salta al punto justo del tutorial. Menos tickets de "dónde está la parte de X".
Webinar alojado como replay.
Subes la grabación y se sirve como video bajo demanda, con la misma protección y el mismo analytics.
Acceso privado por usuario.
Cada persona entra con su propio acceso liberado, y cortas el de quien sale. El control que tu cliente enterprise exige.
La capa aguanta la presión que tu producto va a ponerle.
No es un plugin. Es la misma malla de entrega que sostiene lanzamientos, áreas de miembros y VSL en pico. Ver estado en vivo
La cuenta de construir esta capa por dentro no es teoría. Un sistema de video de producción cuesta de US$180 mil a US$500 mil y lleva de 6 a 12 meses de ingeniería. Una vez listo, el mantenimiento ronda el 25% del costo de construcción por año, fuera de incidentes y fuera del tiempo persiguiendo cambios de codec y compatibilidad de navegador. La lectura del mercado es directa: si el video es una feature, y no tu producto, comprar es casi siempre el camino correcto, porque el tiempo de ingeniería rinde más en otro lado.
Cuando tengamos logo de cliente para mostrar, lo mostramos. Por ahora, la cuenta de construir ya cuenta la historia.
Lo que el equipo técnico pregunta antes de enchufar.
Es la capa entera como servicio. El video es alojado, transcodado y entregado por la malla de Moviie, y lo consumes por un embed y una REST API en api.moviie.ai/v1.
No mantienes encoding, CDN ni una matriz de compatibilidad de player. Enchufas y el video corre en tu producto, con tu UI por encima cuando quieras.
Pegas el embed donde debería estar el video. El mismo embed corre en React, en página estática, en tu builder y en el email de onboarding.
Para controlarlo desde tu interfaz, subes sin los controles nativos y diriges el player por los eventos. El contrato por eventos está documentado en la página para Developers.
Por webhook firmado. Habilitas solo los eventos que importan, por endpoint, y el estado del video llega a tu sistema sin polling: upload recibido, encoding listo, publicación, milestones de audiencia.
Cada entrega viene firmada con HMAC-SHA256 y tiene retry con backoff, así confías en el aviso y sabes cuándo una entrega falló de verdad.
No, si no quieres. El embed lock ata el player a los dominios que habilitas. ¿Copiaste el embed a otro sitio? No reproduce.
Para el video privado, tu backend firma un JWT corto, atado a un solo video, y el asset vuelve como URL efímera. Sin token válido, nada se sirve.
Rastro es la marca de agua con la identidad de quien está mirando, en movimiento sobre el player. Rastrea y disuade la filtración en el origen.
No es bloqueo. Es trazabilidad: en honestidad, no impide una grabación de pantalla, pero ata cada play a un espectador, lo que cambia el cálculo de quien piensa en repasarlo.
El SDK web ya está listo y corre en cualquier página. El SDK iOS nativo está en desarrollo, y Android viene a continuación.
Mientras tanto, el player web se embebe dentro de un webview con la entrega adaptativa y la misma protección de la malla.
El webinar entra como replay alojado: subes la grabación y se sirve como video bajo demanda, con la misma protección y el mismo analytics que el resto.
La transmisión en vivo no es parte de la capa hoy. El foco es video bajo demanda en tu producto.
Pon video en tu producto hoy.Sin abrir un proyecto de infra.
14 días de trial completo para enchufar Moviie a tu SaaS de verdad. Tarjeta en el registro, cancela en un clic. Sin llamada de ventas. Sales del trial sabiendo si la capa resuelve tu video.
Escenarios hermanos:Para DevelopersVideo corporativo