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

> Создавайте караоке, настраивайте стиль и экспортируйте MP4-видео из командной строки

Youka CLI оборачивает публичный API, чтобы вы могли создавать караоке из песни, настраивать текст и стиль видео и экспортировать готовый MP4 из терминала или из агента.

## Установка

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

Проверьте установку:

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

## Настройка аутентификации

<Steps>
  <Step title="Получите API-ключ">
    Перейдите на [online.youka.io/account](https://online.youka.io/account), откройте
    **API keys** и скопируйте новый ключ.
  </Step>

  <Step title="Сохраните ключ">
    Сохраните ключ в `~/.youka/config.json`:

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

    Или экспортируйте его как переменную окружения:

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

## Создание караоке из файла

Используйте локальный аудио- или видеофайл в качестве источника:

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

Эта команда загружает исходник, создаёт проект караоке, рендерит экспорт и скачивает готовое MP4-видео.

## Создание караоке по URL

Передайте исходный URL (HTTP или HTTPS) вместо пути к файлу:

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

Для размещённых видео-URL Youka использует `yt-dlp`, чтобы скачать файл по URL. Перед первым импортом по URL вы можете установить зависимости для скачивания:

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

## Справочник

<Columns cols={2}>
  <Card title="Account" icon="key" href="/ru/cli/account">
    Войдите, выйдите и проверьте состояние аутентификации.
  </Card>

  <Card title="Credits" icon="coins" href="/ru/cli/credits">
    Проверьте текущий баланс и пакеты кредитов, срок действия которых истекает.
  </Card>

  <Card title="Billing" icon="credit-card" href="/ru/cli/billing">
    Просматривайте цены и создавайте URL для оплаты или портала.
  </Card>

  <Card title="Projects" icon="folder" href="/ru/cli/projects">
    Создавайте проекты, просматривайте их, ожидайте завершения и обновляйте.
  </Card>

  <Card title="Exports" icon="file-video" href="/ru/cli/exports">
    Рендерите артефакты экспорта в облаке или локально и скачивайте их.
  </Card>

  <Card title="Presets" icon="palette" href="/ru/cli/presets">
    Управляйте переиспользуемыми конфигурациями рендера.
  </Card>

  <Card title="Media" icon="image" href="/ru/cli/media">
    Загружайте и управляйте переиспользуемыми медиафайлами.
  </Card>

  <Card title="Tasks" icon="list-check" href="/ru/cli/tasks">
    При необходимости проверяйте низкоуровневое состояние задач.
  </Card>

  <Card title="Dependencies" icon="box" href="/ru/cli/deps">
    Проверяйте и устанавливайте зависимости для импорта по URL и локального рендера.
  </Card>

  <Card title="Global options" icon="gear" href="/ru/cli/global-options">
    Флаги, доступные в каждой команде.
  </Card>
</Columns>

## По умолчанию готов для агентов

Каждая команда поддерживает машиночитаемый режим, который возвращает один JSON-конверт со стабильной структурой. Используйте эти флаги, чтобы управлять CLI из агентов или скриптов:

| Флаг                      | Назначение                                                                             |
| ------------------------- | -------------------------------------------------------------------------------------- |
| `--json`                  | Вывести ровно один JSON-конверт в stdout. Прогресс и логи подавляются.                 |
| `--body <file\|->`        | Объединить JSON-пayload из файла или stdin. Флаги CLI переопределяют совпадающие поля. |
| `--wait`                  | Опрос async-задач (создание проекта, экспорты) до достижения терминального состояния.  |
| `--idempotency-key <key>` | Передать ключ идемпотентности в любую операцию записи.                                 |
| `--quiet`                 | Подавлять не-JSON вывод прогресса при использовании с `--wait`.                        |
| `--api <url>`             | Переопределить базовый URL публичного API.                                             |

Форма JSON-конверта:

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

При ошибке:

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

Полный список см. в разделе [Global options](/ru/cli/global-options).

## Облачный vs локальный экспорт

`export create` по умолчанию выполняется в облаке. Передайте `--local`, чтобы рендерить на вашей машине с использованием поставляемого toolchain Remotion. Для локального рендера требуются зависимости рендера:

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

Полный рабочий процесс см. в разделе [Exports](/ru/cli/exports).

## Что дальше

* [Account](/ru/cli/account) — сохраните ваш API-ключ
* [Projects](/ru/cli/projects) — создавайте и обрабатывайте проекты
* [Exports](/ru/cli/exports) — рендерите готовое караоке-видео
* [AI agents](/ru/agents) — управляйте CLI из автоматизированного workflow-а
