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

> Crie karaokê, personalize o estilo e exporte vídeos MP4 pela linha de comando

O Youka CLI encapsula a API pública para que você possa criar karaokê a partir de uma música, personalizar a letra e o estilo do vídeo e exportar um MP4 finalizado a partir do seu terminal ou de um agente.

## Instalação

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

Verifique a instalação:

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

## Configurar autenticação

<Steps>
  <Step title="Obter uma chave de API">
    Acesse [online.youka.io/account](https://online.youka.io/account), abra
    **API keys** e copie uma nova chave.
  </Step>

  <Step title="Salvar a chave">
    Persista a chave em `~/.youka/config.json`:

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

    Ou exporte-a como uma variável de ambiente:

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

## Criar karaokê a partir de um arquivo

Use um arquivo de áudio ou vídeo local como fonte:

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

Isso envia a fonte, cria o projeto de karaokê, renderiza uma exportação e baixa o vídeo MP4 finalizado.

## Criar karaokê a partir de uma URL

Passe uma URL de origem HTTP ou HTTPS em vez de um caminho de arquivo:

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

Para URLs de vídeo hospedadas, o Youka usa `yt-dlp` para baixar a partir da URL. Você pode instalar as dependências de download de URL antes da primeira importação por URL:

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

## Referência

<Columns cols={2}>
  <Card title="Conta" icon="key" href="/pt/cli/account">
    Faça login, logout e inspecione o estado de autenticação.
  </Card>

  <Card title="Créditos" icon="coins" href="/pt/cli/credits">
    Inspecione o saldo atual e os pacotes de crédito que expiram.
  </Card>

  <Card title="Cobrança" icon="credit-card" href="/pt/cli/billing">
    Exiba preços e crie URLs de checkout ou do portal.
  </Card>

  <Card title="Projetos" icon="folder" href="/pt/cli/projects">
    Crie, inspecione, aguarde e atualize projetos.
  </Card>

  <Card title="Exportações" icon="file-video" href="/pt/cli/exports">
    Renderize artefatos de exportação na nuvem ou localmente e faça o download.
  </Card>

  <Card title="Presets" icon="palette" href="/pt/cli/presets">
    Gerencie configurações de renderização reutilizáveis.
  </Card>

  <Card title="Mídia" icon="image" href="/pt/cli/media">
    Envie e gerencie mídia reutilizável.
  </Card>

  <Card title="Tarefas" icon="list-check" href="/pt/cli/tasks">
    Inspecione o estado de tarefas de baixo nível quando necessário.
  </Card>

  <Card title="Dependências" icon="box" href="/pt/cli/deps">
    Inspecione e instale dependências de importação por URL e de renderização local.
  </Card>

  <Card title="Opções globais" icon="gear" href="/pt/cli/global-options">
    Flags disponíveis em todos os comandos.
  </Card>
</Columns>

## Pronto para agentes por padrão

Todo comando oferece suporte a um modo legível por máquina que retorna um único envelope JSON com um formato estável. Use estas flags para controlar o CLI a partir de agentes ou scripts:

| Flag                      | Finalidade                                                                                          |
| ------------------------- | --------------------------------------------------------------------------------------------------- |
| `--json`                  | Imprima exatamente um envelope JSON no stdout. Progresso e logs são suprimidos.                     |
| `--body <file\|->`        | Mescle um payload JSON de um arquivo ou do stdin. Flags do CLI sobrescrevem campos correspondentes. |
| `--wait`                  | Consulte jobs assíncronos (project create, exports) até atingirem um estado terminal.               |
| `--idempotency-key <key>` | Passe uma chave de idempotência para qualquer operação de escrita.                                  |
| `--quiet`                 | Suprima a saída de progresso não-JSON ao usar com `--wait`.                                         |
| `--api <url>`             | Substitua a URL base da API pública.                                                                |

Formato do envelope JSON:

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

Em caso de falha:

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

Veja [Opções globais](/pt/cli/global-options) para a lista completa.

## Exportação na nuvem vs local

`export create` roda na nuvem por padrão. Passe `--local` para renderizar na sua máquina usando o toolchain Remotion incluído. Renderizações locais exigem as dependências de renderização:

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

Veja [Exportações](/pt/cli/exports) para o fluxo completo.

## Próximos passos

* [Conta](/pt/cli/account) - salve sua chave de API
* [Projetos](/pt/cli/projects) - crie e processe projetos
* [Exportações](/pt/cli/exports) - renderize um vídeo de karaokê finalizado
* [AI agents](/pt/agents) - controle o CLI a partir de um fluxo de trabalho automatizado
