SSubToolDesk
ar
VTT → ASS

حوّل WebVTT (.vtt) إلى Advanced SubStation Alpha

حوّل ملف ترجمة <code>.vtt</code> إلى مسار ترجمة <code>.ass</code> منسّق، بتعريف نمط حقيقي وتوقيت بالسنتي ثانية، جاهز للمشغّلات والمحررات التي تتوقع ASS. بدون أي رفع ملفات لإجراء ذلك.

مكتشف: …
اسحب ملفًا، أو الصق النص، أو حرّره مباشرة
…
محلي

ملفاتك لا تصل إلى أي خادم أبدًا. تتم كل عملية تحويل في هذه الصفحة محليًا داخل متصفحك باستخدام واجهة FileReader في JavaScript. لا يُرفع شيء، ولا يُسجَّل، ولا يُخزَّن. مناسبة لتسجيلات Zoom وTeams السرية، والفيديو غير المنشور، والمقابلات القانونية.

كيف تعمل عملية تحويل VTT إلى ASS

صيغة WebVTT (.vtt) مبنية لترجمة الفيديو داخل المتصفح: ترويسة WEBVTT، ثم مقاطع بصيغة نطاق رمز وقت HH:MM:SS.mmm --> HH:MM:SS.mmm مع سطر أو سطرا نص، مع إعدادات مقطع اختيارية أو وسوم صوت <v المتحدث>. أما Advanced SubStation Alpha (.ass)، الصيغة التي يستخدمها Aegisub وكثير من مجموعات الفانسب (fansub) والمشغّلات المتقدمة مثل MPV و VLC، فبنيتها مختلفة تمامًا: ترويسة [Script Info]، وقسم [V4+ Styles] يحدّد الخطوط والألوان والحدود الخارجية وموضع الشاشة، وقسم [Events] يُشير فيه كل سطر إلى أحد تلك الأنماط.

يحلّل محول VTT إلى ASS في SubToolDesk مقاطع WebVTT لديك محليًا داخل متصفحك، ويتجاهل ترويسة WEBVTT وأي وسوم صوت، ويحوّل كل رمز وقت إلى صيغة ASS بالسنتي ثانية H:MM:SS.cc، ويكتب ملف .ass كاملًا وصالحًا بكتلة [Script Info] فعّالة، ونمط Default واحد، وسطر Dialogue: واحد لكل مقطع.

كيفية تحويل VTT إلى ASS (خطوة بخطوة)

  • اسحب ملف .vtt إلى المحول أعلاه، أو اضغط «رفع ملف» للبحث عنه.
  • تأكد من أن بطاقة الاكتشاف التلقائي للصيغة تعرض VTT.
  • فعّل إزالة أسماء المتحدثين إذا كان مصدرك يحتوي على وسوم <v المتحدث> أو بادئات أسماء في بداية الأسطر لا تريد نقلها إلى الناتج.
  • اضغط تنزيل لحفظ ملف .ass صالح، بالاسم نفسه لملفك الأصلي.

لماذا تحوّل VTT إلى ASS

صُمِّم ملف .vtt لمشغّل المتصفح الأصلي، لا لبرنامج تحرير يعرض نصًا منسَّقًا. يتعلق التحويل إلى ASS غالبًا بما يحتاج المشغّل أو برنامج التحرير الوجهة أن يفعله بهذا النص:

  • توقيت على طراز الكاريوكي للفانسب: وسوم \k في ASS، الموزَّعة لكل مقطع صوتي من الكلمة، هي الطريقة المعيارية التي تبني بها مجموعات الفانسب وإصدارات الأنمي تأثيرات الكاريوكي، حتى إن بدأت الترجمة المصدر حياتها كمسار WebVTT مُصدَّر من متصفح.
  • وضع الحوار في موقع معيّن على الشاشة: يمكن لـ ASS وضع سطر في أي مكان من الكادر عبر تجاوزات الهوامش والمحاذاة، بديل أكثر مرونة من إعدادات align/position الخاصة بـ WebVTT، التي لا ينقلها هذا المحول تلقائيًا.
  • نص مُلوَّن أو محاط بحدود لأسباب إتاحة أو أسلوبية: نمط Default مُلوَّن ومحاط بحد خارجي (يكتبه هذا المحول تلقائيًا) يبقى مقروءًا فوق فيديو مشرق أو مزدحم، بطريقة لا يضمنها نص WebVTT العادي.
  • تدفقات عمل Aegisub و MPV و VLC: صُمِّم Aegisub حول صيغة ASS خصيصًا، ويعرض MPV و VLC كلاهما تجاوزات تنسيقها، فمشروع يبدأ هناك يحتاج إلى ASS، لا إلى ملف ترجمة متصفح.
  • تجاوزات خط وحجم لكل سطر: يسمح ASS لأسطر Dialogue الفردية بتجاوز الخط أو الحجم أو اللون دون التأثير على النمط الأساسي، وهو ما لا تستطيع إعدادات مقطع WebVTT التعبير عنه.
  • الحصول على ملف أساسي منسَّق تبني عليه: يضع التحويل بنية [Script Info] و[V4+ Styles] و[Events] في مكانها، بحيث يصبح العمل المتبقي في Aegisub هو إضافة التنسيق نفسه فقط.

قبل وبعد: مثال حقيقي

مقتطف قصير من WebVTT بمقطعين، يحتوي على إعداد مقطع ووسم صوت ووسم مائل، يُحوَّل مع تفعيل إزالة وسوم التنسيق وتعطيل إزالة أسماء المتحدثين (الوضع الافتراضي في هذه الصفحة):

Before
WEBVTT

00:00:03.500 --> 00:00:06.120 align:start position:10%
<v المتحدث 1>شكرًا لانضمامكم إلى المكالمة اليوم.

00:00:06.500 --> 00:00:09.800
<v المتحدث 2><i>بالتأكيد، لنبدأ.</i>
After
[Script Info]
Title: SubToolDesk Export
ScriptType: v4.00+
...

[V4+ Styles]
Format: Name, Fontname, Fontsize, ...
Style: Default,Arial,20,&H00FFFFFF,...

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:03.50,0:00:06.12,Default,,0,0,0,,المتحدث 1: شكرًا لانضمامكم إلى المكالمة اليوم.
Dialogue: 0,0:00:06.50,0:00:09.80,Default,,0,0,0,,المتحدث 2: بالتأكيد، لنبدأ.

اختفت ترويسة WEBVTT وإعداد المقطع align:start position:10% معًا؛ فهذا المحول لا يملك مكافئًا في ASS لإعدادات المقطع، فتُحذَف بدل أن تُترجَم. انتقل كل رمز وقت من ميلي ثانية WebVTT المفصولة بنقطة إلى سنتي ثانية ASS المفصولة بنقطة أيضًا (00:00:03.500 أصبح 0:00:03.50). اختفى وسم <i> لأن إزالة وسوم التنسيق كانت مفعّلة. اختفى وسما الصوت <v المتحدث 1> و<v المتحدث 2> أيضًا، لكن لأن إزالة أسماء المتحدثين كانت معطّلة، احتُفِظ بكل اسم وأُدرِج في نص الحوار كبادئة الاسم: بدل حذفه تمامًا؛ فلا يوجد حقل Name مستقل في ASS يمكن أن ينتقل إليه، ويبقى هذا الحقل خاليًا.

ما يحتويه ملف .ass الناتج

الناتج ملف ASS كامل وجاهز للتشغيل. يتضمن كتلة [Script Info] حقيقية، وقسم [V4+ Styles] بنمط واحد باسم Default (نص أبيض، بحد خارجي رفيع وظل لتحسين القراءة فوق الفيديو، ومُحاذى إلى وسط الأسفل)، وقسم [Events] بسطر Dialogue: لكل مقطع. يمكنك فتح النتيجة في Aegisub بعد ذلك لتعديل الخطوط أو الألوان أو الموضع.

ما يحدث لميزات WebVTT الخاصة

لا تملك إعدادات مقطع WebVTT (مثل align:start position:10%) ووسوم الصوت <v اسم المتحدث> مكافئًا مباشرًا في ناتج ASS الذي يولّده هذا المحول؛ تُحذَف إعدادات المقطع، وتُزال وسوم الصوت بواسطة مفتاح إزالة أسماء المتحدثين، كما هو الحال في كل محول آخر على هذا الموقع. إذا كنت تحتاج إلى نفس المعلومة في ASS، فهي تُعبَّر عنها بطريقة مختلفة هناك، عبر تجاوزات MarginL/MarginR/MarginV لكل سطر أو نمط مخصص، وهذه خطوة يدوية لاحقة بعد أن يصبح لديك الملف الأساسي.

لماذا تبدو رموز الوقت مختلفة في ASS

تُوقِّت WebVTT إلى الميلي ثانية بفاصل نقطة (00:00:09.400)؛ وتُوقِّت ASS إلى السنتي ثانية، أي جزء من مئة من الثانية، بساعة غير مبطَّنة بصفر (0:00:09.40). يتعامل المحول مع هذا التقريب تلقائيًا، فيصل مقطع يبدأ عند الثانية 9.4 في المصدر إلى السنتي ثانية الصحيحة في الناتج.

لماذا ينتقل الناس من VTT إلى ASS

  • الفانسب ومجموعات إصدار الأنمي، حيث تُعدّ تجاوزات التنسيق والموضع في ASS المعيار الفعلي، حتى إن كانت الترجمة المصدر مُصدَّرة بصيغة WebVTT.
  • المحررون العاملون في Aegisub، الذي يتوقع ASS كملف مشروع أصلي بدل استيراد VTT عادي.
  • المشغّلات وخطوط المعالجة التي تعرض التجاوزات المنسَّقة، مثل MPV أو بعض برامج ترميز البث المباشر، حيث لا تُقابِل إعدادات مقطع WebVTT نفس درجة التحكّم بالموضع والخط التي توفّرها ASS.
  • بدء مشروع ترجمة منسَّق من مسار ترجمة مُصدَّر من متصفح، باستخدام هذا المحول للحصول على ملف ASS صالح بنيويًا قبل إضافة الأنماط يدويًا.

خصوصية بالتصميم، لا بالسياسة

يحدث تحليل VTT وكتابة ملف ASS كلاهما في JavaScript يعمل داخل تبويب متصفحك. لا توجد نقطة رفع يمكن لهذه الميزة أن تصل إليها، سواء كان المصدر ترجمة عامة مُصدَّرة من YouTube أو تسجيلًا سريًا.

ما يحافظ عليه هذا المحول وما يحذفه

يُحافَظ عليه:

  • كل كلمة من نص الحوار المنطوق، بترتيبها الأصلي وعلامات ترقيمها.
  • توقيت كل مقطع، مُعاد تنسيقه من دقة WebVTT بالميلي ثانية إلى دقة ASS بالسنتي ثانية دون انحراف.
  • سطر Dialogue: واحد لكل مقطع مصدر، بالترتيب نفسه الذي ظهرت به في ملف VTT.
  • أسماء من وسوم الصوت، مثل المتحدث 1، مُدرَجة في نص الحوار كبادئة، عند تعطيل إزالة أسماء المتحدثين.

يُحذَف:

  • سطر ترويسة WEBVTT، وأي كتل NOTE أو STYLE أو REGION.
  • إعدادات المقطع على سطر الطابع الزمني، مثل align:start position:10%؛ لا تملك ASS مكافئًا مباشرًا لها في ناتج هذا المحول.
  • وسوم التنسيق المضمّنة مثل <i> و<b> و<u>، عند تفعيل إزالة وسوم التنسيق.
  • وسوم الصوت مثل <v اسم المتحدث>، بالاسم كاملًا، عند تفعيل إزالة أسماء المتحدثين.

مشكلات شائعة وكيفية حلّها

  • لا تزال في النتيجة وسوم <i> أو <b> داخل نص الحوار: فعّل إزالة وسوم التنسيق؛ وهو مفعّل افتراضيًا فقط إن لم تغيّره.
  • لا تزال أسماء مثل المتحدث 2: ملتصقة بنص الحوار: فعّل إزالة أسماء المتحدثين؛ فهو معطّل افتراضيًا في هذه الصفحة، فتمر أسماء وسوم الصوت مباشرة كبادئة نصية ما لم تفعّله.
  • يبدو أن موضع المقطع أو محاذاته اختفى: هذا متوقع؛ لا تُنقَل إعدادات align/position الخاصة بـ WebVTT تلقائيًا إلى ASS؛ أعد إنشاء هذا الموضع بتجاوزات الهامش أو المحاذاة في Aegisub إذا احتجت إليه.
  • يُعرَض كل سطر بنفس الخط والحجم واللون في Aegisub: هذا متوقع، فهذا المحول يكتب نمط Default واحدًا فقط؛ افتح الملف في Aegisub بعد ذلك لإنشاء أنماط إضافية أو تجاوزات لكل سطر.
  • تبدو الترجمة غير متزامنة بقدر طفيف بعد التحويل: تخزّن ASS دقة السنتي ثانية فقط، فقد ينزلق مقطع مُوقَّت بالضبط على الميلي ثانية بما يصل إلى جزء من مئة من الثانية، وهو أقل بكثير من أي شيء ملحوظ؛ إذا كان الانحراف أكبر من ذلك، تحقّق من رموز وقت VTT الأصلي بدلًا من ذلك.
  • تظهر الحروف المُشكَّلة أو النص غير اللاتيني كرموز مشوّهة مثل é: لم يُحفَظ ملف .vtt الأصلي بترميز UTF-8؛ صدّره أو أعد حفظه بترميز UTF-8 ثم أعد رفعه.

ما لا تفعله هذه الأداة عمدًا

تكتب نمط Default واحدًا ولا تحاول تخمين توقيت الكاريوكي، أو ألوان كل شخصية، أو تجاوزات الموضع؛ هذه خطوة يدوية (أو بمساعدة Aegisub) بعد أن يصبح لديك ملف أساسي صالح. كما أنها لا تترجم إعدادات مقطع WebVTT تلقائيًا إلى تجاوزات هامش أو محاذاة في ASS؛ فهذه المطابقة ليست واحدة إلى واحدة، وتُترَك لك لتطبيقها عمدًا إذا احتجت إليها.

الأسئلة الشائعة

كيف أحوّل ملف VTT إلى ASS؟

اسحب ملف .vtt إلى المحول أعلاه، أو الصق محتواه في لوحة الإدخال. بمجرد أن تؤكد بطاقة الصيغة أنه VTT، اضغط تنزيل. يُولَّد ملف .ass كامل وصالح داخل متصفحك.

هل سيُفتح ملف ASS بشكل صحيح في Aegisub أو VLC أو MPV؟

نعم. يتضمن الناتج ترويسة [Script Info] صالحة، وقسم [V4+ Styles] بنمط Default، وقسم [Events] بأسطر Dialogue منسَّقة بشكل صحيح، وهي البنية التي تتوقعها الثلاثة جميعًا.

ماذا يحدث لوسوم الصوت وموضع المقاطع في WebVTT؟

تُزال وسوم الصوت مثل <v اسم المتحدث> بواسطة مفتاح إزالة أسماء المتحدثين. لا تُنقَل إعدادات موضع المقطع (مثل align أو position) تلقائيًا؛ تُعبِّر ASS عن هذه المعلومة بطريقة مختلفة، عبر الأنماط وتجاوزات الهامش لكل سطر.

لماذا تبدو رموز الوقت مختلفة في ناتج ASS؟

تستخدم ASS دقة السنتي ثانية بصيغة مختلفة عن رموز وقت WebVTT بالميلي ثانية (0:00:09.40 بدل 00:00:09.400). يتعامل المحول مع هذا التحويل تلقائيًا.

هل يُرفَع ملف الترجمة إلى أي مكان لإجراء هذا التحويل؟

لا. يحدث تحليل VTT وإنشاء ملف ASS كلاهما بالكامل داخل محرّك JavaScript في متصفحك. لا يُرسَل شيء إلى خادم.

هل تقبل YouTube أو Vimeo ملف ترجمة .ass؟

لا. تقبل معظم نماذج الرفع، بما فيها YouTube و Vimeo، صيغة SRT أو VTT، لا ASS. حوّل إلى ASS لبرامج التحرير والمشغّلات التي تعرض تنسيقه (Aegisub، MPV، VLC)، واحتفظ بنسخة VTT أو SRT لرفعها على المنصات.

هل ASS أفضل من VTT، أم يجدر بي الاستمرار مع VTT؟

يعتمد ذلك على حاجتك. تدعم ASS الموضع وتوقيت الكاريوكي وتجاوزات الخط واللون لكل سطر، وهو ما لا تستطيع إعدادات مقطع VTT التعبير عنه كاملًا؛ أما VTT فهي الصيغة التي يتطلبها المتصفح وعنصر HTML5 <track> فعليًا. استخدم ASS عندما يحتاج تدفق عملك تنسيقًا خاصًا في مشغّل مثل Aegisub أو MPV؛ واستخدم VTT للتشغيل على الويب.