# 01 · Instalar

Esta guía deja tu máquina lista para producir un video con el kit. Al terminar,
`npm run check` mostrará todo en verde.

El flujo completo del editor es:

```
imagen → animar → voz → transcribir → música → build → render → mezcla
```

No necesitás entender cada paso todavía. Acá solo instalamos las herramientas
base. La configuración de las API keys va en
[`docs/02-configurar-keys.md`](02-configurar-keys.md) y tu primer video en
[`docs/03-crear-primer-video.md`](03-crear-primer-video.md).

---

## Qué hace falta

| Herramienta | Para qué | Versión |
|---|---|---|
| **Node.js** | corre los runners (`node src/runners/...`) | **>= 18** |
| **ffmpeg** + **ffprobe** | mezcla de audio, masterización, lectura de medios | cualquiera reciente |
| **npx** | descarga y corre HyperFrames (build, render, transcripción) | viene con Node |

Dos detalles que ahorran confusión:

- **No hay que correr `npm install`.** El repo no tiene dependencias npm propias
  (no existe `node_modules`). Todo lo que se importa es del propio kit más los
  módulos nativos de Node.
- **HyperFrames se baja solo con `npx` la primera vez** que lo usás (build,
  render o transcripción). No se instala a mano; queda cacheado para las
  siguientes corridas. La versión queda fijada en el `package.json` de cada
  composición (hoy `0.6.20`).

---

## macOS (con Homebrew)

Si no tenés Homebrew, instalalo primero desde [brew.sh](https://brew.sh).

### 1) Node.js

Opción A — directo con Homebrew:

```bash
brew install node
```

Opción B — con `nvm` (recomendada si manejás varias versiones de Node):

```bash
brew install nvm
mkdir -p ~/.nvm
# Seguí las dos líneas que brew imprime para cargar nvm en tu shell (~/.zshrc).
# Después, en una terminal nueva:
nvm install 20
nvm use 20
```

> Si vas a usar un archivo `.env` para las keys (en vez del Keychain), conviene
> Node **>= 20.6**, que trae el flag `--env-file` nativo. Con el Keychain de
> macOS, Node 18 alcanza.

### 2) ffmpeg + ffprobe

```bash
brew install ffmpeg
```

`ffprobe` viene incluido en el mismo paquete.

### 3) Verificá las versiones

```bash
node --version     # v18 o superior
ffmpeg -version    # primera línea: ffmpeg version ...
ffprobe -version   # primera línea: ffprobe version ...
npx --version      # confirma que npx está disponible
```

---

## Linux

Usá el gestor de paquetes de tu distro.

**Debian / Ubuntu:**

```bash
# Node desde NodeSource (trae una versión actual; el Node de los repos suele ser viejo)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs

# ffmpeg (incluye ffprobe)
sudo apt-get install -y ffmpeg
```

**Fedora:**

```bash
sudo dnf install -y nodejs ffmpeg
```

**Arch:**

```bash
sudo pacman -S nodejs npm ffmpeg
```

> Alternativa multiplataforma: instalar Node con [`nvm`](https://github.com/nvm-sh/nvm)
> (`nvm install 20`). En Linux las API keys van por variables de entorno o un
> archivo `.env` (el Keychain de macOS no existe acá; ver
> [`docs/02-configurar-keys.md`](02-configurar-keys.md)).

Verificá igual que en macOS: `node --version`, `ffmpeg -version`,
`ffprobe -version`, `npx --version`.

---

## Windows

Dos caminos:

1. **WSL2 (recomendado).** Instalá Ubuntu desde la Microsoft Store y seguí los
   pasos de la sección **Linux** dentro de WSL. Es el camino más parejo con el
   resto de la guía.
2. **Windows nativo:**
   - Node.js: instalador LTS desde [nodejs.org](https://nodejs.org) (incluye
     `npm` y `npx`).
   - ffmpeg: descargalo de [ffmpeg.org/download.html](https://ffmpeg.org/download.html)
     (build de gyan.dev o BtbN) y agregá la carpeta `bin` al **PATH** del
     sistema. `ffprobe.exe` viene en el mismo paquete.

En Windows nativo, las keys van por variables de entorno o `.env` (no hay
Keychain). Para correr el chequeo con un `.env`:

```powershell
node --env-file=.env scripts\check-setup.mjs
```

---

## espeak-ng (opcional, casi nunca hace falta)

HyperFrames puede generar voz local con su propia TTS, y esa función necesita
`espeak-ng`. **En este kit la voz se genera con ElevenLabs**, así que no lo vas a
necesitar salvo que decidas usar la TTS local de HyperFrames. Si ese fuera el
caso:

```bash
# macOS
brew install espeak-ng

# Debian / Ubuntu
sudo apt-get install -y espeak-ng
```

---

## Descargar el repo

Si lo tenés en Git:

```bash
git clone <url-del-repo> editor-video-estandar
cd editor-video-estandar
```

O descargá el ZIP, descomprimilo y entrá a la carpeta:

```bash
cd ruta/a/editor-video-estandar
```

Recordá: **no corras `npm install`**. No hace falta.

---

## Verificá que todo está listo

Desde la raíz del repo:

```bash
npm run check
```

Esto corre `scripts/check-setup.mjs`, que revisa:

- **Herramientas:** Node.js (>= 18), `ffmpeg`, `ffprobe`, `npx`.
- **API keys:** Kie, ElevenLabs, Suno (obligatorias) y Gemini (opcional),
  leídas del Keychain de macOS o de variables de entorno.

El chequeo **nunca imprime el valor de una key**: solo dice si está configurada o
no. Una corrida sana se ve así:

```
=== Herramientas ===
✓ Node.js v20.x.x
✓ ffmpeg: ffmpeg version ...
✓ ffprobe: ffprobe version ...
✓ npx (para HyperFrames): 10.x.x

=== API keys (Keychain o variables de entorno) ===
✓ kie — Kie.ai (imágenes GPT + video I2V Grok)
✓ elevenlabs — ElevenLabs (voz TTS + efectos de sonido)
✓ suno — Suno via sunoapi.org (música)
• gemini — Google Gemini (respaldo opcional de imágenes) (sin configurar, opcional)

=== Resultado ===
✓ Todo listo. Seguí con docs/03-crear-primer-video.md
```

Lectura de los símbolos:

- `✓` (verde): correcto.
- `✗` (rojo): falta resolver. El comando termina con error y cuenta cada faltante.
- `•` (amarillo): aviso. Solo aparece en `gemini`, que es opcional y no detiene
  nada.

Si usás un archivo `.env` en vez del Keychain, corré el chequeo así (Node >= 20.6):

```bash
node --env-file=.env scripts/check-setup.mjs
```

---

## Si algo sale en rojo

| Síntoma | Qué hacer |
|---|---|
| `Node.js ... (se necesita >= 18)` | Actualizá Node (`brew upgrade node` o `nvm install 20 && nvm use 20`). |
| `ffmpeg: no encontrado` / `ffprobe: no encontrado` | Instalá ffmpeg (`brew install ffmpeg`) o confirmá que está en el PATH. |
| `npx: no encontrado` | Reinstalá Node; `npx` viene con él. |
| `kie / elevenlabs / suno (sin configurar)` | Configurá las keys siguiendo [`docs/02-configurar-keys.md`](02-configurar-keys.md). |

Más casos en [`docs/05-solucion-problemas.md`](05-solucion-problemas.md).

---

## Siguiente paso

Con las herramientas en verde, configurá las API keys:
[`docs/02-configurar-keys.md`](02-configurar-keys.md).
