حوّل SubRip (.srt) إلى WebVTT
اجعل ملف <code>.srt</code> صالحًا لعنصر HTML5 <code><track></code> ولمشغّلات الفيديو الحديثة. يُضاف سطر WEBVTT وتُعاد صياغة رموز الوقت، بلا أي رفع للملف.
ملفاتك لا تصل إلى أي خادم أبدًا. تتم كل عملية تحويل في هذه الصفحة محليًا داخل متصفحك باستخدام واجهة FileReader في JavaScript. لا يُرفع شيء، ولا يُسجَّل، ولا يُخزَّن. مناسبة لتسجيلات Zoom وTeams السرية، والفيديو غير المنشور، والمقابلات القانونية.
كيف تعمل عملية تحويل SRT إلى VTT
إذا جرّبت يومًا إدراج ملف .srt مباشرة في وسم HTML5 <track kind="captions" src="captions.srt">، فربما اكتشفت أن المتصفحات تتجاهله تمامًا. عنصر <track> (وقائمة الترجمة الأصلية التي يبنيها كل متصفح حديث حوله) لا يفهم إلا WebVTT. أما SRT، على الرغم من كونه الصيغة الأكثر دعمًا بين برامج التحرير والمشغّلات على سطح المكتب، فهو ليس جزءًا من معيار HTML5 على الإطلاق.
الإصلاح آلي لكنه دقيق: يتطلب WebVTT سطر WEBVTT حرفيًا في أعلى الملف، ويجب أن يكون فاصل الألف من الثانية في كل رمز وقت نقطة بدل فاصلة SRT (00:00:09,400 ← 00:00:09.400). إذا أخطأت في أي من هاتين التفصيلتين، سيفشل المتصفح بصمت في عرض الترجمة بلا أي رسالة خطأ. يحلّل محول SubToolDesk ملف SRT لديك محليًا، ويعيد بناءه بسطر عنوان صالح ورموز وقت مصحَّحة، ويعيد ترقيم المقاطع بشكل منظم، كل ذلك داخل تبويب متصفحك.
خطوات التحويل
- اسحب ملف
.srtإلى المحول أعلاه، أو الصق محتواه في لوحة الإدخال. - تأكد من أن بطاقة الصيغة تكتشف SRT.
- اضغط تنزيل لحفظ ملف
.vttصالح، بنفس اسم ملفك الأصلي. - استخدمه داخل عنصر
<track>:<track kind="captions" src="/captions.vtt" srclang="ar" label="العربية">.
لماذا تحوّل SRT إلى WebVTT
يُزامَن ملف .srt بلا مشكلة في برنامج تحرير على سطح المكتب، لكنه لا يعمل في متصفح. يرتبط التحويل إلى WebVTT دائمًا تقريبًا بواحد من هذه الأسباب:
- السبب: تضيف ترجمة إلى عنصر
<video>مستضاف ذاتيًا، وتحتاج صيغة يفهمها وسم HTML5<track>فعلًا. - السبب: تستجيب لمتطلب إمكانية وصول (كمعيار الترجمة في WCAG 2.1) وتحتاج ترجمة متوافقة مع المعايير، لا صيغة يتجاهلها المتصفح بصمت.
- السبب: منصة الفيديو أو نظام إدارة المحتوى أو تضمين عرض الشاشة في موقع التوثيق لديك يقبل فقط رفع ملفات
.vtt. - السبب: استلمت ملفات
.srtمن محرّر أو مستقل أو مزوّد ترجمة، وتحتاج تسليم المطوّر ملفًا جاهزًا للاستخدام الفوري. - السبب: تنقل مكتبة فيديو من منصة تصدّر SRT إلى مشغّل مخصص مبني حول ترجمة المتصفح الأصلية.
- السبب: تريد الإصلاح دون تثبيت ffmpeg أو كتابة سكريبت تحويل لمرة واحدة لملف واحد.
قبل وبعد: مثال حقيقي
ملف SRT قصير من ثلاثة مقاطع، برموز وقت بفاصلة وأرقام متتالية، يُحوَّل مع تعطيل إزالة أسماء المتحدثين وإزالة وسوم التنسيق (الوضع الافتراضي في هذه الصفحة، لأنه لا حاجة لإزالة أي شيء للحصول على WebVTT صالح):
1 00:00:01,200 --> 00:00:04,000 مرحبًا بكم من جديد، نستعرض اليوم أرقام الربع الثالث. 2 00:00:04,300 --> 00:00:07,900 شكرًا للدعوة. لننتقل مباشرة إلى الموضوع. 3 00:00:08,100 --> 00:00:11,500 ارتفعت الإيرادات بنسبة ثمانية بالمئة مقارنة بالعام الماضي.
WEBVTT 1 00:00:01.200 --> 00:00:04.000 مرحبًا بكم من جديد، نستعرض اليوم أرقام الربع الثالث. 2 00:00:04.300 --> 00:00:07.900 شكرًا للدعوة. لننتقل مباشرة إلى الموضوع. 3 00:00:08.100 --> 00:00:11.500 ارتفعت الإيرادات بنسبة ثمانية بالمئة مقارنة بالعام الماضي.
نص المقاطع والتوقيت وحتى أرقام المقاطع تنتقل دون تغيير. فقط سطر WEBVTT يُضاف، وكل فاصلة قبل الألف من الثانية تصبح نقطة، وهما بالضبط التغييران اللذان يحتاجهما المتصفح لقبول الملف.
قبل وبعد
مدخل SRT: 1 00:00:09,400 --> 00:00:12,900 ارتفعت الإيرادات بنسبة ثمانية بالمئة. مخرج VTT: WEBVTT 1 00:00:09.400 --> 00:00:12.900 ارتفعت الإيرادات بنسبة ثمانية بالمئة.
لماذا يهم هذا مطوّري الويب
الفيديو المُترجَم والمتاح لذوي الاحتياجات هو متطلب استخدام وامتثال في الوقت نفسه لمعظم المواقع العامة (يتطلب معيار النجاح 1.2.2 من WCAG 2.1 ترجمة للوسائط المسجَّلة مسبقًا)، وعنصر <track> هو الطريقة القائمة على المعايير لتقديمها دون منصة فيديو من طرف ثالث. إذا كانت سلسلة التحرير لديك (أو مستقل تتعامل معه) تسلّمك ملفات .srt فقط، فإن التحويل هنا يعيدك إلى ملف WebVTT جاهز للاستخدام في ثوانٍ، دون تثبيت ffmpeg أو كتابة سكريبت تحويل.
تتم المعالجة عندك، لا على خوادمنا
بما أن هذه إعادة تنسيق نص عادي، لا يُلمَس أو يُرفَع أي ملف فيديو أبدًا، فقط نص الترجمة، وفقط داخل تبويب متصفحك. وهذا مهم لفيديو عرض منتج داخلي بقدر أهميته لصفحة تسويقية عامة.
استخدام النتيجة داخل عنصر <track>
بعد تنزيل الملف المحوَّل، أضفه إلى شيفرة <video> لديك كعنصر فرعي <track>:
<video controls>
<source src="demo.mp4" type="video/mp4">
<track
kind="captions"
src="/captions.vtt"
srclang="ar"
label="العربية"
default>
</video>يخبر خاصية default المتصفحَ بتفعيل هذا المقطع تلقائيًا؛ تجاهلها إن كنت تقدّم مقاطع بلغات متعددة وتريد أن يختار المُشاهد. تتحقق المتصفحات من سطر WEBVTT بصرامة: سطر ناقص أو مكتوب بخطأ هو السبب الأكثر شيوعًا لفشل ظهور الترجمة بصمت، حتى لو كان باقي الملف سليم البنية.
لمن صُمِّم هذا المحول
مطوّرو الواجهات الأمامية والمطوّرون الشاملون الذين يضيفون ترجمة إلى مشغّل فيديو مستضاف ذاتيًا هم الجمهور الأساسي، لكن فرق إنتاج الفيديو التي تسلّم الأصول إلى مطوّر تستخدمه أيضًا لتسليم شيء مضمون العمل، بدل ترك تحويل الصيغة مهمة مفتوحة على طاولة شخص آخر. وهو مفيد بنفس القدر لمواقع التوثيق مفتوحة المصدر التي تضمّن عروض شاشة، وفرق الأدوات الداخلية التي تترجم فيديوهات تدريب لأغراض الامتثال لإمكانية الوصول، وكل من ينقل مكتبة فيديو من منصة صدّرت SRT إلى مشغّل مخصص يتوقع ترجمة أصلية من المتصفح.
ما يحافظ عليه هذا المحول وما يحذفه
يُحافَظ عليه:
- كل كلمة من نص الحوار، كما كُتبت تمامًا، بما في ذلك أي أخطاء مطبعية في الملف المصدر.
- توقيت دقيق إلى المللي ثانية لكل مقطع، منقول بالضبط.
- كتلة واحدة لكل مقطع، بالترتيب الأصلي، مع إعادة ترقيم المقاطع تتابعيًا بدءًا من 1.
- أي بادئات متحدثين أو وسوم داخل نص المقطع، إلا إذا فعّلت إزالة أسماء المتحدثين أو إزالة وسوم التنسيق.
يتغيّر أو يُحذَف:
- تصبح الفاصلة قبل الألف من الثانية نقطة في كل رمز وقت، لأن WebVTT يتطلب
00:00:04.000لا فاصلة SRT00:00:04,000. - يُضاف سطر عنوان
WEBVTTفي أعلى الملف، لأن WebVTT يتطلبه ولا يحتوي SRT على ما يماثله. - بادئات متحدثين بنص عادي مثل
المتحدث 1:، لكن فقط إذا فُعِّلت إزالة أسماء المتحدثين؛ تبقى في مكانها افتراضيًا. - وسوم تنسيق مثل
<i>أو<b>، لكن فقط إذا فُعِّلت إزالة وسوم التنسيق؛ تبقى في مكانها افتراضيًا.
مشكلات شائعة وكيفية حلّها
- المتصفح لا يزال لا يعرض الترجمة بعد التحويل: تحقق من أن بطاقة الصيغة فوق المحول قرأت فعلًا SRT قبل التحويل؛ قد يُفسِد لصق ناقص اكتشاف المقاطع ويولّد خرجًا فارغًا أو مشوَّهًا.
- وسوم
<i>أو<b>لا تزال تظهر كنص عادي في الترجمة: هذا متوقع؛ إزالة وسوم التنسيق معطّلة افتراضيًا في هذه الصفحة لأن WebVTT يدعم هذه الوسوم أصلًا؛ فعّلها فقط إذا أردت نصًا عاديًا بدلًا منها. - أسماء متحدثين مثل
المتحدث 1:تنتقل مباشرة إلى خرج VTT: فعّل إزالة أسماء المتحدثين إذا كنت تفضّل عدم وجودها؛ تُحفَظ افتراضيًا لأن هذا المحول يفترض أنك تريد إعادة تنسيق بنيوية أمينة، لا تحريرًا للمحتوى. - الخرج لا يزال يعرض فاصلة بدل نقطة قبل الألف من الثانية: تأكد من أنك نزّلت خرج
.vttالفعلي وليس نسخة من ملف.srtالأصلي؛ تؤكد بطاقة الصيغة وتسمية الخرج فوق المحول ما تنظر إليه. - لا تظهر الترجمة مع أن الملف يبدو سليمًا: افتح ملف
.vttفي محرر نصوص وتأكد أن السطر الأول هوWEBVTTحرفيًا بلا أي شيء قبله، ولا حتى علامة ترتيب البايت أو سطر فارغ؛ ترفض المتصفحات الملف بصمت إن لم يكن هذا السطر أولًا. - تظهر الحروف المُشكَّلة أو النص غير اللاتيني كرموز مشوّهة مثل
éفي الملف المحوَّل: لم يُحفَظ ملف.srtالأصلي بترميز UTF-8؛ أعد تصديره أو حفظه بترميز UTF-8 قبل التحويل، لأن WebVTT، كـ SRT، يفترض نصًا بترميز UTF-8.
ما لا يتغيّر في التحويل
ينتقل نص الحوار والتوقيت الدقيق إلى المللي ثانية كما هو مكتوب بالضبط. هذه إعادة تنسيق بنيوية، لا إعادة تفريغ. إذا كان ملف SRT الأصلي لديك يحتوي أخطاء مطبعية، ستكون تلك الأخطاء في خرج VTT أيضًا؛ تصلح هذه الأداة توافق الصيغة، لا دقة المحتوى. وإذا رغبت أيضًا في تنظيف أسماء المتحدثين أو وسوم التنسيق الداخلية أثناء التحويل، فإن مفتاحَي إزالة أسماء المتحدثين وإزالة وسوم التنسيق أعلاه يُطبَّقان على نص المقطع قبل إعادة كتابته بصيغة WebVTT، فتستطيع الجمع بين تحويل الصيغة وتنظيف المحتوى في عملية واحدة بدل تشغيل أداتين منفصلتين.
الأسئلة الشائعة
لماذا يرفض متصفحي ملف .srt داخل عنصر <track>؟
يتطلب عنصر HTML5 <track> صيغة WebVTT تحديدًا. لا تحلّل المتصفحات SRT أصلًا لترجمة الفيديو. التحويل إلى .vtt مطلوب لاستخدام واجهة الترجمة الأصلية على الإطلاق.
ما الذي يضيفه المحول بالضبط ليصبح WebVTT صالحًا؟
يضيف سطر العنوان المطلوب WEBVTT في البداية، ويحوّل فاصل الألف من الثانية في كل رمز وقت من فاصلة إلى نقطة، ويعيد ترقيم مُعرّفات المقاطع: الأمور الثلاثة التي ينقصها SRT ليقبل المتصفح الملف.
هل يمكنني إضافة تموضع أو تنسيق للمقاطع بعد التحويل؟
نعم، تنتج هذه الأداة خرج WebVTT نظيفًا ومتوافقًا مع المعايير، يمكنك تحريره يدويًا لاحقًا لإضافة إعدادات مقطع (مثل align أو position) أو وسوم صوت <v>، بما أن البنية الأساسية صالحة بالفعل.
هل ستبقى الترجمة متزامنة بشكل صحيح بعد التحويل؟
نعم، يُحفَظ التوقيت بدقة المللي ثانية، ولا يتغيّر إلا حرف الفاصل وسطر العنوان، وليس قيم الوقت الفعلية أبدًا.
هل يعمل هذا مع ترجمات مُصدَّرة من Premiere أو DaVinci Resolve؟
نعم. يصدّر كلاهما SRT القياسي، الذي يقرأه هذا المحلل أصلًا بصرف النظر عن البرنامج الذي أنشأه.
هل تدعم بعض المتصفحات ملف .srt مباشرة، مع أنه غير متوافق مع المعيار؟
أضاف Chrome و Firefox دعمًا غير قياسي لـ SRT عبر واجهة TextTrack، لكنه غير متّسق وغير مضمون في كل المتصفحات أو الإصدارات. يتطلب معيار HTML5 فقط WebVTT، فالتحويل إلى .vtt هو الطريقة الوحيدة لضمان ظهور الترجمة في كل مكان.