M3U8 / HLS
ابتكرته Apple، ويشغّله كل جهاز Apple، ولن يحفظه أي منها.
ملف .m3u8 قائمة تشغيل، لا فيديو: بضعة كيلوبايتات من النص تسرد آلاف المقاطع الصغيرة التي يجب جلبها بالترتيب. هذا التصميم هو سبب عمل HLS بلا عيوب على كل جهاز Apple وسبب أن "حفظ هذا الملف" ينتج مستندًا نصيًا. تنزيل واحد منه يعني جلب كل مقطع وإعادة بناء ملف لم يوجد قط.
30 يوليو 2026
يُفتح من دون مساعدة بواسطة
HLS مواصفة خاصة بـApple ولها دعم من الدرجة الأولى في كل مكان — Safari، وAVPlayer، وAirPlay. ما لا يُدعَم في أي مكان من النظام هو تحويل بث مباشر إلى ملف على القرص. التشغيل والاحتفاظ مشكلتان مختلفتان تمامًا.
الحقائق
| الاسم الكامل | HTTP Live Streaming؛ قائمة التشغيل هي M3U بترميز UTF-8 |
|---|---|
| النوع | بروتوكول بث، يُسلَّم كقائمة نصية |
| الامتدادات | .m3u8 (القائمة)، و.ts أو .m4s (المقاطع التي تشير إليها) |
| تاريخ النشر | 2009، Apple؛ قُنِّن كـRFC 8216 عام 2017 |
| طول المقطع النموذجي | من ثانيتين إلى 10 ثوانٍ لكل مقطع — ساعة فيديو تعني مئات إلى آلاف الملفات |
| قائمة رئيسية مقابل قائمة وسائط | تسرد القائمة الرئيسية مستويات الجودة؛ ويشير كل منها إلى قائمة وسائط من المقاطع الفعلية |
| الفيديو داخل المقاطع | H.264 أو HEVC، وأحيانًا AV1 |
| البث المباشر | تُعاد جلب القائمة كل بضع ثوانٍ وتنمو مع استمرار البث |
فهرس محتويات، لا كتاب
افتح ملف .m3u8 في محرر نصوص فستجد بضعة عشرات من الأسطر: ترويسة، وبعض المعاملات، وقائمة طويلة من العناوين. هذا هو الملف بأكمله. يعيش الفيديو في مكان آخر، مقسَّمًا إلى مقاطع من بضع ثوانٍ كل منها، جالسًا على خادم كآلاف الملفات الصغيرة المنفصلة.
يقرأ المشغّل القائمة، ويجلب أول بضعة مقاطع، ويبدأ التشغيل، ويستمر في الجلب متقدمًا على نفسه. حين يتباطأ اتصالك، يبدّل إلى نسخة أقل جودة مدرَجة في القائمة الرئيسية — مجموعة مختلفة من المقاطع، بمعدل بت مختلف — ويفعل ذلك بين المقاطع فترى تغيرًا في الجودة بدلًا من توقف. هذا التبديل التكيفي هو سبب فوز هذه الصيغة.
كما يفسّر شيئًا يفاجئ الناس: لا يوجد ملف واحد لامتلاكه. الفيلم الذي تشاهده لا يوجد ككائن في أي مكان. إنه ألف قطعة ومجموعة تعليمات.
لماذا يمنحك حفظه ملفًا نصيًا
لأن هذا ما حفظته فعلًا. طلب المتصفح العنوان الذي أعطيته إياه، وتلقى أربعة كيلوبايتات من قائمة التشغيل، وكتبها على القرص. كل ما شاهدته فعليًا وصل عبر ألف طلب منفصل لم تعلم عملية الحفظ بها.
تنزيل HLS بشكل صحيح يعني فعل ما يفعله المشغّل، لكن على القرص: قراءة القائمة، واختيار نسخة جودة، وجلب كل مقطع بالترتيب، ثم خياطتها في حاوية واحدة. تُسمّى هذه الخطوة الأخيرة إعادة التغليف — لا يُعاد ترميز الفيديو والصوت، بل يُعاد كتابتهما فقط في ملف MP4 واحد بفهرس صحيح كي تتاح إمكانية التنقل ضمن النتيجة.
أمران يجعلان هذا أصعب مما يبدو. غالبًا ما تكون عناوين المقاطع نسبية وتتغير حسب الجلسة، فقائمة جُلِبت قبل ساعة قد تكون ميتة. وغالبًا ما تُشفَّر التدفقات بمفتاح مُشار إليه في القائمة، يُسلَّم بشكل منفصل ويتغير أثناء التشغيل.
نقل واحد إلى جهاز
فقط لبثوث لك الحق في الاحتفاظ بها — تسجيلك الخاص، أو اشتراك IPTV الخاص بك، أو مذيع يقدّم تنزيلًا. ما يلي هو كيفية عمل الآلية، لا إذن بتوجيهها إلى أي مكان.
- دع محرك تنزيل يتولى المقاطع
جلب ألف ملف وإعادة تغليفها هو بالضبط ما يفعله محمّل FoxDL مع مصدر HLS: يتصفح القائمة، ويسحب المقاطع بالتوازي، ويكتب ملف MP4 واحدًا يمكن التنقل فيه كملف عادي. ما يصل ملف، لا مجلد من القطع.
- خذ الملف المباشر حين يوجد
تقدّم مواقع كثيرة كلًا من HLS وملف MP4 تقدّمي عادي. MP4 طلب واحد، وملف واحد، ولا إعادة بناء — الخيار الأفضل دائمًا حين يكون متاحًا.
- اقبل أن بعضها لا يمكن الاحتفاظ به
البثوث المحمية بإدارة الحقوق الرقمية — FairPlay، وWidevine — مشفّرة من طرف إلى طرف وغير قابلة للتنزيل بالتصميم. لا تغيّر أي أداة ذلك، وأي أداة تدّعي ذلك تكذب بشأن شيء ما.
أين تسوء تنزيلات HLS
مقاطع مُلحَقة من دون إعادة تغليف تنتج ملفًا قابلًا للتشغيل من دون فهرس. يعمل من البداية ولا يقفز إلى أي مكان. إعادة التغليف تكتب الفهرس الذي يصلح ذلك.
لا نهاية لقائمة بث مباشر — تستمر في النمو. تنزيل واحدة تسجيل، ويتوقف حين توقفه أنت، لا حين ينتهي الملف.
عناوين قوائم التشغيل عادة موقَّعة ومحدودة زمنيًا. ملف .m3u8 محفوظ هذا الصباح كثيرًا ما يشير إلى لا شيء بحلول بعد الظهر.
أسئلة حول هذه الصيغة
مصدر هذه الحقائق
- RFC 8216 — HTTP Live Streaming IETF
- HTTP Live Streaming Apple Developer