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

# प्रीसेट्स

> पुन: उपयोग योग्य रेंडर कॉन्फ़िगरेशन — बनाएं, अपडेट करें, सूची देखें, और अकाउंट डिफ़ॉल्ट सेट करें

प्रीसेट एक पुन: उपयोग योग्य रेंडर कॉन्फ़िगरेशन है — बैकग्राउंड, सबटाइटल स्टाइल, लेआउट — जिसे आप किसी भी प्रोजेक्ट या एक्सपोर्ट पर लागू कर सकते हैं। जब आपको कई ट्रैक्स में एक जैसा लुक चाहिए, तब प्रीसेट्स का उपयोग करें।

पूरा `preset` shape और हर enum-backed विकल्प के लिए
[Render settings reference](/en/render-settings-reference) देखें।

## प्रीसेट कब उपयोग करें

<Columns cols={2}>
  <Card title="प्रीसेट तब इस्तेमाल करें जब…" icon="check">
    आपको कई प्रोजेक्ट्स में एक जैसा लुक चाहिए और उसे एक ही जगह से अपडेट करने की
    जरूरत हो।
  </Card>

  <Card title="प्रोजेक्ट सेटिंग्स तब इस्तेमाल करें जब…" icon="sliders" href="/hi/api/project-settings">
    आपको प्रोजेक्ट-लोकल overrides चाहिए जिन्हें साझा करना उचित नहीं है।
  </Card>
</Columns>

## एंडपॉइंट्स

| Method   | Path                  | Purpose                                                |
| -------- | --------------------- | ------------------------------------------------------ |
| `GET`    | `/presets`            | authenticated अकाउंट के लिए प्रीसेट्स की सूची देखें।   |
| `POST`   | `/presets`            | नया प्रीसेट बनाएं।                                     |
| `GET`    | `/presets/{presetId}` | एकल प्रीसेट प्राप्त करें।                              |
| `PATCH`  | `/presets/{presetId}` | नाम अपडेट करें, body अपडेट करें, या डिफ़ॉल्ट सेट करें। |
| `DELETE` | `/presets/{presetId}` | एक प्रीसेट हटाएं।                                      |

पूरा request और response schemas साइडबार में **API reference** के अंतर्गत उपलब्ध हैं।

## एक प्रीसेट बनाएं

```bash theme={null}
curl -X POST https://api.youka.io/hi/api/v1/presets \
  -H "Authorization: Bearer yk_..." \
  -H "Idempotency-Key: create-neon-night-v1" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Neon Night",
    "preset": {
      "background": {
        "type": "gradient",
        "colors": ["#12001f", "#2f0a57"],
        "angle": 90
      },
      "singerTextStyles": {
        "0": {
          "fontFamily": "Inter",
          "textColor": "#00f5ff",
          "effectColor": "#ff4fd8"
        }
      }
    },
    "isDefault": false
  }'
```

response में नया `presetId` शामिल होता है। इसे सहेजें और प्रोजेक्ट्स या एक्सपोर्ट्स से इसे reference करें।

<Tip>
  हर `POST` के साथ एक idempotency key जोड़ें। उसी key को उसी payload के साथ दोबारा
  उपयोग करने पर डुप्लिकेट बनाने के बजाय मूल प्रीसेट लौटाया जाता है।
</Tip>

## वैध प्रीसेट फ़ील्ड्स खोजें

प्रीसेट्स को server-side पर `KaraokePresetSchema` के खिलाफ validate किया जाता है। SDK इस schema को export करता है ताकि आप runtime पर इसे JSON Schema में बदल सकें:

```ts theme={null}
import { KaraokePresetSchema } from "@youka/sdk";

const jsonSchema = KaraokePresetSchema.toJSONSchema();
```

CLI से:

```bash theme={null}
youka preset schema --json
```

Agent authors को प्रीसेट्स mutate करने से पहले यह कॉल करना चाहिए ताकि मॉडल को हर वैध field और value type पता हो।

Human-readable reference:

* [Render settings reference](/en/render-settings-reference)
* [CLI presets](/hi/cli/presets)
* [SDK presets](/hi/sdk/presets)

## एक प्रीसेट अपडेट करें

```bash theme={null}
curl -X PATCH https://api.youka.io/hi/api/v1/presets/preset_abc123 \
  -H "Authorization: Bearer yk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Neon Night v2",
    "preset": {
      "singerTextStyles": {
        "0": {
          "textColor": "#ff2a2a"
        }
      }
    }
  }'
```

`name` और `preset` में से कोई भी subset पास करें। जो फ़ील्ड्स आप शामिल नहीं करते, वे अपरिवर्तित रहती हैं।

## डिफ़ॉल्ट प्रीसेट सेट करें

हर अकाउंट में अधिकतम एक डिफ़ॉल्ट प्रीसेट होता है, जो नए प्रोजेक्ट्स पर अपने-आप लागू हो जाता है।

```bash theme={null}
curl -X PATCH https://api.youka.io/hi/api/v1/presets/preset_abc123 \
  -H "Authorization: Bearer yk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "isDefault": true
  }'
```

नया डिफ़ॉल्ट सेट करने पर पिछला डिफ़ॉल्ट अपने-आप unset हो जाता है।

## एक प्रीसेट लागू करें

तीन जगहों पर प्रीसेट को reference करें:

| Where                    | Field                                                 |
| ------------------------ | ----------------------------------------------------- |
| प्रोजेक्ट बनाते समय      | `POST /projects` में `presetId`                       |
| किसी भी समय प्रोजेक्ट पर | `PATCH /projects/{projectId}/settings` में `presetId` |
| एक्सपोर्ट समय पर         | `POST /projects/{projectId}/exports` में `presetId`   |

एक्सपोर्ट पर उदाहरण:

```bash theme={null}
curl -X POST https://api.youka.io/hi/api/v1/projects/prj_abc/exports \
  -H "Authorization: Bearer yk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "presetId": "preset_abc123",
    "resolution": "1080p",
    "quality": "high"
  }'
```

## एक प्रीसेट हटाएं

```bash theme={null}
curl -X DELETE https://api.youka.io/hi/api/v1/presets/preset_abc123 \
  -H "Authorization: Bearer yk_..." \
  -H "Idempotency-Key: delete-preset_abc123"
```

<Warning>
  प्रीसेट हटाने से उन प्रोजेक्ट्स या एक्सपोर्ट्स पर असर नहीं पड़ता जो पहले इससे
  रेंडर किए जा चुके हैं। हटाए गए प्रीसेट को reference करने वाले भविष्य के एक्सपोर्ट्स विफल हो जाएंगे।
</Warning>

## आगे क्या

* [Render settings reference](/en/render-settings-reference) — सभी shared field paths और enum values
* [Media](/hi/api/media) — प्रीसेट bodies से referenced
* [Project settings](/hi/api/project-settings) — किसी प्रोजेक्ट पर प्रीसेट लागू करें
* [CLI presets](/hi/cli/presets) — टर्मिनल से वही flow
* [SDK presets](/hi/sdk/presets) — TypeScript में वही endpoints
