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

# मीडिया

> पुन: उपयोग योग्य बैकग्राउंड, लोगो, और इंट्रो/आउट्रो वीडियो अपलोड और प्रबंधित करें

मीडिया पुन: उपयोग योग्य फाइलें हैं — वीडियो बैकग्राउंड, स्थिर इमेज, लोगो, और इंट्रो/आउट्रो क्लिप्स — जिन्हें आप प्रीसेट्स या प्रोजेक्ट सेटिंग्स से संदर्भित कर सकते हैं। एक बार अपलोड करें और प्रोजेक्ट्स में बार-बार उपयोग करें।

## मीडिया प्रकार

| प्रकार        | विवरण                              |
| ------------- | ---------------------------------- |
| `video`       | लूप होने वाला बैकग्राउंड वीडियो।   |
| `image`       | स्थिर बैकग्राउंड इमेज।             |
| `logo`        | लोगो ओवरले।                        |
| `intro-video` | कराओके शुरू होने से पहले चलता है।  |
| `outro-video` | कराओके समाप्त होने के बाद चलता है। |

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

प्रमाणीकृत खाते के स्वामित्व वाले हर पुन: उपयोग योग्य मीडिया आइटम की सूची बनाएं।

```ts theme={null}
const media = await client.media.list();
```

## `client.media.get(mediaId, options?)`

एकल मीडिया आइटम प्राप्त करें।

```ts theme={null}
const media = await client.media.get("bg_abc123");
```

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

लोकल पाथ, बाइट्स, या पहले से अपलोड किए गए `inputFileId` से नया मीडिया आइटम बनाएं। लोकल पाथ और बाइट्स के लिए, SDK अपलोड तैयार करता है, फाइल बाइट्स को अपलोड URL पर भेजता है, और अपलोड की गई फाइल को पुन: उपयोग योग्य मीडिया के रूप में रजिस्टर करता है।

```ts theme={null}
const media = await client.media.create({
  type: "video",
  source: {
    type: "path",
    path: "./background.mp4",
    contentType: "video/mp4",
  },
});
```

<ParamField path="type" type="'video' | 'image' | 'logo' | 'intro-video' | 'outro-video'" required>
  यह मीडिया आइटम रेंडर में किस भूमिका को पूरा करता है।
</ParamField>

<ParamField path="source" type="object">
  फाइल स्रोत। लोकल फाइलों के लिए `{ type: "path", path }`, `Blob`, `File`, `ArrayBuffer`, या टाइप्ड ऐरे डेटा के लिए `{ type:
      "bytes", data, filename }`, या जब आपके पास पहले से अपलोड ID हो तो `{ type: "inputFile", inputFileId }` का उपयोग करें।
</ParamField>

<ParamField path="inputFileId" type="string">
  उन्नत लो-लेवल विकल्प: `source` की जगह `client.uploads.create(...)` द्वारा लौटाया गया ID पास करें।
</ParamField>

## `client.media.delete(mediaId, options?)`

एक मीडिया आइटम हटाएं।

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

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

## एंड-टू-एंड उदाहरण

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

const client = new YoukaClient({ apiKey: process.env.YOUKA_API_KEY! });

async function uploadBackground(path: string, contentType: string) {
  return client.media.create({
    type: "video",
    source: {
      type: "path",
      path,
      contentType,
    },
  });
}

const media = await uploadBackground("./loop.mp4", "video/mp4");
console.log("Media ID:", media.id);
```

## बैकग्राउंड लागू करना

प्रीसेट से या सीधे प्रोजेक्ट सेटिंग्स से अपलोड किए गए मीडिया को संदर्भित करें:

```ts theme={null}
const media = await uploadBackground("./loop.mp4", "video/mp4");

await client.projects.updateSettings("prj_abc123", {
  settings: {
    style: {
      background: {
        type: "video",
        url: media.url,
        objectFit: "cover",
      },
    },
  },
});
```

`background` के अंतर्गत स्वीकार किए जाने वाले फील्ड्स के पूर्ण सेट के लिए, प्रोजेक्ट सेटिंग्स स्कीमा को JSON में कन्वर्ट करें:

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

const schema = RestUpdateProjectSettingsRequestSchema.toJSONSchema();
```

## आगे क्या

* [Render settings reference](/en/render-settings-reference) — सभी साझा फील्ड पाथ्स और enum मान
* [Projects](/hi/sdk/projects) — प्रोजेक्ट निर्माण और अपलोड्स
* [Presets](/hi/sdk/presets) — अन्य रेंडर सेटिंग्स के साथ मीडिया को बंडल करें
* [Project settings](/hi/sdk/project-settings) — किसी प्रोजेक्ट पर बैकग्राउंड लागू करें
