> ## Documentation Index
> Fetch the complete documentation index at: https://docs.youka.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Youka CLI

> Crea karaoke, personaliza el estilo y exporta videos MP4 desde la línea de comandos

Youka CLI encapsula la API pública para que puedas crear karaoke a partir de una canción, personalizar la letra y el estilo del video, y exportar un MP4 final desde tu terminal o desde un agente.

## Instalación

<CodeGroup>
  ```bash npm theme={null}
  npm install -g @youka/cli
  ```

  ```bash pnpm theme={null}
  pnpm add -g @youka/cli
  ```

  ```bash yarn theme={null}
  yarn global add @youka/cli
  ```
</CodeGroup>

Verifica la instalación:

```bash theme={null}
youka --version
youka --help
```

## Configurar autenticación

<Steps>
  <Step title="Obtener una clave de API">
    Ve a [online.youka.io/account](https://online.youka.io/account), abre
    **API keys**, y copia una clave nueva.
  </Step>

  <Step title="Guardar la clave">
    Guarda la clave en `~/.youka/config.json`:

    ```bash theme={null}
    youka login YOUR_API_KEY
    ```

    O expórtala como una variable de entorno:

    ```bash theme={null}
    export YOUKA_API_KEY=YOUR_API_KEY
    ```
  </Step>
</Steps>

## Crear karaoke a partir de un archivo

Usa un archivo local de audio o video como fuente:

```bash theme={null}
youka project create ./song.mp3 --download --output ./karaoke.mp4 --wait --json
```

Esto sube la fuente, crea el proyecto de karaoke, renderiza una exportación y descarga el video MP4 final.

## Crear karaoke a partir de una URL

Pasa una URL de origen HTTP o HTTPS en lugar de una ruta de archivo:

```bash theme={null}
youka project create "https://example.com/song.mp4" --download --output ./karaoke.mp4 --wait --json
```

Para URLs de video alojadas, Youka usa `yt-dlp` para descargar desde la URL. Puedes instalar las dependencias de descarga por URL antes de la primera importación desde URL:

```bash theme={null}
youka deps ensure --for url
```

## Referencia

<Columns cols={2}>
  <Card title="Cuenta" icon="key" href="/es/cli/account">
    Inicia sesión, cierra sesión e inspecciona el estado de autenticación.
  </Card>

  <Card title="Créditos" icon="coins" href="/es/cli/credits">
    Inspecciona el saldo actual y los paquetes de créditos próximos a vencer.
  </Card>

  <Card title="Facturación" icon="credit-card" href="/es/cli/billing">
    Muestra precios y crea URLs de checkout o del portal.
  </Card>

  <Card title="Proyectos" icon="folder" href="/es/cli/projects">
    Crea, inspecciona, espera y actualiza proyectos.
  </Card>

  <Card title="Exportaciones" icon="file-video" href="/es/cli/exports">
    Renderiza artefactos de exportación en la nube o en local y descárgalos.
  </Card>

  <Card title="Preajustes" icon="palette" href="/es/cli/presets">
    Administra configuraciones de render reutilizables.
  </Card>

  <Card title="Medios" icon="image" href="/es/cli/media">
    Sube y administra medios reutilizables.
  </Card>

  <Card title="Tareas" icon="list-check" href="/es/cli/tasks">
    Inspecciona el estado de tareas de bajo nivel cuando sea necesario.
  </Card>

  <Card title="Dependencias" icon="box" href="/es/cli/deps">
    Inspecciona e instala dependencias para importación por URL y renderizado local.
  </Card>

  <Card title="Opciones globales" icon="gear" href="/es/cli/global-options">
    Flags disponibles en cada comando.
  </Card>
</Columns>

## Listo para agentes por defecto

Cada comando admite un modo legible por máquinas que devuelve un único sobre JSON con una forma estable. Usa estas flags para controlar el CLI desde agentes o scripts:

| Flag                      | Propósito                                                                                                 |
| ------------------------- | --------------------------------------------------------------------------------------------------------- |
| `--json`                  | Imprime exactamente un sobre JSON en stdout. Se suprimen el progreso y los logs.                          |
| `--body <file\|->`        | Combina un payload JSON desde un archivo o stdin. Las flags del CLI sobrescriben los campos coincidentes. |
| `--wait`                  | Hace polling de trabajos asíncronos (project create, exports) hasta que alcanzan un estado terminal.      |
| `--idempotency-key <key>` | Pasa una clave de idempotencia a cualquier operación de escritura.                                        |
| `--quiet`                 | Suprime la salida de progreso no JSON cuando se usa con `--wait`.                                         |
| `--api <url>`             | Sobrescribe la URL base de la API pública.                                                                |

Forma del sobre JSON:

```json theme={null}
{
  "ok": true,
  "data": {
    /* command result */
  }
}
```

En caso de error:

```json theme={null}
{
  "ok": false,
  "error": {
    "code": "INVALID_INPUT",
    "message": "Descripción legible para humanos",
    "details": {
      /* optional */
    }
  }
}
```

Consulta [Opciones globales](/es/cli/global-options) para la lista completa.

## Exportación en la nube vs local

`export create` se ejecuta en la nube por defecto. Pasa `--local` para renderizar en tu máquina usando la toolchain de Remotion incluida. Los renderizados locales requieren las dependencias de render:

```bash theme={null}
youka deps ensure --for render
```

Consulta [Exports](/es/cli/exports) para el flujo completo.

## Qué sigue

* [Account](/es/cli/account) - guarda tu clave de API
* [Projects](/es/cli/projects) - crea y procesa proyectos
* [Exports](/es/cli/exports) - renderiza un video de karaoke final
* [AI agents](/es/agents) - controla el CLI desde un flujo de trabajo automatizado
