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