Skip to main content
تقوم التصديرات بإخراج كاريوكي مكتمل كملف فيديو. استخدم client.exports.create(...) كنقطة الدخول الرئيسية. اختر target: "local" عندما تريد أن تقوم حزمة SDK بالتصيير مباشرةً على الجهاز الحالي؛ وإلا فالتصدير السحابي هو الخيار الافتراضي.

client.exports.create(projectId, input, options?)

اختر وجهة التصدير باستخدام target: "cloud" | "local".
const cloud = await client.exports.create("prj_abc123", {
  resolution: "1080p",
  quality: "high",
});
// => ExportOperation

const local = await client.exports.create("prj_abc123", {
  target: "local",
  resolution: "1080p",
  quality: "high",
  outputPath: "./karaoke.mp4",
});
// => { outputPath, fileSize, duration, ... }
استخدم السحابة عندما تريد تصديرًا مُدارًا وغير متزامن. واستخدم المحلي عندما تريد التصيير مباشرةً على جهاز المستدعي.

الحقول الشائعة

الحقلالنوعالوصف
resolution"540p" | "720p" | "1080p"دقة الإخراج.
quality"low" | "average" | "high"جودة الترميز.
playbackRatenumberمُضاعِف السرعة (مثلًا 0.9).
toneFrequencynumberتغيير الطبقة بالنصف نغمة (semitones).
transparentbooleanالتصيير بخلفية شفافة.
presetIdstringتطبيق إعداد مسبق قبل التصيير.
stemVolumesRecord<string, number>تجاوزات مستوى الصوت لكل stem بمفتاح معرّف stem.
settingsOverrideobjectتطبيق تصحيح لإعدادات المشروع لهذا التصدير فقط.

مثال مع أحجام الصوت للـ stem

const result = await client.exports.create("prj_abc123", {
  resolution: "1080p",
  quality: "high",
  stemVolumes: {
    vocals: 0,
    instrumental: 1,
    backing: 0.5,
  },
});

مثال مع تجاوز الإعدادات

const result = await client.exports.create("prj_abc123", {
  resolution: "1080p",
  settingsOverride: {
    trim: { startSeconds: 5, endSeconds: 180 },
    style: {
      background: { type: "color", color: "#101010" },
    },
  },
});
راجع مرجع إعدادات التصيير للحصول على البنية الكاملة لـ settingsOverride.

client.exports.quote(projectId, input, options?)

تقدير الأرصدة المطلوبة لتصدير سحابي دون بدء التصدير.
const quote = await client.exports.quote("prj_abc123", {
  resolution: "1080p",
  quality: "high",
  transparent: false,
});

console.log(quote.creditsRequired, quote.sufficientBalance);
تعمل التصديرات المحلية على جهاز المستدعي ولا تستخدم أرصدة التصدير السحابي، لذا فإن quote(...) مخصص للتصديرات السحابية فقط.

client.exports.list(projectId, input?, options?)

عرض قائمة التصديرات لمشروع ما، مع ترقيم الصفحات.
const exports = await client.exports.list("prj_abc123", {
  page: 1,
  pageSize: 50,
});
page
number
رقم الصفحة. القيمة الافتراضية هي 1 على الخادم.
pageSize
number
حجم الصفحة. القيمة الافتراضية 100. الحد الأقصى 100.

client.exports.get(exportId, options?)

جلب تصدير بواسطة المعرّف فقط، دون الحاجة لمعرفة المشروع الأب.
const exported = await client.exports.get("exp_xyz");

التصدير المحلي

const result = await client.exports.create("prj_abc123", {
  target: "local",
  resolution: "1080p",
  quality: "high",
  outputPath: "./karaoke.mp4",
  onProgress(progress) {
    console.log(progress.stage, progress.percent);
  },
});

console.log(result.outputPath);
استخدم onDependencyProgress إذا كنت تريد تحديثات أثناء تثبيت سلسلة أدوات التصيير المحلي أو التحقق منها.

client.exports.prepareLocal(projectId, body, options?)

إرجاع الحمولة المُحضَّرة اللازمة لتصيير تصدير محليًا. استخدم هذا عند التكامل مع @youka/remotion أو أي مصيّر محلي آخر. يعيد الخادم مُدخلات التركيبة (composition inputs)، وعناوين URLs للأصول، ومعلمات التصيير دون وضع تصيير سحابي في قائمة الانتظار.
const payload = await client.exports.prepareLocal("prj_abc123", {
  resolution: "1080p",
  quality: "high",
});

// Hand payload off to your local renderer
await renderLocally(payload);
client.exports.prepareLocal(...) لا يبدأ تصييرًا سحابيًا. لا يتم استهلاك أي حوسبة قابلة للفوترة من جهة Youka.

انتظار اكتمال التصدير

التصديرات السحابية غير متزامنة. استخدم client.exports.wait(...):
const operation = await client.exports.create("prj_abc123", {
  resolution: "1080p",
});

const finalized = await client.exports.wait(operation, {
  pollIntervalMs: 3_000,
});
console.log("Download from", finalized.url);

تنزيل النتيجة

تنتهي التصديرات السحابية بعنوان url مُوقّع. استخدم المساعد المدمج لبث الملف إلى القرص. يمكن أن يكون output إما دليلًا أو مسار ملف كاملًا، وfilename اختياري:
await client.exports.download(finalized, {
  output: "./exports",
});

ما التالي

  • Tasks — معالجات العمليات واستطلاع المهام المتقدم
  • Presets — إعدادات تصيير قابلة لإعادة الاستخدام
  • Project settings — تطبيق تصحيح على إعدادات المشروع النشطة