# Instalacion - Entrega 1

## 1. Requisitos

- PHP 8.1 o superior.
- Extensiones PHP: `curl`, `openssl`, `json`, `session`.
- FFmpeg y ffprobe instalados si vas a usar modo compatible/transcode.
- Apache o Nginx con HTTPS para produccion.
- Acceso de escritura a `storage/`.

## 2. Copiar archivos

Descomprime el ZIP en una carpeta temporal y copia estos elementos a la raiz del proyecto actual:

```text
api/
core/
assets/pro-player/
storage/
player_pro.php
movie_pro.php
episode_pro.php
live_pro.php
multiscreen_pro.php
.env.example
.htaccess.example
README_PRO_PHASE1.md
docs/
patches/
```

No borres `player.php`, `load_player.php`, `movies.php`, `series.php`, `livetv.php` ni `multiscreen.php` todavia.

## 3. Crear `.env`

```bash
cp .env.example .env
php -r "echo bin2hex(random_bytes(32)), PHP_EOL;"
```

Copia el secreto generado en:

```env
STREAM_TOKEN_SECRET=...
```

Durante pruebas iniciales puedes dejar:

```env
ALLOWED_UPSTREAM_HOSTS=
```

Con ese valor vacio el sistema permite solamente el host que ya esta en `$_SESSION['server_url']`. En produccion debes poner los dominios reales del proveedor IPTV/CDN.

## 4. Permisos

En Debian/Ubuntu con Apache comunmente:

```bash
chown -R www-data:www-data storage
chmod -R 750 storage
```

En cPanel, asegúrate de que el usuario PHP pueda escribir dentro de `storage/`.

## 5. Verificar FFmpeg/ffprobe

```bash
/usr/bin/ffmpeg -version
/usr/bin/ffprobe -version
```

Si las rutas son distintas, cambia:

```env
FFMPEG_BIN=/ruta/a/ffmpeg
FFPROBE_BIN=/ruta/a/ffprobe
```

## 6. Primera prueba

Inicia sesion en la web actual y abre manualmente una URL como:

```text
/player_pro.php?type=movie&id=123&container_extension=mp4
/player_pro.php?type=live&id=123&container_extension=m3u8
```

Reemplaza `123` por un ID real de tu panel.

## 7. Logs

Los logs quedan en:

```text
storage/logs/
```

No deben contener usuario/password IPTV porque el logger redacta credenciales y tokens.
