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

# प्रोजेक्ट सेटिंग्स

> किसी प्रोजेक्ट की सक्रिय सेटिंग्स पढ़ें और अपडेट करें

हर प्रोजेक्ट में सक्रिय सेटिंग्स होती हैं — trim, background, subtitle style, layout — जो यह नियंत्रित करती हैं कि exports कैसे रेंडर होते हैं।

जब आपको प्रोजेक्ट-लोकल overrides चाहिए हों जो किसी shared preset में बंडल करने लायक न हों, तब project settings का उपयोग करें।

shared
`preset`, `settings.style`, और `settingsOverride` फ़ील्ड मैप के लिए [Render settings reference](/en/render-settings-reference) देखें।

## `client.projects.getSettings(projectId, options?)`

किसी प्रोजेक्ट की सक्रिय सेटिंग्स फ़ेच करें।

```ts theme={null}
const config = await client.projects.getSettings("prj_abc123");
console.log(
  config.settings.trim,
  config.settings.style?.background,
  config.settings.displayLanguages,
);
```

## `client.projects.updateSettings(projectId, body, options?)`

सक्रिय प्रोजेक्ट सेटिंग्स को patch करें। आप एक preset लागू कर सकते हैं, raw settings पास कर सकते हैं, या दोनों (पहले preset लागू होता है, फिर settings overrides ऊपर merge होते हैं)।

```ts theme={null}
const updated = await client.projects.updateSettings("prj_abc123", {
  presetId: "preset_abc123",
  settings: {
    trim: { startSeconds: 5, endSeconds: 180 },
  },
});
```

### फ़ील्ड्स

<ParamField path="presetId" type="string">
  एक पुन: उपयोग योग्य preset लागू करें। मौजूदा preset को अपरिवर्तित रखने के लिए इसे छोड़ दें।
</ParamField>

<ParamField path="settings" type="object">
  preset के ऊपर लागू होने वाला patch। preset-जैसे overrides के लिए `style` का उपयोग करें,
  साथ ही प्रोजेक्ट-लोकल फ़ील्ड्स जैसे `displayLanguages`, `chordSettings`, और
  `duetSingerFilter`।
</ParamField>

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

हर वैध फ़ील्ड खोजने के लिए runtime पर update schema को JSON Schema में कन्वर्ट करें:

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

const schema = RestUpdateProjectSettingsRequestSchema.toJSONSchema();
console.log(JSON.stringify(schema, null, 2));
```

<Tip>
  Agents को project settings mutate करने से पहले यह कॉल करना चाहिए, ताकि उन्हें हमेशा
  वर्तमान shape पता रहे।
</Tip>

## सामान्य पैटर्न

<Tabs>
  <Tab title="Trim">
    ```ts theme={null}
    await client.projects.updateSettings("prj_abc123", {
      settings: {
        trim: { startSeconds: 5.0, endSeconds: 180.0 },
      },
    });
    ```
  </Tab>

  <Tab title="Background color">
    ```ts theme={null}
    await client.projects.updateSettings("prj_abc123", {
      settings: {
        style: {
          background: { type: "color", color: "#101010" },
        },
      },
    });
    ```
  </Tab>

  <Tab title="Display languages">
    ```ts theme={null}
    await client.projects.updateSettings("prj_abc123", {
      settings: {
        displayLanguages: ["en", "es"],
      },
    });
    ```
  </Tab>

  <Tab title="Apply preset">
    ```ts theme={null}
    await client.projects.updateSettings("prj_abc123", {
      presetId: "preset_abc123",
    });
    ```
  </Tab>
</Tabs>

## प्रोजेक्ट सेटिंग्स बनाम presets

| प्रश्न                                         | उपयोग                     |
| ---------------------------------------------- | ------------------------- |
| कई प्रोजेक्ट्स में एक जैसा लुक चाहिए?          | Presets                   |
| एक ही प्रोजेक्ट में one-off trim या रंग tweak? | Project settings          |
| बेस लुक + छोटे प्रोजेक्ट-विशिष्ट overrides?    | Preset + project settings |

## आगे क्या

* [Render settings reference](/en/render-settings-reference) — सभी shared field paths और enum values
* [Presets](/hi/sdk/presets) — पुन: उपयोग योग्य configurations
* [Media](/hi/sdk/media) — backgrounds और logos अपलोड करें
* [API project settings](/hi/api/project-settings) — raw HTTP पर वही flow
* [CLI projects](/hi/cli/projects) — terminal से वही flow
* [Exports](/hi/sdk/exports) — export-only tweaks के लिए `settingsOverride` का उपयोग करें
