SATPLAYTV WEBPLAYER - VERSION PARA HOSTING COMPARTIDO (cPanel / FTP) ===================================================================== Creado por SatPlayTV - © 2026 SatPlayTV. Todos los derechos reservados. Esta es la MISMA aplicacion que corre en tu servidor Ubuntu (https://webplayer.cojedor.top), preparada para un hosting compartido: PHP + SQLite o MySQL/MariaDB. No necesita Docker, ni acceso root, y ffmpeg es OPCIONAL (solo para el modo "Compatibilidad", ver seccion 5b). Incluye su panel de administracion completo (DNS, clientes, actividad, ajustes). IMPORTANTE: este paquete NO se ha subido a ningun hosting. Lo subes tu cuando quieras (el hosting real de satplaytv.com no se ha tocado). --------------------------------------------------------------------- 1. REQUISITOS DEL HOSTING --------------------------------------------------------------------- - PHP 7.4 o superior (recomendado 8.1 - 8.3). En cPanel: "Seleccionar version de PHP". - Extensiones: pdo_sqlite (o pdo_mysql), curl, openssl, mbstring, json. (El instalador las comprueba.) - Que el hosting permita conexiones salientes (cURL) a tus servidores IPTV (puertos http/https normales y puertos altos como 8080/25461). Algunos hostings bloquean puertos altos: pregunta al soporte si no conecta. - HTTPS activo en el dominio (Let's Encrypt/AutoSSL de cPanel). --------------------------------------------------------------------- 2. SUBIDA (Administrador de archivos de cPanel o FTP) --------------------------------------------------------------------- Recomendado: un subdominio propio, p. ej. webplayer.satplaytv.com (cPanel > Dominios > Crear subdominio; carpeta raiz del subdominio, p. ej. /home/USUARIO/webplayer.satplaytv.com). (Tambien vale una subcarpeta: https://satplaytv.com/webplayer/ ; la aplicacion detecta la ruta sola.) 1) Descomprime Webplayer-hosting.zip en tu PC. Dentro hay la carpeta webplayer/ con todo el codigo. 2) Sube TODO EL CONTENIDO de la carpeta webplayer/ (no la carpeta en si) a la carpeta raiz del subdominio. Debes ver directamente en la raiz: index.php, install.php, api.php, p.php, admin/, assets/, includes/, data/, .htaccess ... (Si usas el Administrador de archivos puedes subir el zip entero y "Extraer"; despues mueve el contenido.) Asegurate de subir tambien los archivos ocultos (.htaccess, .user.ini, data/.htaccess). 3) Permisos: carpetas 755 (o 750) y archivos 644. La carpeta data/ y la raiz deben ser escribibles por PHP (en cPanel normalmente ya lo son; si el instalador se queja, pon 755/775 a data/). --------------------------------------------------------------------- 3. INSTALACION (instalador web) --------------------------------------------------------------------- 1) Abre https://TU-DOMINIO/install.php 2) Revisa que todos los requisitos salgan en verde. 3) Base de datos: - SQLite (recomendado, sin configurar nada): se crea un fichero con nombre aleatorio dentro de data/. - MySQL/MariaDB: crea antes en cPanel > "Bases de datos MySQL" una base y un usuario con todos los privilegios, y rellena servidor (normalmente localhost), base, usuario y clave. Prefijo de tablas: wp_. 4) Administrador: escribe un nombre de usuario y deja la clave vacia para que se genere una aleatoria fuerte (o pon una de 12+ caracteres). 5) Si el dominio va por Cloudflare, marca "detras de Cloudflare / proxy" para registrar la IP real del visitante. 6) (Opcional, recomendado si tu hosting NO es Apache, p. ej. Nginx/LiteSpeed sin .htaccess): en "Carpeta de datos" pon una ruta absoluta FUERA de la web, p. ej. /home/USUARIO/webplayer-data (la crea el instalador). 7) Pulsa Instalar. Se muestra UNA SOLA VEZ el usuario y la clave del administrador: guardalos. El instalador crea config.php en la raiz (si no puede, te muestra el contenido para pegarlo tu). 8) BORRA install.php del hosting inmediatamente despues. Panel de administracion: https://TU-DOMINIO/admin/ Reproductor de clientes: https://TU-DOMINIO/ API del reproductor: https://TU-DOMINIO/api.php (la usa el propio reproductor) Proxy de streams: https://TU-DOMINIO/p.php (solo funciona con token; sin token responde 403) --------------------------------------------------------------------- 4. PRIMEROS PASOS --------------------------------------------------------------------- 1) Entra en /admin/ > "DNS / Servidores" > "+ Anadir DNS": - Nombre visible (lo ven los clientes, p. ej. "Servidor 1"). - Tipo Xtream: URL base (http://servidor:puerto) y usuario/clave IPTV por defecto. Tambien puedes pegar una URL get.php con usuario y clave: se convierte sola a Xtream. - Tipo M3U: URL de la lista. - Pulsa "Probar" para comprobar que conecta. 2) "Clientes" > "+ Nuevo cliente": usuario, caducidad, maximo de conexiones, DNS permitidos (ninguno marcado = todos los activos) y, si quieres, usuario/clave IPTV propios por DNS. Si dejas la clave vacia se genera una segura y se muestra una sola vez (copiala). 3) Pasa a tu cliente la direccion del reproductor (https://TU-DOMINIO/) y su usuario/clave del WebPlayer. El cliente NUNCA ve el DNS real ni las credenciales IPTV: todo pasa por el servidor. 4) "Actividad": quien esta en linea, que ve, expulsar reproducciones y registro de eventos. 5) "Ajustes": titulo, intro, tiempos, limite de intentos de login, cambiar la clave de administrador. --------------------------------------------------------------------- 5. LIMITES DEL HOSTING COMPARTIDO (importante) --------------------------------------------------------------------- - El video pasa por PHP: cada espectador mantiene un proceso PHP ocupado mientras ve. Los hostings compartidos suelen limitar los procesos simultaneos (p. ej. 20-30 "entry processes") y el tiempo maximo de ejecucion. Resultado: sirve bien para pocos clientes a la vez. Para muchos espectadores usa la version del servidor Ubuntu. - Si el hosting corta las conexiones largas, el reproductor se reconecta solo (hasta 4 veces) y despues cambia al siguiente formato/DNS. - Algunos hostings prohiben el streaming de video por la cuenta compartida; revisa sus condiciones de uso. - Si el hosting solo ofrece PHP 7.4 funciona igual; con PHP 8.x es algo mas rapido. --------------------------------------------------------------------- 5b. TRANSCODIFICACION / MODO COMPATIBILIDAD (OPCIONAL, necesita ffmpeg) --------------------------------------------------------------------- - La aplicacion detecta SOLA si el hosting tiene ffmpeg (y la funcion PHP proc_open). Si no lo tiene (lo normal en hosting compartido), la opcion NO aparece en Ajustes ni el boton "Compatibilidad" en el reproductor, y todo funciona como siempre (reproduccion directa; algunos formatos como MKV/AVI/HEVC/AC3 pueden no verse en ciertos navegadores, sobre todo iPhone). - Si tu hosting es un VPS/servidor propio con ffmpeg instalado (apt install ffmpeg) y proc_open habilitado, en Ajustes aparecera la seccion "Transcodificacion / Compatibilidad (ffmpeg)": activar, maximo de transcodificaciones simultaneas (por defecto 2) y calidad. Convierte a HLS (H.264 + AAC) bajo demanda y borra los temporales solos (carpeta data/tc). Si ffmpeg esta en una ruta no estandar, anade en config.php: 'ffmpeg_path' => '/ruta/ffmpeg', 'ffprobe_path' => '/ruta/ffprobe'. - Limpieza: se hace sola mientras haya espectadores. Opcional (cron cada minuto): php /ruta/tools/tc_reaper.php - Aviso: transcodificar consume mucha CPU; en un hosting compartido suele estar prohibido. Usalo solo en servidores propios. --------------------------------------------------------------------- 6. SEGURIDAD --------------------------------------------------------------------- - Claves guardadas con hash (bcrypt/argon), CSRF en todos los formularios, consultas preparadas, limite de intentos de login (por IP y usuario), cookies de sesion HttpOnly/SameSite/Secure, cabeceras de seguridad (CSP, HSTS...). - Las carpetas includes/, data/ y tools/ llevan .htaccess que deniega el acceso web. Compruebalo tras instalar: https://TU-DOMINIO/includes/db.php y https://TU-DOMINIO/data/ deben dar 403 o 404. Si NO dan 403/404 (hosting sin Apache), usa la "Carpeta de datos" fuera de la web (paso 3.6) y pide al soporte que bloquee includes/ y tools/. - Borra install.php tras instalar. No subas config.php a repositorios ni lo compartas (lleva la clave de cifrado). --------------------------------------------------------------------- 7. ACTUALIZAR A UNA VERSION NUEVA --------------------------------------------------------------------- 1) Haz copia de config.php y de la carpeta data/ (o de la base MySQL). 2) Sube los archivos nuevos encima, SIN sobrescribir config.php ni data/. 3) Vacia la cache desde Ajustes si hace falta. COPIA DE SEGURIDAD: basta con guardar config.php + la carpeta data/ (SQLite) o config.php + exportar la base MySQL. RECUPERAR LA CLAVE DE ADMIN: si tienes acceso SSH/cron, ejecuta php tools/reset_admin.php (muestra una clave nueva). Sin SSH: borra config.php y data/ (pierdes datos) y vuelve a instalar, o restaura la copia. DESINSTALAR: borra los archivos y, si usaste MySQL, las tablas con prefijo wp_.