Soluciones / API y SDK

El poder en manos del dev.Control total, en el código y en el panel.

Controla el player con una API de eventos completa. Gestiona la biblioteca con la REST API versionada. Recibe un webhook firmado y granular para cada paso del video. Protege el contenido con tokens de corta duración que firma tu backend. Todo documentado, con ejemplos que corren. Hecho por un desarrollador con más de 15 años de oficio, para desarrolladores.

Player APIREST /v1Webhooks firmadosVideos privados (JWT)Expo / React NativeOpenAPI
Player real · en vivo
conectando al player…
Comandos · window.Moviie
Event log · player.on(...)en vivo
conectando al player…
De dev a dev

Programo hace más de 15 años. Buena parte de ellos integrando video en el producto de otros.

Sé dónde se traba. API que hace la mitad. Webhook que avisa poco y tarde. Seguridad tratada como ítem de roadmap, no como base.

Moviie es la herramienta que me hubiera gustado recibir lista. No porque sea especial. Porque ya me golpeé lo suficiente para saber lo que no puede faltar.

No tienes que creerme. Lee la doc. Toca el player de arriba. Mira la firma de los webhooks. El producto habla por mí.

Rennan RibeiroRennan Ribeirofundador · desarrollador
Para quién es

Esta página es para ti si…

  • Eres quien va a evaluar la herramienta de video y decirle al equipo si entra o no.
  • Ya chocaste contra la pared de una API que hace la mitad.
  • Ya dependiste de un webhook que avisaba poco, tarde o nada.
  • Ya viste la seguridad tratada como un detalle, y pagaste la cuenta después.
  • Quieres control en el código, pero no rechazas un panel que ayuda de verdad.

Eres tú quien decide. El resto de esta página es la lista de razones para decidirte por Moviie.

Los tres pilares

El poder en manos del dev.Tres cosas que ninguna herramienta toma en serio juntas.

Player y biblioteca en la API.

Controla el player por eventos. Gestiona videos, colecciones y analytics con la REST versionada.

player.on("timeupdate", ({ currentTime }) =>
  setBar(currentTime / player.duration));
Ver en profundidad

Webhook firmado y granular.

Te suscribes solo a lo que importa. Cada entrega llega firmada, con retry y contador de intentos.

{ "type": "video.ready",
  "data": { "video": { "id": "…" } } }
Ver en profundidad

Seguridad por token.

Video privado, token de minutos atado a un solo video, URL de asset efímera.

jwt.sign({ sub: videoId }, signingKey, {
  algorithm: "HS256", expiresIn: "5m" });
Ver en profundidad
01 / REST API

Tu biblioteca, en tu backend.Versionada y con OpenAPI.

La REST API vive en api.moviie.ai/v1, versionada por prefijo. Te autenticas con una clave Bearer creada en el panel, en Settings → API Keys. Lista, busca, actualiza, borra y sube video. Organiza en colecciones. Trae métricas de audiencia. Tiene OpenAPI publicada, así generas el client en tu lenguaje sin adivinar el contrato. Y el panel refleja todo eso, con la clave a dos clics.

  • Base versionada /v1, sin romper sin aviso
  • Recursos: Videos, Collections, Analytics, Me
  • Spec OpenAPI para generar tu client
  • El panel refleja la API, con la clave a mano
Ver la REST API
me.shbash
# chave secreta criada no dash: Settings > API Keys
curl https://api.moviie.ai/v1/me \
  -H "Authorization: Bearer mvi_sua_chave"

# { "organization": { "id": "...", "name": "Acme", "plan": "pro" } }

Primera llamada autenticada en una línea.

02 / PLAYER API

Esconde los controles nativos.Renderiza tu UI por encima.

Sube el embed con controls=0 y construye tus propios controles. El player expone la API con métodos para todo: play, pause, seek, volumen, velocidad, pantalla completa, picture-in-picture. Y una API de eventos completa mantiene tu interfaz sincronizada, incluso cuando el viewer usa un atajo de teclado, una tecla de medios o los controles del sistema. La diferencia con un player cerrado: aquí la UI es tuya, y nunca miente sobre el estado.

  • controls=0 y tu UI por encima
  • Métodos para play, seek, volumen, velocidad, pantalla completa, PiP
  • Eventos para cada cambio de estado
  • UI siempre sincronizada, incluso con atajo o tecla de medios
Ver el Player API
embed.htmlhtml
<iframe src="https://watch.moviie.ai/embed/EMBED_ID?controls=0"
        allow="autoplay; fullscreen; picture-in-picture" allowfullscreen></iframe>
controls.jsjs
// sua UI dirige o player; os eventos mantem ela em sincronia
const player = Moviie.getPlayer(iframe);

player.on("play",  () => paintPlaying());
player.on("pause", () => paintPaused());
player.on("timeupdate", ({ currentTime }) =>
  setBar(currentTime / player.duration));

seekBar.oninput = (e) =>
  player.seek(player.duration * (e.target.value / 100));

Es el mismo modelo de la demo de arriba.

03 / WEBHOOKS

Te avisan al instante.Con cómo confiar en el aviso.

Catálogo granular de eventos: upload, encoding, publicación, subtítulos, capítulos, CTA, y telemetría con milestones de 25, 50, 75 y 100 por ciento, completion rate, view milestones y umbrales de banda y storage. Habilitas por endpoint solo lo que importa. Cada entrega llega firmada con HMAC-SHA256 en el header, con contador de intentos, y retry automático de hasta seis intentos con backoff que respeta tu sistema. Y una falla de verdad solo se vuelve evento después de confirmada, sin falsa alarma de un callback inestable.

  • Catálogo granular, habilitado por endpoint
  • Firma HMAC-SHA256 en cada entrega
  • Retry de hasta 6, con backoff y X-Moviie-Attempt
  • Falla confirmada por un job, sin falsas alarmas
Ver los eventos
Un recorte del catálogo. Enciendes solo lo que necesitas, por endpoint.

Un recorte del catálogo. Enciendes solo lo que necesitas, por endpoint.

04 / VIDEOS PRIVADOS

La seguridad es la base.No un ítem de roadmap.

Marca el video como privado y no sirve nada sin un token válido. Tu backend firma un JWT corto, atado a un solo video, con la clave de firma que queda en el servidor. El asset vuelve como URL firmada y efímera. La clave de firma la rotas sin downtime y la revocas al instante. Suma a eso allowed domains y claves separadas por función: publishable en el cliente, secreta en el servidor, signing para tokens. Sin prometer DRM de Hollywood. Protección por token, URL firmada y dominio, dicha de frente.

  • Token JWT corto, atado a un solo video (sub)
  • Asset en URL firmada y efímera
  • Rota sin downtime, revoca al instante
  • Claves separadas: publishable, secreta, signing
Ver videos privados
sign-token.tsts
import jwt from "jsonwebtoken";

// chave de assinatura (mvi_sign_) fica no backend
const token = jwt.sign({ sub: videoId }, signingKeySecret, {
  algorithm: "HS256",
  keyid: signingKeyId,
  expiresIn: "5m",   // token curto, por sessao
});
private-embed.htmlhtml
<iframe src="https://watch.moviie.ai/embed/EMBED_ID?token=THE_JWT"></iframe>

¿Token equivocado para el video equivocado? 403. Sin excepción.

Los números de Moviie

La infraestructura aguanta la presión que vas a ponerle.

No estás evaluando un plugin. Es la misma malla de entrega que sostiene lanzamientos, áreas de miembros y VSL en el pico. Rate limits y SLA

0k
Viewers simultáneos
Por evento, sin degradación. El pico de lanzamiento no tumba el player
9999ms
First-frame promedio
Tiempo entre el play y el primer cuadro. Medido en producción
0,0%
Uptime contractual
SLA público, no promesa de marketing. Reembolso previsto en contrato
0+
Edge locations
Entrega adaptativa de 240p a 4K, cerca de donde está tu viewer
Todo esto está en la doc

Lo que más pesa a la hora de decidir.

Panel fuerte, aliado del dev
Clave de API, webhooks y signing secret salen del panel. Panel y código andan juntos, no uno contra el otro.
Player nativo en Expo / React Native
SDK para app, con recursos nativos, Cast en Chromecast y manejo de errores.
Claves con alcance
Publishable en el cliente, secreta en el servidor, signing para token. Cada parte con el mínimo que necesita.
Colecciones y analytics en la API
Organiza la biblioteca y trae métricas de audiencia directo del backend.
OpenAPI publicada
Genera el client en tu lenguaje. Sin adivinar el payload, sin SDK desactualizado.
Allowed domains
Restringe dónde corre el player. Embed bloqueado por organización.

Todo esto está en la doc. No es promesa, es referencia. Abrir la documentación

Próximo paso

Pon Moviiea correr en tu stack.

14 días de trial completo. Tarjeta al registrarte, cancelación en un clic. Sin llamada de ventas. Sales del trial sabiendo si Moviie resuelve tu problema.

OpenAPI y ejemplos listos Migración asistida sin costo Soporte directo con el equipo de producto