> ## 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 بتحضير الرفع، وإرسال بايتات الملف إلى رابط الرفع، وتسجيل الملف المرفوع كوسائط قابلة لإعادة الاستخدام.

```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 }` للملفات المحلية، و`{ type:
      "bytes", data, filename }` لبيانات `Blob` أو `File` أو `ArrayBuffer` أو المصفوفات
  المُنمَّطة، أو `{ type: "inputFile", inputFileId }` عندما يكون لديك بالفعل مُعرّف
  رفع.
</ParamField>

<ParamField path="inputFileId" type="string">
  خيار متقدم منخفض المستوى: مرّر المعرّف الذي تم إرجاعه بواسطة
  `client.uploads.create(...)` بدلًا من `source`.
</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();
```

## ما التالي

* [مرجع إعدادات التصيير](/en/render-settings-reference) — جميع مسارات الحقول المشتركة وقيم enum
* [المشاريع](/ar/sdk/projects) — إنشاء المشاريع والرفع
* [الإعدادات المسبقة](/ar/sdk/presets) — تجميع الوسائط مع إعدادات تصيير أخرى
* [إعدادات المشروع](/ar/sdk/project-settings) — تطبيق الخلفيات على مشروع
