API de streaming en producción

Embeds HLS limpios parapelículas y series

Un iframe con el ID de TMDb o IMDb. Buscamos los servidores, extraemos el HLS de cada host y lo servimos en nuestro reproductor, sin la publicidad del host.

TMDb & IMDbSin API key en el iframe27 hosts compatiblesListo para Smart TV
Catálogo activo

Lo más reciente

Tendencias de hoy en TMDb. Un clic abre el embed listo para incrustar.

Arquitectura

¿Cómo funciona el sistema?

Tres capas: ID → servidores → reproductor limpio. Sin API key en el iframe.

01

Resolución TMDb / IMDb

Aceptá el ID numérico de TMDb o el tt… de IMDb. Detectamos el formato y armamos la ficha con temporadas y episodios.

02

Extracción automática

Consultamos varias fuentes a la vez y sacamos el HLS de 27 hosts (StreamWish, VidHide, Filemoon, VOE, Dood…). Lo popular queda precalentado en caché.

03

Reproductor limpio

Servimos el iframe con servidores e idiomas. El video pasa por nuestro proxy con los permisos que exige cada CDN, sin la publicidad del host.

Documentación

Endpoints de embed

Un patrón para películas, series, anime y doramas. Anime y doramas usan el endpoint de series (/tv/).

GEThttps://play.tukiplay.com/f/embed/movie/{tmdb_id|imdb_id}

Reproduce una película con el ID de TMDb o de IMDb.

// TMDb — El club de la pelea
https://play.tukiplay.com/f/embed/movie/550
// IMDb
https://play.tukiplay.com/f/embed/movie/tt0137523
// iframe
<iframe src="https://play.tukiplay.com/f/embed/movie/550" width="100%" height="500" frameborder="0" allowfullscreen allow="autoplay; fullscreen; picture-in-picture"></iframe>
GEThttps://play.tukiplay.com/f/embed/tv/{tmdb_id}/{temporada}/{episodio}

Un episodio concreto. El reproductor trae el selector de idiomas y servidores.

// Game of Thrones · T1 E1
https://play.tukiplay.com/f/embed/tv/1399/1/1
// iframe
<iframe src="https://play.tukiplay.com/f/embed/tv/1399/1/1" width="100%" height="500" frameborder="0" allowfullscreen></iframe>
GEThttps://play.tukiplay.com/f/embed/tv/{tmdb_id}/{temporada}/{episodio}

Anime y doramas están en TMDb como series: mismo endpoint, con su ID de TMDb.

// One Piece · T1 E1
https://play.tukiplay.com/f/embed/tv/37854/1/1
// Doramas: igual, con el ID de la serie en TMDb
GEThttps://play.tukiplay.com/api/v1/{movie|tv}/{id}[/{temporada}/{episodio}]

Para tu propio reproductor: devuelve los HLS en JSON. Requiere clave: header X-API-Key o ?key= en el link (así se abre directo en el navegador). Cada fuente trae play, un link para verla con reproductor — pedila al administrador.

curl -H "X-API-Key: ulp_tu_clave" https://play.tukiplay.com/api/v1/movie/550

// Respuesta
{ "sources": [ { "server": "StreamWish", "lang": "latino", "type": "hls", "url": "https://…m3u8", "play": "https://…/cps.php?play=…" } ] }

// En el navegador
https://play.tukiplay.com/api/v1/movie/550?key=ulp_tu_clave
Probar ahora

Generá el embed al instante

Buscá por título en tiempo real (TMDb o IMDb), copiá la URL o el iframe y previsualizá el reproductor en segundos.

Abrir generadorIr al panel

Elegí un resultado o escribí un ID.

Diferencial

Motor Clean incluido

No solo juntamos embeds: el reproductor extrae el stream limpio de StreamWish, VidHide, Filemoon, VOE, Streamtape y más, y lo pasa por nuestro proxy con los permisos de cada CDN. Menos popups, más control desde el panel.

Ir al panel
✓Iframe público sin API key
✓HLS por proxy propio que renueva el token solo
✓TMDb numérico e IMDb tt…
✓JSON opcional en /api/v1/
Actualizaciones

Novedades

Qué se agregó, qué se mejoró y qué se arregló en cada versión.

v3.7.3Versión actual

MultiEmbed responde en segundos

↑Mejoras

  • Primero se consultan las webs que buscan por ID y responden en 1-4 s; las de búsqueda por título van después.
  • El servidor responde apenas tiene enlaces (4 s) y sigue buscando en segundo plano hasta 60 s; lo nuevo se suma solo al menú del reproductor.
  • Si hay muchas búsquedas a la vez, igual se entrega lo que ya estaba guardado de cada web.

✓Arreglos

  • Usando solo MultiEmbed, algunas películas salían OFFLINE con 0 servidores: las webs lentas (LaMovie, AllCalidad, DoramasFlix ~17 s cada una) iban primero y se comían todo el tiempo, y las que encuentran rápido (Embed69 1 s, VideoApp 2 s, Pelispedia 4 s) quedaban sin consultar.
v3.7.2Los HLS vuelven a reproducirse con "Segmentos directos"

✓Arreglos

  • Con Motor Clean → Segmentos de video en "Directos del CDN", el navegador pedía los .ts directo a CDNs que no lo permiten (CORS), y el video se quedaba girando en 0:00 en todos los servidores HLS. Ahora, al primer segmento rechazado, el reproductor vuelve a pedir la misma lista con todo por el proxy y el video arranca.
  • Lo mismo en la página del link "play" de la API.
v3.7.1El video vuelve a arrancar con MultiEmbed activo

+Nuevo

  • Panel → Extracción HLS → MultiEmbed: topes de webs y de títulos a la vez.

✓Arreglos

  • Con MultiEmbed, cada título nuevo ocupaba muchos procesos de PHP a la vez buscando en las webs, y los pedidos del video (cps.php) quedaban en cola: el reproductor se quedaba girando en todos los servidores. Ahora hay un tope en todo el servidor (3 webs y 2 títulos a la vez por defecto) y el resto se completa después.
  • Las webs que llegan tarde se piden desde el navegador cada 5 s leyendo solo la caché, sin ocupar un proceso esperando.
  • Tiempos por web más cortos (8 s por pedido).
v3.7.0Servidor MultiEmbed: los mismos servidores que TukiPlay

+Nuevo

  • Nuevo servidor "MultiEmbed" (me.php): busca la película o el episodio en las mismas webs que el MultiEmbed Clean / TukiPlay — PelisPlusHD, LaMovie, AllCalidad, CineCalidad (4 espejos), SoloLatino, Cuevana8, Cuevana3, FlixLatam, Embed69, VideoApp, Pelispedia, Vidstuck, animes y doramas. De ahí salen Voe, Earnvids, StreamHG, Filemoon y el resto que antes faltaban.
  • Todas las webs se consultan a la vez, cada una en su proceso, y lo encontrado queda en caché 6 h.
  • Si alguna web tarda más que la página, sus servidores se suman solos al menú del reproductor apenas llegan (no hace falta recargar).
  • Panel → Extracción HLS → MultiEmbed: activar o apagar cada web, cambiar su dominio, ver su último resultado y probar un título.

✓Arreglos

  • En "Solo HLS", al quitar los servidores que no son HLS quedaban líneas separadoras sueltas en el menú: ahora nunca quedan dos seguidas ni al final.
  • Los servidores que llegan tarde se agregan debajo de los interruptores y no entre ellos.
  • Con las URLs /f/embed/movie/ID, los pedidos internos del reproductor (renovar el permiso, respaldo del Direct, SoloLatino) iban a la URL del embed y el guard los rechazaba con 403: ahora van directo a f.php. Esto completa el arreglo de "cambiar de servidor después de unos minutos".
v3.6.9vimeos reproduce siempre en el reproductor

+Nuevo

  • Opción "vimeos.zip siempre por el proxy" en Extracción HLS → Motor Clean (activada).

✓Arreglos

  • El Direct de vimeos.zip a veces no arrancaba en el reproductor y en el link de la API sí: el reproductor lo pedía directo (con el Referer del sitio) y el link "play" lo terminaba pasando por el proxy. Ahora el reproductor también lo pasa por cps.php desde el primer intento, sin Referer.
  • Vale para el Direct que llega del servidor y para el que inyecta el navegador desde el worker de Lamovie.
v3.6.8Endpoints con tu formato /f/embed

↑Mejoras

  • La portada documenta y genera los embeds con tu formato: /f/embed/movie/{id} y /f/embed/tv/{id}/{temporada}/{episodio} (también en la vista previa y el generador).
v3.6.7Cambiar de servidor siempre conecta

✓Arreglos

  • Después de unos minutos viendo algo, elegir de nuevo el mismo servidor u otro ya no conectaba: el permiso interno del reproductor vencía a los 5 minutos. Ahora se renueva solo mientras la página está abierta, al volver a la pestaña y al desbloquear el celular.
  • Si un pedido igual llega con el permiso vencido, se renueva y se reintenta automáticamente.
  • El control de "HLS sin video" ya no afecta a un servidor que el usuario dejó de mirar.
v3.6.6Direct (VideoAPI / vimeos) y Fastream

+Nuevo

  • Servidor "vimeos" de respaldo del Direct: el embed de vimeos.net que da el worker se extrae con el motor Clean.

✓Arreglos

  • El Direct de Lamovie/VideoAPI (vimeos.zip) fallaba con HTTP 502 por el proxy: ese CDN rechaza cualquier Referer u Origin. Ahora se pide limpio, igual que hacía vimeos-sw.js.
  • La página del link "play" ya no manda Referer, así el Direct también puede cargar directo desde el navegador.
  • El respaldo del Direct en el reproductor usa la misma regla.
  • Fastream ya no se muestra como HLS que nunca arranca: queda como iframe (su video solo funciona en su propio reproductor). Configurable en Extracción HLS → Ajustes.
v3.6.4El link "play" se recupera solo

↑Mejoras

  • Si un video de otro servidor no carga directo (permisos del CDN, Referer o IP), la página del link "play" lo reintenta sola por el proxy cps.php.
  • Si igual falla, muestra el motivo exacto (por ejemplo "manifestLoadError · HTTP 403") y qué respondió el servidor de video al proxy.
v3.6.2La API responde en /api/v1 sin tocar nginx y llegan las Novedades

+Nuevo

  • Sección "Novedades" en la portada con el detalle de cada versión.

✓Arreglos

  • Los links /api/v1/… abrían la portada cuando el servidor no tenía la regla de nginx: ahora la propia portada los deriva a la API y responden el JSON.
v3.6.1Links de acceso para tus clientes

+Nuevo

  • Panel → API pública: sección "Links de acceso para tus clientes" con el link de cada uno (clave incluida), botones Copiar, Abrir y Enviar por WhatsApp.

↑Mejoras

  • La ventana del link JSON se acomoda en el celular.
v3.6.0Panel rediseñado

+Nuevo

  • Panel con el mismo estilo que la portada: índigo, violeta y lima, menú lateral oscuro y encabezados con degradado.
  • Gráficos animados: anillo de caché, barras por hora que crecen, números que cuentan y barras de éxito que se llenan.
  • Nuevo inicio de sesión.
v3.5.8Portal para invitados de la API

+Nuevo

  • portal.php?key=…: el cliente entra con su link, busca películas o series y ve, abre o copia los HLS con su clave (mismos límites y estadísticas).
  • Botón "Link directo" por cliente con generador del link JSON.
v3.5.7Fastream reproduce de verdad

↑Mejoras

  • El navegador usa también los extractores de siempre (con reintentos) para Fastream, Vidspeed y lo que falle en el motor Clean.

✓Arreglos

  • Fastream figuraba como HLS sin extraerse: la página del embed ya no cuenta como video y ahora se extrae.
v3.5.6La API se abre en el navegador

+Nuevo

  • La clave puede ir en el link (?key=) y el JSON se ve ordenado.
  • Cada fuente trae "play": un link que abre el video con reproductor.
  • Abrir un link de cps.php en el navegador muestra un reproductor en vez del .m3u8 crudo.

✓Arreglos

  • La lista de dominios del cliente ya no bloquea abrir los links a mano.
v3.5.5Textos editables y fondo con portada

+Nuevo

  • Todos los mensajes del reproductor se editan desde el panel ("Espere, verificando si existe HLS…", avisos, estados, logo).
  • Mientras carga se ve la portada de TMDb desenfocada en vez de negro.
v3.5.4Nueva portada

+Nuevo

  • Portada de la API con lo más reciente de TMDb, documentación y generador de embeds con búsqueda en vivo.

↑Mejoras

  • VOE: se detecta cuando el host bloquea al servidor (DDoS-Guard) y pasa al siguiente.
v3.5.3Reproducción HLS más firme

+Nuevo

  • Si un HLS no muestra video en 10 s, pasa solo al respaldo o al siguiente servidor.
  • Panel → Extracción HLS: tabla de errores de reproducción reportados por los navegadores.
  • Las listas de video quedan en memoria: el siguiente visitante arranca sin pedirlas al CDN.

✓Arreglos

  • Segmentos que redirigen a otro servidor llegaban con cabeceras duplicadas y el video quedaba girando.
  • Segmentos comprimidos con tamaño equivocado y descargas dobles de segmentos disfrazados.
  • Direct: ya no se usa un token vencido guardado en caché y el nuevo reemplaza al viejo.
  • El logo UNLIMPLAY a veces desaparecía.
v3.5.2Solo HLS de verdad

↑Mejoras

  • Los HLS se extraen al cargar la página, antes del Play, y arranca con el primero listo.

✓Arreglos

  • En "Solo HLS" ya no aparecen iframes: los enlaces sin extractor (Netu, Mega…) se quitan.
v3.5.1El reproductor aparece al instante

↑Mejoras

  • Modo rápido: el reproductor no espera extracciones; las hace el navegador en paralelo.
  • No se espera más de 4 s a una API lenta.
  • Tiempos de cada carga en la consola del navegador.
v3.5.0Motor Clean

+Nuevo

  • 27 scrapers del MultiEmbed Clean Player integrados (StreamWish/HG, VidHide/Earnvids, Filemoon, Voe, Dood, OK.ru, Streamtape, Mixdrop…).
  • Proxy cps.php: Referer y cookies por CDN, lista completa reescrita y renovación del token a mitad del video.
  • Extracción en paralelo con procesos internos; Direct con respaldo por el proxy; MP4 con video nativo.
v3.4Responsive, Smart TV y modos de servidor

+Nuevo

  • Todo el reproductor y el panel se adaptan al celular.
  • Modo de servidores: ambos, solo HLS o solo iframes. Autoplay configurable. Modo TV con control remoto.

✓Arreglos

  • Login con sesiones de PHP en Redis (aaPanel) y con avisos de PHP 8.5.
  • Los HLS por hls_proxy1.php se firman para cada visitante (daba 403 al reutilizar la caché).
v3.3Actualizaciones e instalador

+Nuevo

  • Subir un zip desde el panel con vista previa, respaldo automático y reversión. Instalador en /install y panel en /admin.
v3.2Publicidad y API pública

+Nuevo

  • Editor de VAST, tiempos del preroll y sitios sin anuncios.
  • API pública de HLS con claves, límites y dominios por cliente.
v3.1Extracción HLS rápida

+Nuevo

  • Extracción en paralelo con memoria por enlace: cada embed se extrae una vez y lo comparten todos.
v3.0Panel de control

+Nuevo

  • Panel CMS de la API: servidores, reproductor, caché Redis en 3 capas, precalentado y estadísticas.