(Antes se llamaba Maratón. La dirección del repo y el id del plugin siguen siendo maraton: quien ya lo tiene instalado recibe el nombre nuevo con la próxima actualización.)
Series, anime y películas en español —latino, castellano o subtitulado— para ver de corrido. Todo pasa en tu propio aparato: el plugin lee los catálogos de los sitios y la página del reproductor de cada episodio; si esa página no trae la dirección del video, la abre en un navegador oculto y le pasa al reproductor el video que encuentra. No hay servidores intermedios.
- Buscar: series, anime y películas en tres catálogos (SeriesKao, AllCalidad y SoloLatino). Los títulos de AllCalidad traen su ficha de TMDB, así que Kino les completa reparto, clasificación y más.
- Inicio: Nuevos episodios, Recién agregado, Series, Anime, Películas, Películas recientes y Series recientes (con "Ver más").
- Episodios de todas las temporadas, y la ficha de la serie (sinopsis, póster, año).
- Reproducir: prueba los servidores en orden y recuerda cuál te funcionó la última vez, así el siguiente episodio abre más rápido. Si el mismo episodio se vuelve a abrir en las horas siguientes, arranca sin buscar de nuevo.
- Si un sitio no tiene el video, lo busca en los otros sitios que tienes activos: el mismo título (y el mismo año, temporada y episodio) y nada parecido. Si no está igualito en ninguno, te lo dice en vez de ponerte otra cosa.
- Otros servidores e idiomas en la lista Servidor del reproductor ("Latino · Voe", "Subtitulado · Streamwish"…): se buscan solo si los eliges o si el que está sonando falla.
- Subtítulos en español cuando la página los trae.
- Descargar para ver sin conexión (en el celular).
En Kino: Ajustes ▸ Plugins ▸ Agregar, escribe xuper-plugin/maraton y toca Agregar. Antes de instalar vas
a ver con qué sitios se conecta y qué permisos pide.
Necesita Kino 0.9.50 o más nueva (plugins de apiVersion 6 con "browser": "pages": el navegador oculto también
puede leer páginas).
- "Puede abrir páginas web ocultas para mostrar contenido y encontrar el video" (en rojo). Los sitios no ponen la dirección del video en su HTML: la arma el reproductor de la página cuando corre. Por eso, cuando tocas reproducir (o cuando una descarga arranca), Kino abre esa página en un navegador oculto de tu aparato, sin cookies de nada más, y se queda con la dirección del video que la página pide. Y si SoloLatino responde con su revisión de Cloudflare a una lectura normal, el navegador oculto lee esa página (solo mientras la estás usando; Kino nunca resuelve captchas: si la página pide confirmar que eres humano, SoloLatino descansa 15 minutos y las otras fuentes siguen). La página no puede tocar tu red local, abrir ventanas ni descargar archivos, y se borra todo al cerrarse.
- "Puede reproducir video desde cualquier servidor que indique" (en rojo). El video vive en el servidor que el reproductor de cada página elija, y esos cambian; nunca uno de tu red local.
- "Puede descargar videos para verlos sin conexión".
- "Comparte registros de errores con Kino para corregir fallas": cuando algo falla (un sitio caído, una verificación, un servidor que no entrega el video), sale un aviso con códigos —qué sitio, qué servidor, cuánto tardó—, nunca direcciones, títulos ni lo que escribiste.
- Se conecta con:
serieskao.top,allcalidad.re,sololatino.net(los catálogos) yembed69.org,morencius.com,hglink.to,hlswish.com,voe.sx,vimeos.net,goodstream.one,videoapp.zip,filemoon.sx(los reproductores donde arranca la búsqueda del video).
- Página de PelisYSeries: un chip en Inicio (celular) o una entrada en la barra lateral (TV), con pestañas Series, Anime, Películas y Géneros, en los colores verdes del plugin.
- Categorías ▸ PelisYSeries: 22 géneros (Acción, Comedia, Drama, Terror, Animación, Doramas…), cada uno con lo que tienen SeriesKao y AllCalidad mezclado, página por página. El dibujo de cada género es una imagen de uno de sus títulos que se comprobó que carga (si la primera no existe, la siguiente, luego un póster).
En Ajustes ▸ PelisYSeries (o Plugins ▸ PelisYSeries ▸ Configurar):
| Ajuste | Qué cambia |
|---|---|
| Usar SeriesKao / Usar AllCalidad / Usar SoloLatino | De qué sitios salen la búsqueda, Inicio, la página y los géneros. No deja apagar los tres. |
| Idioma preferido | Latino (por defecto), Castellano o Subtitulado: primero se prueban los servidores de ese idioma. |
| Probar primero | Un servidor que quieres que se pruebe antes que los demás (dentro de tu idioma). Por defecto, el que funcionó la última vez. |
| Recordar enlaces unas horas | Si vuelves a abrir algo que ya viste hoy, arranca sin buscar de nuevo. Apágalo si un video se queda pegado. |
| Estado | Cuántos sitios usas, tu idioma y el último servidor que funcionó: el último cuya página entregó un video. El plugin no ve si después el video se reprodujo bien. |
| Revisar sitios | Prueba ahora cada sitio y te dice cuál responde y cuál pide una verificación. |
| Borrar enlaces guardados | Olvida los enlaces recordados y los servidores que funcionaron. |
- Un sitio caído o que pide una verificación no rompe los demás: la búsqueda muestra lo que sí respondió, e Inicio muestra las últimas filas buenas de un sitio que tarda. Un sitio que falla varias veces seguidas descansa unos minutos.
- En aparatos cuyo navegador oculto no funciona, se usan solo los servidores cuya página trae el video.
- La dirección de cada video dura unas horas (medido: 12 h). Si se vence mientras pausas, Kino la vuelve a buscar.
PelisYSeries usa casi todo lo que ofrece el SDK de plugins de Kino; plugin.js está comentado para leerse de arriba abajo.
- Manifiesto (
kino-plugin.json):apiVersion6,"browser": "pages"(captura de video y lectura de páginas),hostsexactos (nada de comodines),streamHosts: "any"porque el video vive en el CDN que elija cada reproductor,browser: true,download,meta,categoriesde mercado,section,theme(contrastes revisados conrun.mjs . theme), ícono propio y ajustes de todos los tipos útiles (section,toggle,select,status,action). - Errores con código y
userMessageen español para cada falla de red, sitio caído, verificación de Cloudflare o servidor que ya no existe; nunca un "no hay resultados" cuando lo que pasó es que nadie respondió. - Tiempos (
LIMITSenplugin.js): Inicio y la página contestan a los 12 s con lo que esté listo (filas guardadas para el sitio que tarda), la búsqueda a los 12,5 s, los dibujos de Categorías en 3 s;resolvelista servidores en 22 s como mucho, lee la página de cada reproductor en 6 s y da a cada página oculta una ventana medida por servidor (Streamwish 22 s, Vidhide 16 s, Voe 12 s…), siempre por debajo de los 75 s que Kino le da. Si el sitio del título no da video y quedan al menos 10 s, busca el mismo título en los otros sitios (pickMatch: mismo nombre normalizado o título original, mismo tipo, años a ±1, uno solo) y lo reproduce ahí con lo que queda del tiempo. - Búsqueda con
kino.rank(cabeza del título, orden por parecido, relevancia) y los títulos alternos de TMDB que Kino manda (originalTitle,altTitles). kino.storagecon vencimiento (ttlMs) para los enlaces, el último servidor que funcionó y el IMDb de cada serie.expiresInSecondssacado de la URL del CDN, yresolve(ref, { retry })que tira la copia guardada y manda al final el servidor rechazado. Un video sin vencimiento conocido o atado a cookies se recuerda 10 minutos como mucho.- Registros (
kino.log) de cada paso con su tiempo, solo host y ruta: nunca una query con tokens. - Pruebas (
npm test) contra páginas y respuestas guardadas de los sitios reales (test/fixtures), con unkinofalso; cada ajuste tiene la suya. - Sin llaves: no carga ninguna clave fija; si algún día hiciera falta, iría sellada en
secretsy se usaría conkino.secret(name), como dice la guía.
node <kino>/plugins/sdk/validate.mjs .
node <kino>/plugins/sdk/run.mjs . search dark
node <kino>/plugins/sdk/run.mjs . episodes 'sk|/serie/dark'
node <kino>/plugins/sdk/run.mjs . section generos
node <kino>/plugins/sdk/run.mjs . categories
node <kino>/plugins/sdk/run.mjs . theme
node <kino>/plugins/sdk/run.mjs . settingsStatus
node <kino>/plugins/sdk/run.mjs . action check
node <kino>/plugins/sdk/run.mjs . validateSettings '{"useSerieskao":false,"useAllcalidad":false}'
npm test
Firmar una versión (solo al publicar, después del último cambio a plugin.js y a version):
scripts/sign-release.sh <kino>/plugins/sdk
Firma con la clave de autor de xuper-plugin (~/.config/maraton-signing/xuper-plugin-author-key.pem, fuera del
repositorio, modo 600; huella E04E-EA25-1A34-290E), corre las pruebas y validate.mjs --repo xuper-plugin/maraton.
Guarda una copia de la clave: Kino la fija en la primera instalación y sin ella nadie puede recibir actualizaciones.
resolve no corre en el kit de Node (no hay navegador: responde browser_unavailable); pruébalo en un aparato. En un
build debug de Kino se puede instalar sin publicar con PluginSideloadProbe: copia esta carpeta a
files/debug-plugins/local/maraton/ e instala local/maraton.
Las descargas, medidas el 2026-10-04: la lista maestra HLS es VOD (#EXT-X-ENDLIST), variantes H.264 + AAC hasta
1080p, y los segmentos llegan como image/png (70 bytes de PNG y después paquetes MPEG-TS alineados), que el guardado
HLS de Kino ya limpia.
Al crear el repositorio (no antes):
gh repo edit xuper-plugin/maraton --add-topic kino-plugin --description "Series, anime y películas en latino, castellano o subtitulado. El video se busca en tu propio aparato."
El ícono sale de art/icon.svg (rsvg-convert -w 512 -h 512 art/icon.svg -o icon.png).