> ## 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

> Erstelle Karaoke, passe den Stil an und exportiere MP4-Videos über die Kommandozeile

Die Youka CLI kapselt die öffentliche API, sodass du aus einem Song Karaoke erstellen, Liedtext und Videostil anpassen und ein fertiges MP4 aus deinem Terminal oder über einen Agenten exportieren kannst.

## Installation

<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>

Überprüfe die Installation:

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

## Auth einrichten

<Steps>
  <Step title="API-Schlüssel abrufen">
    Gehe zu [online.youka.io/account](https://online.youka.io/account), öffne
    **API keys**, und kopiere einen neuen Schlüssel.
  </Step>

  <Step title="Schlüssel speichern">
    Speichere den Schlüssel dauerhaft in `~/.youka/config.json`:

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

    Oder exportiere ihn als Umgebungsvariable:

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

## Karaoke aus einer Datei erstellen

Verwende eine lokale Audio- oder Videodatei als Quelle:

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

Das lädt die Quelle hoch, erstellt das Karaoke-Projekt, rendert einen Export und lädt das fertige MP4-Video herunter.

## Karaoke aus einer URL erstellen

Übergib statt eines Dateipfads eine HTTP- oder HTTPS-Quell-URL:

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

Bei gehosteten Video-URLs verwendet Youka `yt-dlp`, um von der URL herunterzuladen. Du kannst die Abhängigkeiten für den URL-Download vor dem ersten URL-Import installieren:

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

## Referenz

<Columns cols={2}>
  <Card title="Konto" icon="key" href="/de/cli/account">
    Anmelden, abmelden und Auth-Status prüfen.
  </Card>

  <Card title="Guthaben" icon="coins" href="/de/cli/credits">
    Aktuelles Guthaben und auslaufende Guthabenpakete prüfen.
  </Card>

  <Card title="Abrechnung" icon="credit-card" href="/de/cli/billing">
    Preise anzeigen und Checkout- oder Portal-URLs erstellen.
  </Card>

  <Card title="Projekte" icon="folder" href="/de/cli/projects">
    Projekte erstellen, prüfen, darauf warten und aktualisieren.
  </Card>

  <Card title="Exporte" icon="file-video" href="/de/cli/exports">
    Export-Artefakte in der Cloud oder lokal rendern und herunterladen.
  </Card>

  <Card title="Voreinstellungen" icon="palette" href="/de/cli/presets">
    Wiederverwendbare Render-Konfigurationen verwalten.
  </Card>

  <Card title="Medien" icon="image" href="/de/cli/media">
    Wiederverwendbare Medien hochladen und verwalten.
  </Card>

  <Card title="Aufgaben" icon="list-check" href="/de/cli/tasks">
    Bei Bedarf den Low-Level-Status von Aufgaben prüfen.
  </Card>

  <Card title="Abhängigkeiten" icon="box" href="/de/cli/deps">
    Abhängigkeiten für URL-Import und lokales Rendering prüfen und installieren.
  </Card>

  <Card title="Globale Optionen" icon="gear" href="/de/cli/global-options">
    Flags, die bei jedem Befehl verfügbar sind.
  </Card>
</Columns>

## Standardmäßig agentenfähig

Jeder Befehl unterstützt einen maschinenlesbaren Modus, der genau einen JSON-Umschlag mit stabiler Struktur zurückgibt. Verwende diese Flags, um die CLI aus Agenten oder Skripten zu steuern:

| Flag                      | Zweck                                                                                                 |
| ------------------------- | ----------------------------------------------------------------------------------------------------- |
| `--json`                  | Gibt genau einen JSON-Umschlag auf stdout aus. Fortschritt und Logs werden unterdrückt.               |
| `--body <file\|->`        | Fügt eine JSON-Nutzlast aus einer Datei oder stdin zusammen. CLI-Flags überschreiben passende Felder. |
| `--wait`                  | Fragt asynchrone Jobs (project create, exports) ab, bis sie einen Endzustand erreichen.               |
| `--idempotency-key <key>` | Übergibt einen Idempotenzschlüssel an jede Schreiboperation.                                          |
| `--quiet`                 | Unterdrückt nicht-JSON-Fortschrittsausgaben bei Verwendung mit `--wait`.                              |
| `--api <url>`             | Überschreibt die Basis-URL der öffentlichen API.                                                      |

Struktur des JSON-Umschlags:

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

Bei Fehlern:

```json theme={null}
{
  "ok": false,
  "error": {
    "code": "INVALID_INPUT",
    "message": "Human-readable description",
    "details": {
      /* optional */
    }
  }
}
```

Siehe [Globale Optionen](/de/cli/global-options) für die vollständige Liste.

## Cloud- vs. lokaler Export

`export create` läuft standardmäßig in der Cloud. Übergib `--local`, um auf deinem Rechner mit der gebündelten Remotion-Toolchain zu rendern. Lokale Renderings erfordern die Render-Abhängigkeiten:

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

Siehe [Exporte](/de/cli/exports) für den vollständigen Ablauf.

## Wie geht es weiter

* [Konto](/de/cli/account) – deinen API-Schlüssel speichern
* [Projekte](/de/cli/projects) – Projekte erstellen und verarbeiten
* [Exporte](/de/cli/exports) – ein fertiges Karaoke-Video rendern
* [AI agents](/de/agents) – die CLI aus einem automatisierten Workflow steuern
