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

# प्रीसेट्स

> SDK से पुन: उपयोग योग्य रेंडर कॉन्फ़िगरेशन प्रबंधित करें

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

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

## `client.presets.list(options?)`

Authenticated अकाउंट के स्वामित्व वाले सभी प्रीसेट्स की सूची दें।

```ts theme={null}
const presets = await client.presets.list();
presets.forEach((p) => console.log(p.id, p.name, p.isDefault));
```

## `client.presets.get(presetId, options?)`

एक single प्रीसेट फ़ेच करें।

```ts theme={null}
const preset = await client.presets.get("preset_abc123");
```

## `client.presets.create(body, options?)`

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

```ts theme={null}
const preset = await client.presets.create({
  name: "Neon Night",
  preset: {
    background: {
      type: "gradient",
      colors: ["#12001f", "#2f0a57"],
      angle: 90,
    },
    singerTextStyles: {
      0: {
        fontFamily: "Inter",
        textColor: "#00f5ff",
        effectColor: "#ff4fd8",
      },
    },
  },
  isDefault: false,
});
```

<ParamField path="name" type="string" required>
  Youka UI में दिखाया जाने वाला डिस्प्ले नाम।
</ParamField>

<ParamField path="preset" type="KaraokePreset" required>
  पूरा प्रीसेट बॉडी। human-readable फ़ील्ड मैप के लिए [`Render settings
      reference`](/en/render-settings-reference) का उपयोग करें, या machine-readable schema के लिए `KaraokePresetSchema.toJSONSchema()` का।
</ParamField>

<ParamField path="isDefault" type="boolean">
  नए प्रीसेट को अकाउंट डिफ़ॉल्ट के रूप में मार्क करें। एक समय में केवल एक प्रीसेट
  डिफ़ॉल्ट हो सकता है।
</ParamField>

Safe retries के लिए idempotency key के साथ pair करें:

```ts theme={null}
const preset = await client.presets.create(body, {
  idempotencyKey: "create-neon-night-v1",
});
```

## `client.presets.update(presetId, body, options?)`

मौजूदा प्रीसेट को patch करें। `name`, `preset`, और `isDefault` में से कोई भी subset पास करें।

```ts theme={null}
const updated = await client.presets.update("preset_abc123", {
  name: "Neon Night v2",
  preset: {
    singerTextStyles: {
      0: { textColor: "#ff2a2a" },
    },
  },
});
```

## `client.presets.delete(presetId, options?)`

एक प्रीसेट डिलीट करें।

```ts theme={null}
await client.presets.delete("preset_abc123", {
  idempotencyKey: "delete-preset_abc123",
});
```

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

## `client.presets.setDefault(presetId, options?)`

नए प्रोजेक्ट्स के लिए किसी प्रीसेट को डिफ़ॉल्ट के रूप में मार्क करें। यह `client.presets.update(presetId, { isDefault: true })` के आसपास एक convenience wrapper है।

```ts theme={null}
await client.presets.setDefault("preset_abc123");
```

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

## वैध फ़ील्ड्स ढूंढना

SDK Zod schema एक्सपोर्ट करता है जो प्रीसेट बॉडीज़ को validate करता है। Agents और form builders के लिए runtime पर इसे JSON Schema में कन्वर्ट करें:

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

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

<Tip>
  Agent authors: प्रीसेट्स को mutate करने से पहले इस schema को कॉल करें ताकि मॉडल को
  exact फ़ील्ड नाम और वैल्यू टाइप्स पता हों।
</Tip>

Human-readable reference:

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

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

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

<Tabs>
  <Tab title="प्रोजेक्ट बनाते समय">
    ```ts theme={null}
    await client.projects.create({
      source: { type: "path", path: "./song.mp3" },
      presetId: "preset_abc123",
    });
    ```
  </Tab>

  <Tab title="प्रोजेक्ट सेटिंग्स पर">
    ```ts theme={null}
    await client.projects.updateSettings("prj_abc123", {
      presetId: "preset_abc123",
    });
    ```
  </Tab>

  <Tab title="एक्सपोर्ट पर">
    ```ts theme={null}
    await client.exports.create("prj_abc123", {
      presetId: "preset_abc123",
      resolution: "1080p",
    });
    ```
  </Tab>
</Tabs>

## आगे क्या

* [Render settings reference](/en/render-settings-reference) — सभी साझा फ़ील्ड पाथ्स और enum वैल्यूज़
* [Media](/hi/sdk/media) — प्रीसेट बॉडीज़ से referenced
* [Project settings](/hi/sdk/project-settings) — किसी प्रोजेक्ट पर प्रीसेट्स लागू करें
* [API presets](/hi/api/presets) — raw HTTP पर वही flow
* [CLI presets](/hi/cli/presets) — टर्मिनल से वही flow
* [Exports](/hi/sdk/exports) — प्रीसेट के साथ रेंडर करें
