Belin Doc IconBelin Doc

Belin Doc · المنصة المفتوحة

API ترجمة المستندات

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

عنوان الأساس
https://belindoc.com/api
ترويسة المصادقة
X-Api-Key
الطريقة
POST · application/json
عدد النقاط
21
آخر تحديث
2026-09-04
المحتويات
البدء

بداية سريعة

أربع خطوات من ملف PDF خام إلى ملف مترجم. نقاط نهاية الفيديو تتبع الشكل نفسه.

  1. 01

    أنشئ مفتاح API

    سجّل الدخول إلى belindoc.com، وافتح قائمة الصورة الرمزية أعلى اليمين، ثم اختر «مركز المطورين» وأنشئ مفتاحًا. تبدأ المفاتيح بالبادئة ft_ ولا تظهر قيمتها الكاملة إلا مرة واحدة بعد الإنشاء مباشرة.

  2. 02

    ارفع الملف

    اطلب رابطًا موقّعًا مسبقًا ثم ارفع الملف إليه مباشرة بطريقة PUT. الرابط صالح لعشر دقائق، واحتفظ بقيمة objectKey العائدة للخطوة التالية.

    bash
    # 1. احصل على رابط رفع موقَّع مسبقًا (صالح 10 دقائق)
    curl -X POST https://belindoc.com/api/external/translate/batchPresignedUploadUrl \
      -H "X-Api-Key: $BELINDOC_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"fileNameList": ["contract.pdf"]}'
    
    # → data[0].persignedUploadUrl / data[0].objectKey
    
    # 2. ارفع الملف مباشرة إلى هذا الرابط باستخدام PUT
    curl -X PUT "<persignedUploadUrl>" --upload-file contract.pdf
  3. 03

    أرسل مهمة الترجمة

    الحقول fileList وsourceLanguage وtargetLanguage وmodel إلزامية. مرّر AnyLanguage لاكتشاف لغة المصدر تلقائيًا، واقرأ قائمة النماذج من getModelList بدل كتابتها في الشيفرة.

    bash
    curl -X POST https://belindoc.com/api/external/translate/batchSubmitTranslateTask \
      -H "X-Api-Key: $BELINDOC_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "fileList": [{ "fileName": "contract.pdf", "fileObjectKey": "<objectKey>" }],
        "sourceLanguage": "AnyLanguage",
        "targetLanguage": "zh-CN",
        "model": "Gemini-2.5-Flash"
      }'
    
    # → { "code": "200", "data": { "batchNo": "...", "fileList": [ ... ] } }
  4. 04

    تابع الحالة ثم نزّل

    تابع باستخدام batchNo حتى تصبح قيمة status هي 3، ثم اطلب رابط التنزيل. تستجيب هذه النقطة ببث SSE، ويصل الرابط ضمن حدث [DONE].

    bash
    # استعلم عن المهمة: القيمة status = 3 تعني أن الترجمة جاهزة
    curl -X POST https://belindoc.com/api/external/translate/searchTranslateFileByBatchNo \
      -H "X-Api-Key: $BELINDOC_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"batchNo": "<batchNo>"}'
    
    # احصل على رابط تنزيل الترجمة: استجابة SSE، والرابط يصل في حدث [DONE]
    curl -N -X POST https://belindoc.com/api/external/translate/getTranslateS3DownloadUrl \
      -H "X-Api-Key: $BELINDOC_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"translateOrderNo": "<translateOrderNo>", "urlType": 2}'
    
    # event:[DONE]
    # data:{"url":"https://..."}
البدء

المصادقة

نقاط النهاية المفتوحة تقع تحت /external/ وتتعرّف على المتصل بالمفتاح وحده. أما بقية التفاصيل — جسم الطلب والقيم الافتراضية وبنية الاستجابة — فمطابقة للموقع.

http
POST /api/external/translate/getModelList HTTP/1.1
Host: belindoc.com
Content-Type: application/json
X-Api-Key: ft_xxxxxxxxxxxxxxxxxxxxxxxx
language: zh

{}
json
{
  "code": "200",
  "msg": null,
  "requestId": "8f1c…",
  "data": { }
}
ترويسة X-Api-Key
أرسل المفتاح مع كل طلب. المفتاح المفقود أو المعطّل أو المنتهي، أو الاتصال من عنوان IP خارج القائمة المسموح بها، يُرفض قبل الوصول إلى منطق العمل.
ترويسة language
اختيارية، وتحدد لغة الحقل msg في الاستجابة، والافتراضي en. القيم المقبولة هي لغات الموقع التسع: en وzh وzh-Hant وja وko وfr وru وde وar.
المفتاح يعمل على الحساب الشخصي
يُحَلّ المفتاح دائمًا إلى الحساب الشخصي الذي أنشأه. تُحفظ الملفات في تخزين المنصة وتُخصم المهام من حصة ذلك الحساب، أما مساحة العمل الخاصة بالمؤسسة فلا يجري الوصول إليها عبر الواجهة.
بنية الاستجابة الموحدة
تستجيب كل نقاط النهاية بالغلاف نفسه. القيمة 200 في code تعني النجاح، وأي قيمة أخرى خطأ في منطق العمل ويحمل الحقل msg نصه بلغتك.
بلا JWT وبلا توقيع للطلب
مرشّحات الرمز والتوقيع التي تحمي نقاط الموقع تتجاوز المسار /external/. المفتاح هو بيانات الاعتماد الوحيدة، فتعامل معه ككلمة مرور واحتفظ به على الخادم فقط.
/external/translate9 نقطة

ترجمة المستندات

مسار المستندات كاملًا: الرفع والإرسال والمتابعة والتنزيل، مع قوائم النماذج واللغات التي يُفضَّل قراءتها من هنا بدل كتابتها في الشيفرة.

  • status: 0 في الانتظار · 1 التحليل · 2 قيد الترجمة · 3 مكتمل · 4 فشل · 5 ملغى
  • urlType: 1 الملف الأصلي · 2 الترجمة · 3 مقارنة أفقية · 4 مقارنة رأسية · -1 معاينة EPUB
01

الحصول على روابط الرفع

POST

/external/translate/batchPresignedUploadUrl

الحصول على روابط رفع موقّعة مسبقًا لملف واحد أو أكثر.

المعاملات

الحقلالنوعإلزاميالوصف
fileNameListarray[string]إلزاميأسماء الملفات المطلوب رفعها

الاستجابة · data

الحقلالنوعالوصف
persignedUploadUrlstringرابط PUT موقّع مسبقًا، صالح 10 دقائق
objectKeystringمفتاح التخزين الذي تُرسله مع الطلب
fileNamestringاسم الملف الأصلي
storageTypenumberنوع التخزين الذي يحتوي الملف
مثال
الطلب
{
  "fileNameList": ["contract.pdf"]
}
الاستجابة
{
  "code": "200",
  "data": [
    {
      "persignedUploadUrl": "https://s3.../contract.pdf?X-Amz-Signature=…",
      "objectKey": "translate/10086/2026/contract.pdf",
      "fileName": "contract.pdf",
      "storageType": 1
    }
  ]
}
02

كشف الملف الممسوح

POST

/external/translate/isOcr

تحديد ما إذا كان الملف المرفوع ممسوحًا ضوئيًا قبل الإرسال، لتشغيل التعرّف الضوئي عند الحاجة فقط.

المعاملات

الحقلالنوعإلزاميالوصف
fileObjectKeystringإلزاميقيمة objectKey العائدة من طلب التوقيع المسبق
storageTypenumberإلزامينوع التخزين الذي يحتوي الملف

الاستجابة · data

الحقلالنوعالوصف
isOcrnumberالقيمة 1 تعني أن الملف ممسوح ضوئيًا
isDoubleDecknumberالقيمة 1 تعني أن الملف الممسوح يحتوي طبقة نصية
مثال
الطلب
{
  "fileObjectKey": "translate/10086/2026/contract.pdf",
  "storageType": 1
}
الاستجابة
{
  "code": "200",
  "data": { "isOcr": 1, "isDoubleDeck": 0 }
}
03

إرسال ترجمة

POST

/external/translate/batchSubmitTranslateTask

إرسال دفعة ترجمة؛ تُعيد batchNo ورقم طلب لكل ملف.

المعاملات

الحقلالنوعإلزاميالوصف
fileListarrayإلزاميالملفات المراد ترجمتها
fileNamestringإلزامياسم الملف الأصلي
fileObjectKeystringإلزاميقيمة objectKey العائدة من طلب التوقيع المسبق
isOcrFilenumberالقيمة 1 تعامل الملف كملف ممسوح ضوئيًا، وتؤخذ من isOcr
sourceLanguagestringإلزاميكود لغة المصدر، وAnyLanguage للكشف التلقائي
targetLanguagestringإلزاميكود اللغة الهدف
modelstringإلزاميإصدار النموذج من getModelList
isOcrnumberالقيمة 1 تشغّل التعرّف الضوئي، والافتراضي 0
isMathnumberالقيمة 1 تحافظ على تنسيق المعادلات، والافتراضي 0
translateStylenumberنمط ترجمة جاهز
terminologyCollectionIdstringمعرّف مسرد المصطلحات المطلوب تطبيقه؛ إنشاء المسارد وإدارتها متاحان حاليًا في تطبيق الويب فقط

الاستجابة · data

الحقلالنوعالوصف
batchNostringرقم الدفعة العائد عند الإرسال
fileListarrayالملفات المراد ترجمتها
balanceHintnumberالقيمة 1 تنبّه إلى قرب نفاد الحصة
مثال
الطلب
{
  "fileList": [
    { "fileName": "contract.pdf", "fileObjectKey": "translate/10086/2026/contract.pdf" }
  ],
  "sourceLanguage": "AnyLanguage",
  "targetLanguage": "zh-CN",
  "model": "Gemini-2.5-Flash",
  "isOcr": 0,
  "terminologyCollectionId": "66f1c2a4b8d3e5f7a9c1b2d3"
}
الاستجابة
{
  "code": "200",
  "data": {
    "batchNo": "B20260828173001",
    "fileList": [
      { "fileName": "contract.pdf", "fileObjectKey": "translate/10086/2026/contract.pdf" }
    ],
    "balanceHint": 0
  }
}
04

مهام الدفعة

POST

/external/translate/searchTranslateFileByBatchNo

عرض كل مهام الدفعة — وهي النقطة المخصصة للمتابعة الدورية.

المعاملات

الحقلالنوعإلزاميالوصف
batchNostringإلزاميرقم الدفعة العائد عند الإرسال

الاستجابة · كائن المهمة

الحقلالنوعالوصف
translateOrderNostringرقم طلب المهمة
batchNostringرقم الدفعة العائد عند الإرسال
sourceFileNamestringاسم الملف الأصلي
statusnumberحالة المهمة — انظر المفتاح أعلاه
textNumbernumberعدد الأحرف المحتسبة للمهمة
targetFileUrlstringرابط الملف المترجم
targetFileUrl2stringرابط احتياطي داخل الصين
xComparisonS3Urlstringملف المقارنة الأفقية
yComparisonS3Urlstringملف المقارنة الرأسية
freeTranslateQuotanumberالصفحات المخصومة من الحصة المجانية
walletTranslateQuotanumberالصفحات المخصومة من الحصة المدفوعة
createTimenumberوقت الإنشاء بالمللي ثانية
startTimenumberوقت البدء بالمللي ثانية
endTimenumberوقت الانتهاء بالمللي ثانية
errorCodestringرمز الفشل عندما تكون status تساوي 4
مثال
الطلب
{
  "batchNo": "B20260828173001"
}
الاستجابة
{
  "code": "200",
  "data": [
    {
      "translateOrderNo": "T20260828173002",
      "batchNo": "B20260828173001",
      "sourceFileName": "contract.pdf",
      "status": 3,
      "textNumber": 4820,
      "targetFileUrl": "https://s3.../contract_zh-CN.pdf?X-Amz-Signature=…"
    }
  ]
}
05

سجل الترجمات

POST

/external/translate/searchTranslateFilePage

تصفّح سجل الترجمة لهذا الحساب صفحةً صفحة.

المعاملات

الحقلالنوعإلزاميالوصف
pageNumnumberإلزاميرقم الصفحة، يبدأ من 1
pageSizenumberإلزاميعدد السجلات في الصفحة
statusnumberحالة المهمة — انظر المفتاح أعلاه
fileTypestringتصفية حسب نوع الملف، مثل PDF
sourceFileNamestringتصفية حسب اسم الملف

الاستجابة · data

الحقلالنوعالوصف
recordsarrayسجلات هذه الصفحة
totalnumberإجمالي السجلات
currentnumberرقم الصفحة الحالية
pagesnumberإجمالي الصفحات
06

تفاصيل المهمة

POST

/external/translate/getTranslateFileDetail

قراءة مهمة واحدة عبر رقم طلبها.

المعاملات

الحقلالنوعإلزاميالوصف
translateOrderNostringإلزاميرقم طلب المهمة

الاستجابة · كائن المهمة

الحقلالنوعالوصف
translateOrderNostringرقم طلب المهمة
batchNostringرقم الدفعة العائد عند الإرسال
sourceFileNamestringاسم الملف الأصلي
statusnumberحالة المهمة — انظر المفتاح أعلاه
textNumbernumberعدد الأحرف المحتسبة للمهمة
targetFileUrlstringرابط الملف المترجم
targetFileUrl2stringرابط احتياطي داخل الصين
xComparisonS3Urlstringملف المقارنة الأفقية
yComparisonS3Urlstringملف المقارنة الرأسية
freeTranslateQuotanumberالصفحات المخصومة من الحصة المجانية
walletTranslateQuotanumberالصفحات المخصومة من الحصة المدفوعة
createTimenumberوقت الإنشاء بالمللي ثانية
startTimenumberوقت البدء بالمللي ثانية
endTimenumberوقت الانتهاء بالمللي ثانية
errorCodestringرمز الفشل عندما تكون status تساوي 4
07

الحصول على رابط التنزيل

POST

/external/translate/getTranslateS3DownloadUrl

الحصول على رابط تنزيل الملف الأصلي أو الترجمة أو ملف المقارنة (استجابة SSE).

المعاملات

الحقلالنوعإلزاميالوصف
translateOrderNostringإلزاميرقم طلب المهمة
urlTypenumberإلزاميأي ملف تريد جلبه — انظر المفتاح أعلاه
isWatermarknumberالقيمة 0 تزيل العلامة المائية إذا سمحت الباقة

الاستجابة · أحداث SSE

الحقلالنوعالوصف
urlstringرابط التنزيل ضمن حدث [DONE]
url2stringرابط احتياطي داخل الصين إن وُجد
مثال
الطلب
{
  "translateOrderNo": "T20260828173002",
  "urlType": 2,
  "isWatermark": 0
}
الاستجابة
event:[PROCESS]
data:

event:[DONE]
data:{"translateOrderNo":"T20260828173002","url":"https://s3.../contract_zh-CN.pdf?X-Amz-Signature=…"}
08

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

POST

/external/translate/getModelList

عرض القيم المقبولة في الحقل model ومعاملات الحصة لكل منها.

المعاملات

بلا معاملات — أرسل جسم JSON فارغًا.

الاستجابة · data

الحقلالنوعالوصف
versionstringالقيمة التي تُمرَّر في model
modelTypenumberعائلة النموذج الداخلية
vipTypenumberالباقة اللازمة للاستخدام
coefficientnumberمعامل الحصة لهذا النموذج
groupTypenumberالمجموعة التي يُدرج ضمنها
09

اللغات المدعومة

POST

/external/translate/getLanguageEnum

عرض أكواد اللغات المدعومة وعددها 79 مع أسمائها بكل لغة.

المعاملات

بلا معاملات — أرسل جسم JSON فارغًا.

الاستجابة · data

الحقلالنوعالوصف
{locale}objectاللغة ← كود اللغة ← الاسم المعروض
مثال
الاستجابة
{
  "code": "200",
  "data": {
    "en": {
      "AnyLanguage": "Any language",
      "zh-CN": "Simplified Chinese",
      "…": "…"
    },
    "zh": {
      "AnyLanguage": "任意语言",
      "zh-CN": "简体中文",
      "…": "…"
    },
    "…": {}
  }
}
/external/videoTranslate10 نقطة

ترجمة الفيديو

ترجمة الفيديو من أولها إلى آخرها: تقدير التكلفة ثم الإرسال ومتابعة التقدم، وأخيرًا تحرير الترجمة وإعادة التوليد.

  • status: 0 لم يبدأ · 1 قيد التنفيذ · 2 مكتمل · 3 فشل · 4 ملغى
  • step: 1 التعرف على الكلام · 2 ترجمة النص · 3 توليد الصوت
  • stepStatus: 0 لم يبدأ · 1 قيد التنفيذ · 2 مكتمل · 3 فشل
  • subtitleType: 0 بلا ترجمة مرئية · 1 الترجمة · 2 النص الأصلي · 3 كلاهما
01

الحصول على روابط الرفع

POST

/external/videoTranslate/batchPresignedUploadUrl

الحصول على روابط رفع موقّعة مسبقًا لملفات الفيديو.

المعاملات

الحقلالنوعإلزاميالوصف
fileNameListarray[string]إلزاميأسماء الملفات المطلوب رفعها

الاستجابة · data

الحقلالنوعالوصف
persignedUploadUrlstringرابط PUT موقّع مسبقًا، صالح 10 دقائق
objectKeystringمفتاح التخزين الذي تُرسله مع الطلب
fileNamestringاسم الملف الأصلي
02

إرسال فيديو

POST

/external/videoTranslate/submitVideoTranslate

إرسال مهمة ترجمة فيديو؛ يحمل الحقل videoTaskParam إعدادات الصوت والترجمة المرئية والخط.

المعاملات

الحقلالنوعإلزاميالوصف
sourceLanguagestringإلزاميكود لغة المصدر، وAnyLanguage للكشف التلقائي
targetLanguagestringإلزاميكود اللغة الهدف
sourceFileObjectKeystringإلزاميقيمة objectKey للفيديو المرفوع
videoFileNamestringإلزامياسم ملف الفيديو الأصلي
videoTaskParamobjectإلزاميإعدادات الصوت والترجمة والخط
voiceRolestringصوت الدبلجة، وclone يستنسخ الصوت الأصلي
subtitleTypenumberالترجمة المراد دمجها — انظر المفتاح أعلاه
بقية حقول videoTaskParam (25، جميعها اختيارية)
الحقلالنوعالوصف
recognTypenumberمحرك التعرف على الكلام، الافتراضي 12 — اتركه كما هو
modelNamestringنموذج التعرف، الافتراضي tiny
splitTypestringطريقة التقسيم، الافتراضي all
isCudabooleanتفعيل تسريع GPU، الافتراضي false
translateTypenumberمحرك ترجمة النص، الافتراضي 14 — اتركه كما هو
ttsTypenumberمحرك توليد الصوت، الافتراضي 15 — اتركه كما هو
voiceRatestringسرعة الدبلجة، مثل ‎+10%‎، الافتراضي ‎+0%‎
volumestringمستوى صوت الدبلجة، مثل ‎+10%‎، الافتراضي ‎+0%‎
pitchstringطبقة صوت الدبلجة، مثل ‎+5Hz‎، الافتراضي ‎+0Hz‎
voiceAutoratebooleanمطابقة مدة الدبلجة مع الأصل تلقائيًا، الافتراضي true
videoAutoratebooleanمطابقة مدة الصورة مع الدبلجة تلقائيًا، الافتراضي true
appendVideobooleanتكرار الصورة عند نقص المدة، الافتراضي true
isSeparatebooleanإخراج الصوت البشري والخلفية منفصلين، الافتراضي false
onlyVideobooleanإخراج الفيديو فقط دون ملفات ترجمة، الافتراضي false
fontsizenumberحجم خط الترجمة، الافتراضي 14
fontnamestringاسم الخط؛ عند الإغفال يُستخدم افتراضي الخادم
fontcolorstringلون النص، ‎#RRGGBB‎ أو قيمة لون ASS
fontboldbooleanجعل الترجمة عريضة
subtitlePosYnumberالمسافة من الحافة السفلية، 0-90 بالمئة؛ عند الإغفال في الأسفل
subtitlePosXnumberالمركز الأفقي من الحافة اليسرى، 5-95 بالمئة؛ 50 يعني التوسيط
fontbordercolorstringلون الحد الخارجي، ‎#RRGGBB / #RRGGBBAA‎ أو قيمة ASS
backgroundcolorstringلون صندوق الخلفية، ‎#RRGGBB / #RRGGBBAA‎ أو قيمة ASS
outlinenumberعرض الحد 0-10؛ 0 يعطّل الحد
shadownumberحجم الظل 0-10؛ 0 يعطّل الظل
borderStylenumberنمط الإطار: 1 حد/ظل عادي، 3 صندوق لكل سطر

الاستجابة · كائن المهمة

الحقلالنوعالوصف
videoTranslateOrderNostringرقم طلب مهمة الفيديو
videoFileNamestringاسم ملف الفيديو الأصلي
videoDurationnumberمدة الفيديو بالثواني
statusnumberحالة المهمة — انظر المفتاح أعلاه
stepnumberالمرحلة الحالية — انظر المفتاح أعلاه
stepStatusnumberحالة المرحلة الحالية — انظر المفتاح أعلاه
targetFileUrlstringرابط الملف المترجم
sourceSubtitlesUrlstringرابط ملف الترجمة الأصلية
targetSubtitlesUrlstringرابط ملف الترجمة المترجمة
freeTranslateQuotanumberالصفحات المخصومة من الحصة المجانية
walletTranslateQuotanumberالصفحات المخصومة من الحصة المدفوعة
errorMessagestringسبب الفشل
مثال
الطلب
{
  "sourceLanguage": "ja",
  "targetLanguage": "zh-CN",
  "sourceFileObjectKey": "video/10086/2026/lecture.mp4",
  "videoFileName": "lecture.mp4",
  "videoTaskParam": { "voiceRole": "clone", "subtitleType": 1 }
}
03

تقدير تكلفة الفيديو

POST

/external/videoTranslate/videoTranslateQuotaCalculate

تقدير استهلاك الحصة قبل الإرسال بناءً على المدة والصوت ونوع الترجمة المرئية.

المعاملات

الحقلالنوعإلزاميالوصف
videoDurationnumberإلزاميمدة الفيديو بالثواني
voiceRolestringإلزاميصوت الدبلجة، وclone يستنسخ الصوت الأصلي
subtitleTypenumberإلزاميالترجمة المراد دمجها — انظر المفتاح أعلاه

الاستجابة · data

الحقلالنوعالوصف
translateQuotanumberإجمالي الحصة المستهلكة
videoDurationTranslateQuotanumberالحصة المحسوبة من المدة
thirtySecondQuotanumberالحصة لكل 30 ثانية
quotaCoefficientnumberالمعامل المطبَّق
04

سجل الفيديو

POST

/external/videoTranslate/searchVideoTranslatePage

تصفّح سجل ترجمة الفيديو لهذا الحساب صفحةً صفحة.

المعاملات

الحقلالنوعإلزاميالوصف
pageNumnumberإلزاميرقم الصفحة، يبدأ من 1
pageSizenumberإلزاميعدد السجلات في الصفحة
statusnumberحالة المهمة — انظر المفتاح أعلاه

الاستجابة · data

الحقلالنوعالوصف
recordsarrayسجلات هذه الصفحة
totalnumberإجمالي السجلات
currentnumberرقم الصفحة الحالية
pagesnumberإجمالي الصفحات
05

تفاصيل المهمة

POST

/external/videoTranslate/getVideoTranslateDetail

قراءة مهمة فيديو واحدة مع نسبة التقدم وروابط المخرجات.

المعاملات

الحقلالنوعإلزاميالوصف
videoTranslateOrderNostringإلزاميرقم طلب مهمة الفيديو

الاستجابة · كائن المهمة

الحقلالنوعالوصف
videoTranslateOrderNostringرقم طلب مهمة الفيديو
videoFileNamestringاسم ملف الفيديو الأصلي
videoDurationnumberمدة الفيديو بالثواني
statusnumberحالة المهمة — انظر المفتاح أعلاه
stepnumberالمرحلة الحالية — انظر المفتاح أعلاه
stepStatusnumberحالة المرحلة الحالية — انظر المفتاح أعلاه
targetFileUrlstringرابط الملف المترجم
sourceSubtitlesUrlstringرابط ملف الترجمة الأصلية
targetSubtitlesUrlstringرابط ملف الترجمة المترجمة
freeTranslateQuotanumberالصفحات المخصومة من الحصة المجانية
walletTranslateQuotanumberالصفحات المخصومة من الحصة المدفوعة
errorMessagestringسبب الفشل
06

إلغاء مهمة الفيديو

POST

/external/videoTranslate/cancelVideoTranslateHistory

إلغاء مهمة فيديو لم تكتمل بعد.

المعاملات

الحقلالنوعإلزاميالوصف
videoTranslateOrderNostringإلزاميرقم طلب مهمة الفيديو
07

جلب الترجمة

POST

/external/videoTranslate/getVideoTranslateSubtitles

جلب الترجمة الأصلية والمترجمة لتحريرها.

المعاملات

الحقلالنوعإلزاميالوصف
videoTranslateOrderNostringإلزاميرقم طلب مهمة الفيديو

الاستجابة · data

الحقلالنوعالوصف
sourceSubtitlesUrlstringرابط ملف الترجمة الأصلية
targetSubtitlesUrlstringرابط ملف الترجمة المترجمة
08

إرسال الترجمة المحرّرة

POST

/external/videoTranslate/submitVideoRewrite

إرسال الترجمة بعد التحرير وإعادة توليد الفيديو.

المعاملات

الحقلالنوعإلزاميالوصف
videoTranslateOrderNostringإلزاميرقم طلب مهمة الفيديو
sourceSubtitlesTxtstringإلزاميالترجمة الأصلية بعد التحرير
targetSubtitlesTxtstringإلزاميالترجمة المترجمة بعد التحرير
videoTaskParamobjectإعدادات الصوت والترجمة والخط
بقية حقول videoTaskParam (25، جميعها اختيارية)
الحقلالنوعالوصف
recognTypenumberمحرك التعرف على الكلام، الافتراضي 12 — اتركه كما هو
modelNamestringنموذج التعرف، الافتراضي tiny
splitTypestringطريقة التقسيم، الافتراضي all
isCudabooleanتفعيل تسريع GPU، الافتراضي false
translateTypenumberمحرك ترجمة النص، الافتراضي 14 — اتركه كما هو
ttsTypenumberمحرك توليد الصوت، الافتراضي 15 — اتركه كما هو
voiceRatestringسرعة الدبلجة، مثل ‎+10%‎، الافتراضي ‎+0%‎
volumestringمستوى صوت الدبلجة، مثل ‎+10%‎، الافتراضي ‎+0%‎
pitchstringطبقة صوت الدبلجة، مثل ‎+5Hz‎، الافتراضي ‎+0Hz‎
voiceAutoratebooleanمطابقة مدة الدبلجة مع الأصل تلقائيًا، الافتراضي true
videoAutoratebooleanمطابقة مدة الصورة مع الدبلجة تلقائيًا، الافتراضي true
appendVideobooleanتكرار الصورة عند نقص المدة، الافتراضي true
isSeparatebooleanإخراج الصوت البشري والخلفية منفصلين، الافتراضي false
onlyVideobooleanإخراج الفيديو فقط دون ملفات ترجمة، الافتراضي false
fontsizenumberحجم خط الترجمة، الافتراضي 14
fontnamestringاسم الخط؛ عند الإغفال يُستخدم افتراضي الخادم
fontcolorstringلون النص، ‎#RRGGBB‎ أو قيمة لون ASS
fontboldbooleanجعل الترجمة عريضة
subtitlePosYnumberالمسافة من الحافة السفلية، 0-90 بالمئة؛ عند الإغفال في الأسفل
subtitlePosXnumberالمركز الأفقي من الحافة اليسرى، 5-95 بالمئة؛ 50 يعني التوسيط
fontbordercolorstringلون الحد الخارجي، ‎#RRGGBB / #RRGGBBAA‎ أو قيمة ASS
backgroundcolorstringلون صندوق الخلفية، ‎#RRGGBB / #RRGGBBAA‎ أو قيمة ASS
outlinenumberعرض الحد 0-10؛ 0 يعطّل الحد
shadownumberحجم الظل 0-10؛ 0 يعطّل الظل
borderStylenumberنمط الإطار: 1 حد/ظل عادي، 3 صندوق لكل سطر

الاستجابة · data

الحقلالنوعالوصف
videoTranslateRewriteOrderNostringرقم طلب إعادة التوليد
statusnumberحالة المهمة — انظر المفتاح أعلاه
targetFileUrlstringرابط الملف المترجم
09

متابعة إعادة التوليد

POST

/external/videoTranslate/getVideoTranslateRewriteDetail

قراءة حالة مهمة إعادة التوليد بعد تحرير الترجمة.

المعاملات

الحقلالنوعإلزاميالوصف
videoTranslateRewriteOrderNostringإلزاميرقم طلب إعادة التوليد

الاستجابة · data

الحقلالنوعالوصف
statusnumberحالة المهمة — انظر المفتاح أعلاه
targetFileUrlstringرابط الملف المترجم
targetSubtitlesUrlstringرابط ملف الترجمة المترجمة
errorMessagestringسبب الفشل
10

تكلفة إعادة التوليد

POST

/external/videoTranslate/videoTranslateRewriteQuotaCalculate

تقدير استهلاك الحصة لإعادة التوليد بعد تحرير الترجمة.

المعاملات

الحقلالنوعإلزاميالوصف
videoTranslateRewriteOrderNostringإلزاميرقم طلب إعادة التوليد

الاستجابة · data

الحقلالنوعالوصف
translateQuotanumberإجمالي الحصة المستهلكة
quotaCoefficientnumberالمعامل المطبَّق
/external/user2 نقطة

الحساب

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

  • subscriptionStatus: 1 قيد المعالجة · 2 نشط · 3 مُلغى الاشتراك · 4 مُلغى
  • interval: 1 يوم · 2 أسبوع · 3 شهر · 4 سنة
01

الاطّلاع على الحصة

POST

/external/user/getMyWalletInfo

محفظة الحساب المرتبط بهذا المفتاح: حصة الصفحات وحصة التعرّف الضوئي ومرات إزالة العلامة المائية ورصيد مكافآت الدعوة.

المعاملات

بلا معاملات — أرسل جسم JSON فارغًا.

الاستجابة · data

الحقلالنوعالوصف
userIdnumberالحساب الذي يتبع له المفتاح
translateQuotanumberالمتبقي من حصة الصفحات
advancedTranslateQuotanumberالمتبقي من حصة النماذج المتقدّمة
ocrTranslateQuotanumberالمتبقي من حصة التعرّف الضوئي
accelerationCardNumbernumberالمتبقي من بطاقات التسريع
totalFreeTranslateQuotanumberالصفحات المجانية الممنوحة في الدورة
useFreeTranslateQuotanumberالصفحات المجانية المستهلكة في الدورة
totalFreeOcrTranslateQuotanumberصفحات التعرّف الضوئي المجانية الممنوحة في الدورة
useFreeOcrTranslateQuotanumberصفحات التعرّف الضوئي المجانية المستهلكة
freeWatermarkQuotanumberالمتبقي من مرات إزالة العلامة المائية
daysFreeWatermarkQuotanumberمرات إزالة العلامة المائية الممنوحة يوميًا
usedDaysFreeWatermarkQuotanumberالمستهلك منها اليوم
rewardBalancenumberرصيد مكافآت الدعوة
rewardTotalnumberإجمالي مكافآت الدعوة المكتسبة
مثال
الطلب
{}
الاستجابة
{
  "code": "200",
  "data": {
    "userId": 10086,
    "translateQuota": 12000,
    "advancedTranslateQuota": 0,
    "ocrTranslateQuota": 800,
    "totalFreeTranslateQuota": 500,
    "useFreeTranslateQuota": 132
  }
}
02

الاطّلاع على الباقة

POST

/external/user/getMySubscriptionInfo

باقة الحساب المرتبط بهذا المفتاح: الفئة والدورة الحالية والحدود التي تمنحها — التزامن وحجم الملف ومدة الفيديو.

المعاملات

بلا معاملات — أرسل جسم JSON فارغًا.

الاستجابة · data

الحقلالنوعالوصف
vipNamestringاسم الباقة
vipTypenumberفئة الباقة
subscriptionStatusnumberحالة الاشتراك، انظر المفتاح أعلاه
intervalnumberدورة الاشتراك، انظر المفتاح أعلاه
startTimenumberبداية الدورة بالمللي ثانية
endTimenumberنهاية الدورة بالمللي ثانية
translateQuotanumberالصفحات الممنوحة في كل دورة
advancedTranslateQuotanumberصفحات النماذج المتقدّمة الممنوحة في كل دورة
freeTranslateQuotanumberالصفحات المجانية الممنوحة في كل دورة
freeTranslateQuotaIntervalnumberدورة تجديد الصفحات المجانية: 1 يوم · 2 أسبوع · 3 شهر
concurrenceTasknumberعدد مهام المستندات المتزامنة المسموح بها
uploadFileSizenumberالحد الأقصى لحجم الملف بالميجابايت
videoDurationLimitnumberالحد الأقصى لمدة الفيديو بالدقائق
videoTranslateConcurrencynumberعدد مهام الفيديو المتزامنة المسموح بها
videoFileSizenumberالحد الأقصى لحجم الفيديو بالميجابايت
ملحق

رموز الأخطاء

أخطاء المفتاح تعود أيضًا برمز HTTP 200 مع رمز العمل داخل جسم الاستجابة. هذه هي الرموز التي يجب أن يعالجها تكاملك.

الرمزالمعنىالإجراء
30306مفتاح API غير صالحتأكد من نسخ المفتاح كاملًا مع البادئة ft_. المفاتيح المحذوفة تعيد الرمز نفسه.
30307المفتاح معطّلأعد تفعيله من مركز المطورين أو استخدم مفتاحًا آخر.
30308انتهت صلاحية المفتاحمدّد تاريخ الانتهاء أو أنشئ مفتاحًا جديدًا.
30309عنوان IP المتصل خارج القائمة المسموح بهاأضف عنوان IP الصادر من خادمك إلى قائمة المفتاح، أو أفرغ القائمة.
30312حظر المشرف للمفتاحتواصل مع الدعم، فهذا الحظر لا يُرفع من مركز المطورين.

أخطاء الترجمة نفسها — نفاد الحصة، أو ملف غير مدعوم، أو إرسال مكرر — لها رموزها الخاصة ويأتي معها دائمًا نص msg بلغتك. اعتمد في التفريع على code لا على msg.

ملحق

الحصة والحدود

الواجهة البرمجية مدخل إضافي لا منتج آخر، وهذه القواعد ترثها كما هي من الموقع.

الحصة نفسها بلا فوترة منفصلة
تستهلك استدعاءات الواجهة حصة الصفحات والفيديو نفسها المستخدمة في الموقع وبمعاملات النماذج نفسها، ولا يوجد سعر خاص بالواجهة.
قواعد العلامة المائية نفسها
في الباقة المجانية تحمل ملفات PDF المترجمة علامة مائية تمامًا كما في المتصفح، والمرور عبر الواجهة لا يزيلها.
الإرسال وحده يُحتسب استدعاءً
لا يتحرك عدّاد استدعاءات المفتاح إلا مع batchSubmitTranslateTask وsubmitVideoTranslate وsubmitVideoRewrite، أما استعلامات الحالة والتفاصيل فيمكن تكرارها بحرية.
إرسال واحد في كل مرة
يُنفَّذ الإرسال بالتتابع لكل حساب. إرسال ثانٍ أثناء قبول الأول يعيد رمز خطأ المهمة المكررة، فأعد المحاولة بعد لحظات بدل الإرسال المتوازي.
التعرّف الضوئي مغلق افتراضيًا
فعّل isOcr للمستندات الممسوحة ضوئيًا فقط. فالتعرّف الضوئي يخصم حصة فرعية إضافية فوق حصة الصفحات، وتركه مفعّلًا مع ملفات PDF النصية يستهلك الحصة مرتين. وعند الشك استدعِ نقطة isOcr أولًا.

تفضّل تجنّب تفاصيل HTTP؟

القدرات نفسها متاحة كأدوات MCP، فيستطيع وكيل ذكاء اصطناعي ترجمة مستند دون أن تكتب استدعاء HTTP واحدًا.