ترجمة ملف SRT لفيديو
تترجم هذه الأداة ملف ترجمة فيديو بصيغة SRT من لغة إلى أخرى، فتنقل نص كل سطر حواري إلى اللغة الهدف وتترك أرقام الترجمة وتوقيتات الظهور والاختفاء كما هي بالضبط، فيخرج ملف ترجمة جاهز للتشغيل مباشرة مع نفس الفيديو الأصلي دون أي تعديل يدوي على التوقيت.
شغّلها أونلاين
شغّل هذه المهمة على خوادمنا باستخدام حسابك. الأدوات المجانية تعمل داخل متصفحك، أما هذه فتُخصم من رصيدك في KIT حسب السعر الموضّح أعلاه.
التوقيت لا يُلمَس
ملف SRT يتكوّن من رقم تسلسلي، توقيت بداية ونهاية كل سطر، ثم النص المعروض خلال تلك الفترة. تقرأ الأداة هذه البنية الثلاثية وتترجم النص فقط، تاركة الرقم التسلسلي وحدود التوقيت كما هي بالضبط لكل سطر، فتبقى الترجمة متزامنة مع الفيديو الأصلي حرفيًا كما كانت قبل الترجمة، دون أي انزياح ولو ثانية واحدة.
طول السطر بعد الترجمة
بعض اللغات تحتاج مساحة أطول من غيرها لنقل نفس المعنى، والعربية أحيانًا تطول عن الإنجليزية في الجملة نفسها؛ سطر ترجمة طويل جدًا يظهر ويختفي بسرعة يصعب قراءته على المشاهد. تراعي الأداة قِصَر السطر قدر الإمكان مع الحفاظ على المعنى كاملًا، وتقسم النص الطويل إلى سطرين إن لزم دون تغيير توقيت الظهور المحدد أصلًا.
أسماء الأعلام والمصطلحات المتكررة
أسماء شخصيات أو مصطلحات تقنية تتكرر عشرات المرات عبر حلقة أو فيلم كامل تحتاج ثباتًا في الترجمة من أول سطر لآخر سطر، وإلا شعر المشاهد بتناقض. تحافظ الأداة على ترجمة موحدة للاسم أو المصطلح نفسه في كل مرة يظهر فيها عبر الملف كاملًا، فلا يتغير اسم الشخصية باختلاف السطر.
السعر
$0.003 للطلب و$0.0135 لكل ألف كلمة من نص الحوار داخل الملف، بصرف النظر عن عدد الأسطر أو طول الفيديو. حلقة من عشرين دقيقة بحوار متوسط تكلف عادة أقل من عشرة سنتات إضافية فوق السعر الثابت.
حالات الاستخدام
فيديو تدريبي داخلي
يترجم محمد الحربي ملف SRT لفيديو تدريبي سجّله بالعربية لموظفي فرع جديد يتحدثون الإنجليزية، فتظهر الترجمة متزامنة مع كل جملة يقولها المدرّب دون أي تأخير.
محتوى تعليمي على يوتيوب
تترجم سارة النعيمي ملفات SRT لسلسلة فيديوهات تعليمية تنشرها على قناتها، من العربية إلى الإنجليزية، لتوسيع جمهورها خارج المنطقة الناطقة بالعربية.
أرشيف مقابلات لمؤسسة
تحوّل مؤسسة النخيل للمقاولات أرشيف مقابلات مصورة مع عملاء سابقين إلى نسخة مترجمة بالإنجليزية لاستخدامها في عرض تقديمي لمستثمرين.
الأسئلة الشائعة
هل يتغير توقيت ظهور الترجمة بعد المعالجة؟
لا، يبقى توقيت البداية والنهاية لكل سطر كما هو بالضبط؛ يُترجَم النص فقط دون المساس بأي رقم توقيت في الملف.
ماذا لو كانت الترجمة العربية أطول من مساحة السطر الأصلي؟
تسعى الأداة لصياغة مختصرة تحافظ على المعنى، وتقسم السطر الطويل إلى سطرين عند الحاجة دون تغيير توقيت ظهوره.
هل تدعم الأداة ملفات VTT إلى جانب SRT؟
هذه الصفحة مخصصة لملفات SRT تحديدًا؛ صيغ الترجمة الأخرى تُعالَج بأداتها الخاصة إن وُجدت.
كم تكلفة ترجمة حلقة كاملة من نحو ألفي كلمة حوار؟
$0.003 للطلب و$0.0135 لكل ألف كلمة، أي نحو $0.03 إجمالًا لحلقة من ألفي كلمة.
هل يمكن رفع عدة ملفات SRT دفعة واحدة؟
عبر الـAPI نعم، يمكن إرسال كل ملف كطلب مستقل ومعالجة موسم كامل من الحلقات ضمن مسار واحد.
هل تُحفظ ملفات الترجمة بعد المعالجة؟
لا، يُستخدم الملف لإنتاج النسخة المترجمة فقط ثم يُستبعد دون حفظه بعد اكتمال الطلب.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/translate/srt \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"…"}'const res = await fetch("https://api.kit.forhosting.com/translate/srt", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/translate/srt",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/translate/srt", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/translate/srt", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"text": "…"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "translate.srt",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_tokens | 20000 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
422 | task_failed | لم تنجح معالجة المهمة، ولن تُحتسب عليك؛ أعد المحاولة أو راسلنا مباشرة. |