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

# المسارات

> تشغيل مهام فصل المسارات على مشروع موجود

المسارات (Stems) هي المقاطع الصوتية للغناء والآلات الموسيقية المستخرجة من الصوت المصدر. يقوم Youka بفصل المسارات تلقائيًا عند إنشاء مشروع، لكن يمكنك إعادة تشغيل عملية الفصل باستخدام نموذج مختلف متى احتجت إلى ذلك.

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

بدء عملية فصل مسارات جديدة لمشروع.

```ts theme={null}
const operation = await client.projects.separateStems("prj_abc123", {
  splitModel: "audioshakeai",
});

const { project } = await client.projects.wait(operation);
console.log(project.stems);
```

### المعاملات

<ParamField path="projectId" type="string" required>
  المشروع المراد إعادة معالجته.
</ParamField>

<ParamField path="splitModel" type="SplitModel">
  نموذج فصل المسارات. راجع [مرجع نماذج الفصل](/ar/desktop/split-model)
  للحصول على إرشادات.
</ParamField>

### النماذج المتاحة

| القيمة                                        | الوصف                                          |
| --------------------------------------------- | ---------------------------------------------- |
| `mdx23c`                                      | الافتراضي. توازن بين الجودة والسرعة.           |
| `audioshakeai`                                | فصل عالي الجودة من AudioShake.                 |
| `audioshake_vocals_lead`                      | الغناء والغناء الرئيسي فقط.                    |
| `musicai_instrumental_only`                   | إخراج آلي فقط.                                 |
| `musicai_lead_backing_other`                  | الغناء الرئيسي، والغناء المساند، ومسارات أخرى. |
| `musicai_with_backing_vocals`                 | الغناء بما في ذلك المسارات المساندة.           |
| `musicai_without_backing_vocals`              | الغناء الرئيسي فقط.                            |
| `uvr_mdxnet_kara_2`                           | نموذج UVR مضبوط للكاريوكي.                     |
| `bs_roformer`                                 | نموذج BS-Roformer.                             |
| `mel_band_roformer_instrumental_becruily`     | آلي Mel-band Roformer.                         |
| `mel_band_roformer_instrumental_instv7_gabox` | آلي Mel-band بديل.                             |
| `demucs`                                      | Facebook Demucs.                               |

## مثال متكامل (End-to-end)

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

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

async function reRunStems(projectId: string) {
  const operation = await client.projects.separateStems(projectId, {
    splitModel: "audioshakeai",
  });

  try {
    const { project } = await client.projects.wait(operation);
    console.log("New stems:", project.stems);
  } catch (error) {
    if (error instanceof YoukaTaskError) {
      console.error("Stem separation failed:", error.code, error.message);
      throw error;
    }
    throw error;
  }
}
```

<Tip>
  استخدم `client.tasks.get(taskId)` أو `client.tasks.wait(taskId)` فقط عندما
  تحتاج صراحةً إلى وصول منخفض المستوى إلى المهام. ينبغي لمعظم المستخدمين البقاء على
  `client.projects.wait(operation)`.
</Tip>

## `client.projects.downloadStem(projectId, selector, options?)`

تنزيل مسار واحد دون تحويله إلى تنسيق آخر. حدّد مسارًا واحدًا فقط عبر المعرّف أو النوع:

```ts theme={null}
await client.projects.downloadStem(
  "prj_abc123",
  { type: "instrumental" },
  { output: "./stems" },
);

await client.projects.downloadStem(
  "prj_abc123",
  { stemId: "stm_abc123" },
  { output: "./stems/original.wav" },
);
```

الأنواع المدعومة هي `original` و`instrumental` و`vocals` و
`backing_vocals`.

## `client.projects.downloadStems(projectId, selector?, options?)`

تنزيل عدة مسارات. مرّر `types`، أو مرّر `stemIds`، أو احذف المُحدِّد لتنزيل كل مسار متاح:

```ts theme={null}
await client.projects.downloadStems(
  "prj_abc123",
  { types: ["original", "instrumental", "vocals"] },
  { output: "./stems" },
);

await client.projects.downloadStems("prj_abc123", undefined, {
  output: "./stems",
});
```

لتنزيلات متعددة المسارات، استخدم مجلد إخراج. تكتب حزمة SDK ملفات المسارات الأصلية المخزنة ولا تقوم بتحويل ترميزها.

## ما التالي

* [مزامنة كلمات الأغنية](/ar/sdk/lyrics-sync) — إعادة مزامنة الكلمات بعد تبديل المسارات
* [المهام](/ar/sdk/tasks) — مقابض العمليات واستقصاء المهام المتقدم
* [مرجع نماذج الفصل](/ar/desktop/split-model) — اختر النموذج المناسب
