> ## 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 एक्सपोर्ट कर सकें।

## Install

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

## Set up auth

<Steps>
  <Step title="Get an API key">
    [online.youka.io/account](https://online.youka.io/account) पर जाएँ, **API keys** खोलें, और एक नई key कॉपी करें।
  </Step>

  <Step title="Save the key">
    key को `~/.youka/config.json` में सेव रखें:

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

    या इसे environment variable के रूप में export करें:

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

## Create karaoke from a file

सोर्स के रूप में लोकल ऑडियो या वीडियो फ़ाइल का उपयोग करें:

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

यह सोर्स को अपलोड करता है, कराओके प्रोजेक्ट बनाता है, एक एक्सपोर्ट रेंडर करता है, और तैयार MP4 वीडियो डाउनलोड करता है।

## Create karaoke from a URL

फ़ाइल पाथ की जगह HTTP या HTTPS सोर्स URL पास करें:

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

होस्टेड वीडियो URLs के लिए, Youka URL से डाउनलोड करने हेतु `yt-dlp` का उपयोग करता है। पहली URL import से पहले आप URL डाउनलोड dependencies इंस्टॉल कर सकते हैं:

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

## Reference

<Columns cols={2}>
  <Card title="Account" icon="key" href="/hi/cli/account">
    लॉग इन, लॉग आउट करें, और auth स्टेट की जाँच करें।
  </Card>

  <Card title="Credits" icon="coins" href="/hi/cli/credits">
    वर्तमान बैलेंस और एक्सपायर होने वाले क्रेडिट पैकेज देखें।
  </Card>

  <Card title="Billing" icon="credit-card" href="/hi/cli/billing">
    प्राइसिंग दिखाएँ और checkout या portal URLs बनाएँ।
  </Card>

  <Card title="Projects" icon="folder" href="/hi/cli/projects">
    प्रोजेक्ट बनाएँ, देखें, उन पर wait करें, और अपडेट करें।
  </Card>

  <Card title="Exports" icon="file-video" href="/hi/cli/exports">
    क्लाउड या लोकल एक्सपोर्ट आर्टिफैक्ट्स रेंडर करें और उन्हें डाउनलोड करें।
  </Card>

  <Card title="Presets" icon="palette" href="/hi/cli/presets">
    पुन: उपयोग योग्य रेंडर कॉन्फ़िगरेशन मैनेज करें।
  </Card>

  <Card title="Media" icon="image" href="/hi/cli/media">
    पुन: उपयोग योग्य मीडिया अपलोड करें और मैनेज करें।
  </Card>

  <Card title="Tasks" icon="list-check" href="/hi/cli/tasks">
    ज़रूरत पड़ने पर लो-लेवल टास्क स्टेट की जाँच करें।
  </Card>

  <Card title="Dependencies" icon="box" href="/hi/cli/deps">
    URL import और लोकल रेंडर dependencies की जाँच करें और इंस्टॉल करें।
  </Card>

  <Card title="Global options" icon="gear" href="/hi/cli/global-options">
    हर कमांड पर उपलब्ध flags।
  </Card>
</Columns>

## Agent-ready by default

हर कमांड एक machine-readable मोड सपोर्ट करता है, जो स्थिर shape वाला एक ही JSON envelope लौटाता है। एजेंट्स या स्क्रिप्ट्स से CLI चलाने के लिए इन flags का उपयोग करें:

| Flag                      | Purpose                                                                                              |
| ------------------------- | ---------------------------------------------------------------------------------------------------- |
| `--json`                  | stdout पर ठीक एक JSON envelope प्रिंट करें। प्रोग्रेस और लॉग्स दबा दिए जाते हैं।                     |
| `--body <file\|->`        | किसी फ़ाइल या stdin से JSON payload मर्ज करें। CLI flags मैच होने वाले फ़ील्ड्स को ओवरराइड करते हैं। |
| `--wait`                  | async jobs (project create, exports) को तब तक poll करें जब तक वे terminal state में न पहुँच जाएँ।    |
| `--idempotency-key <key>` | किसी भी write operation को idempotency key पास करें।                                                 |
| `--quiet`                 | `--wait` के साथ उपयोग करने पर non-JSON प्रोग्रेस आउटपुट दबाएँ।                                       |
| `--api <url>`             | public API base URL को ओवरराइड करें।                                                                 |

JSON envelope shape:

```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](/hi/cli/global-options) देखें।

## Cloud vs local export

`export create` डिफ़ॉल्ट रूप से क्लाउड में चलता है। बंडल्ड Remotion toolchain का उपयोग करके अपनी मशीन पर रेंडर करने के लिए `--local` पास करें। लोकल रेंडर्स के लिए render dependencies चाहिए:

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

पूरे वर्कफ़्लो के लिए [Exports](/hi/cli/exports) देखें।

## What's next

* [Account](/hi/cli/account) - अपनी API key सेव करें
* [Projects](/hi/cli/projects) - प्रोजेक्ट बनाएँ और प्रोसेस करें
* [Exports](/hi/cli/exports) - तैयार कराओके वीडियो रेंडर करें
* [AI agents](/hi/agents) - ऑटोमेटेड वर्कफ़्लो से CLI चलाएँ
