M3U أو واجهة Xtream API: أيّهما ينبغي أن تستخدم فعلًا

المزوّد نفسه سيمنحك الاثنين معًا، وهما ليسا صيغتين للبيانات ذاتها. أحدهما صورة فوتوغرافية والآخر محادثة.

أرسل إليك مزوّدك بريدًا إلكترونيًا فيه اسم مستخدم وكلمة مرور ومضيف. البريد نفسه، أو اللوحة نفسها، سيمنحك أيضًا عنوان URL طويلًا ينزّل ملف قائمة تشغيل. هذان ليسا 2 صيغتين للمعلومات ذاتها. ليسا البيانات نفسها مرتين، واختيار الخطأ منهما يكلّفك ميزات ستفترض لاحقًا أن التطبيق لا يملكها.

ما هو كل منهما فعلًا

تصدير M3U ملف نصي: أسماء قنوات وعناوين URL، يُولَّد لحظة طلبك له، مع بعض السمات المرفقة. إنه صورة فوتوغرافية لخطّك.

واجهة Xtream API نقطة نهاية HTTP واحدة تجيب عن أسئلة. إنها محادثة مع خطّك، والإجابات تتغير كلما تغيّر الخط.

عمليًا، الواجهة سكربت واحد يأخذ معامل action بدل مجموعة موارد:

player_api.php?username=U&password=P                        handshake
player_api.php?username=U&password=P&action=get_live_categories
player_api.php?username=U&password=P&action=get_live_streams
player_api.php?username=U&password=P&action=get_live_streams&category_id=12
player_api.php?username=U&password=P&action=get_vod_info&vod_id=884
player_api.php?username=U&password=P&action=get_series_info&series_id=41
player_api.php?username=U&password=P&action=get_short_epg&stream_id=1201

هذه ليست واجهة REST ولا تتظاهر بأنها كذلك. إنها نقطة نهاية لوحة، ولشكلها عواقب سنعود إليها.

التصدير يعيش على البوابة نفسها، على مسار مختلف. فالتصدير وجلسة الواجهة هما 2 وجهين لـ 1 حساب واحد لا 2 منتجين، ولهذا يكون سؤال «أيّهما أستخدم» سؤالًا حقيقيًا لا مسألة تتعلق بما يدعمه مزوّدك.

الأشياء الثلاثة التي لا يعبّر عنها سوى الواجهة

الفئات كبيانات. يحمل التصدير سمة group-title لكل مُدخَل، وهي سلسلة نصية. أما الواجهة فلديها كائنات فئات لها معرّفات، والبثوث تشير إليها. في قائمة تشغيل صغيرة يبقى الفرق نظريًا. وفي قائمة حقيقية ليس كذلك: مصدر إنتاجي في عيّنتنا حمل نحو 77,842 عنوانًا عبر قرابة 444 فئة، تتراوح بين 8 مُدخَلات و3,655. قائمة مسطّحة من 77,842 عنصرًا مع سلسلة نصية مكررة مرفقة بها بنية بيانات مختلفة عن الفهرس، وتجربة الاستعراض تتبع أيّهما لديك.

حصة الاتصالات. تبلّغ الواجهة عن عدد الاتصالات المتزامنة التي يسمح بها خطّك. ولا يستطيع التصدير قول ذلك، لأن قائمة عناوين URL لا مكان فيها لوضعه.

هذا ليس رقمًا زخرفيًا. فالعرض المتعدد يقرأه ويحسب الميزانية قبل أن يعيّن أي بلاطة، وبذلك يُرفض طلب شبكة من 9 بلاطات على خط بـ 2 اتصالين في المنتقي بدل أن يظهر على الشبكة 7 أخطاء تشغيل متطابقة. مستحيل بلا الواجهة. الحد الأقصى للاتصالات يغطي طريقة الحساب.

الأرشيف. تستطيع البوابة الإبلاغ عن القنوات التي تحتفظ بنافذة قابلة للإرجاع وعن عمق تلك النافذة. هذا هو الأساس الكامل للمشاهدة اللاحقة، ومرة أخرى لا مكان في سطر M3U للتعبير عنه.

وطريقة استخدام العميل له مهمة: عناوين المشاهدة اللاحقة تُبنى من قناة ووقت بداية ومدة بدل قراءتها لكل برنامج من أي مكان. تخبرنا البوابة بوجود النافذة ونبني العناوين بأنفسنا. ما هما المشاهدة اللاحقة والإزاحة الزمنية يغطي الآلية.

ما الذي ما تزال قائمة التشغيل تؤديه أفضل

ثلاثة أشياء، وهي حقيقية لا جوائز ترضية.

تعمل حين لا توجد بوابة. كثير من المصادر ليست لوحات Xtream أصلًا. قائمة يحتفظ بها مجتمع لبثوث عامة، أو ملف خاص بجهة بث محلية، أو قائمة تشغيل كتبتها بنفسك: لا واجهة لأي منها، وM3U هي الصيغة العالمية لها.

يمكن فحصها. افتحها في محرّر نصوص فترى بالضبط ما لديك. حين يختلّ شيء، تكون القدرة على قراءة المُدخَل ذات قيمة كبيرة، أما استجابة واجهة لا تراها فأصعب في التفكير فيها.

تبقى. ملف نزّلته يبقى يعمل بينما اللوحة معطّلة للصيانة، على الأقل حتى تنتهي صلاحية العناوين داخله.

هناك نقطة بيانات هنا يسهل الإفراط في قراءتها. في مجموعة مقيسة واحدة من 308 مُدخَلات مباشرة، انتهى 303 منها بـ .m3u8، و5 بلا امتداد، ولم ينتهِ أي منها بـ .ts. تلك المجموعة قوائم تشغيل منسّقة على طريقة الأدلة لا تصديرات بوابات، فهي تقول شيئًا عن طريقة كتابة قوائم التشغيل العامة ولا شيء عما يقدّمه مزوّدك. ولا نملك أي مجموعة مقيسة من عناوين البث المباشر للبوابات.

الشيء الذي لا يخبرك به أي منهما

لا التصدير ولا الواجهة يخبر العميل بالنقل الذي تستخدمه القناة فعلًا. سجلّ القناة المباشرة في فهرسنا لا يحمل حقل حاوية ولا حقل نقل ولا حقل MIME. لا مكان تعيش فيه تلك المعلومة، لأن أيًّا من المصدرين لا يوفّرها.

فلا يمكن استنتاج النقل إلا من سلسلة عنوان URL، والعميل يطلب .ts للقنوات المباشرة بلا تفريع ولا إعداد. والبوابة حرّة في إعادة توجيه ذلك إلى بيان HLS. وبعضها يفعل.

هناك عنصر تحكم تنسيق البث على مصدر Xtream، وهو حاليًا لا يفعل شيئًا. يطبّع قيمته ويحفظها ويعيد تحميلها، وحين ذهبت أبحث عن بانِي عناوين URL أو شيفرة التشغيل التي تقرأه، لم أجد شيئًا، لأنه لا يوجد. إنه على القائمة، لا مفتاحًا تعجز عن العثور عليه. MPEG-TS أو HLS يغطي ما يفعله النقلان بشكل مختلف فعلًا ولماذا الفرق أقل أهمية مما يبدو.

ما يحمله التصدير فعلًا، قياسًا

الحجة لصالح التصدير أن السمات على كل سطر تحمل معظم ما يحتاجه الفهرس. وهذا صحيح حين تكون حاضرة، وتواتر حضورها متفاوت.

قياسًا على 2,203 مُدخَلات في مجموعتنا:

                   entries   tvg-id          group-title   tvg-chno
playlist_01.m3u        308   308  (100%)     283           0
playlist_02.m3u8     1,895   1,392 (73.5%)   1,895         1,355

الملفان قائمتا تشغيل منسّقتان على طريقة الأدلة لا تصديرا لوحة، فاقرأ هذا بوصفه عرضًا للتفاوت لا تنبؤًا بشأن مزوّدك.

ثلاثة أشياء في ذلك الجدول تلفت النظر.

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

أرقام القنوات غائبة كليًا عن ملف وحاضرة على 71 بالمئة من الآخر. إن كنت تهتم بظهور قنواتك بترتيب البث، فهذا فرق حقيقي بين المصادر، ويستحق التحقق قبل أن تلتزم بأحدها. أرقام القنوات في قائمة التشغيل يغطي ما تفعله السمة.

و20 مُدخَلًا في الملف الثاني تحمل سمة معرّف حاضرة وفارغة. المعرّف الفارغ ليس معرّفًا، ومعاملته كمعرّف ستربط تلك القنوات الـ20 بعضها ببعض. وهذا لا بد من معالجته صراحةً بدل أن يخرج من الشيفرة بالمصادفة.

المسلسلات والأفلام: حيث يتباعد الاثنان أكثر ما يتباعدان

القنوات المباشرة هي حيث يقترب التصدير أكثر ما يقترب من الكفاية، لأن القناة المباشرة هي فعلًا اسم وعنوان URL. أما المحتوى حسب الطلب فهو حيث تنفتح الفجوة.

الفيلم في التصدير سطر واحد: عنوان وعنوان URL. والفيلم عبر الواجهة كائن له نداء تفاصيل خاص به، وهناك تعيش القصة وطاقم التمثيل والسنة والتقييم وامتداد الحاوية.

وهذا الأخير ليس رفاهية. تبلّغ الواجهة عن امتداد حاوية الفيلم، ويبني العميل عنوان URL منه:

live      portal/live/username/password/{stream_id}.ts
film      portal/movie/username/password/{vod_id}.{container_ext}

البث المباشر .ts ثابتة. والفيلم هو ما تقوله اللوحة، لأن الأفلام ملفات مخزّنة بحاويات حقيقية، والعميل الذي يخمّن سيخمّن خطأ.

المسلسلات أبعد على المحور نفسه. يسطّح التصدير المسلسل إلى قائمة عناوين حلقات بأسماء تشفّر الموسم والحلقة إن كنت محظوظًا. أما الواجهة فلديها كائن مسلسل، ونداء تفاصيل لكل مسلسل، وحلقات مجمّعة حسب الموسم. ومكتبة مسلسلات تتصرف كمكتبة مسلسلات لا كمجلد ملفات تحتاج إلى أن تأتي تلك البنية من مكان ما.

ضمّ المزوّدين، وأين يجري ذلك العمل

حين يصير لديك أكثر من مصدر واحد، تكون الأمنية البديهية قائمة قنوات واحدة لا قائمتين، بحيث تظهر القناة ذاتها من مزوّدين مرة واحدة وتتحوّل احتياطيًا بينهما.

هذا مدعوم، والقاعدة وراءه تشرح خصائص الأداء. يخزّن الخادم تعريف المصدر المجمّع ولا شيء غيره: الحلّ والتجسيد يجريان دائمًا على الجهاز.

فالدمج والمطابقة والفهرسة كلها تجري على الجهاز الذي تشاهد عليه. وهذا يبقي الخدمة غير عالمة بما في قائمة تشغيلك، وهي القاعدة نفسها التي تمنعها من تحليل ملف M3U الخاص بك أصلًا. والثمن أن العمل يُنجز مرة لكل جهاز لا مرة لكل حساب، وهذا جزء من سبب كون التشغيل الأول بعد إضافة مصدر كبير أبطأ من كل تشغيل بعده.

والتحويل الاحتياطي للتشغيل عبر المصادر مبني فوق ذلك. فالقناة الموجودة في مصدرين تستطيع الانتقال إلى الآخر حين يفشل الأول.

نوع ثالث من البوابات

ثنائية M3U وواجهة اللوحة ليست العالم كله. العائلة الثالثة هي برمجيات Stalker وMinistra الوسيطة، المنظومة وراء أجهزة MAG، وهي تصادق على جهاز لا على حساب. بيانات الاعتماد هي عنوان MAC لا اسم مستخدم وكلمة مرور، فتصوّر المزوّد لعدد أجهزتك مرتبط بتلك الهوية لا بتسجيل دخول.

إن أعطاك مزوّدك عنوان URL لبوابة مع عنوان MAC، فهذا ما لديك. وهو ليس أيًّا من الخيارين المقارنين هنا.

أيّهما تختار

إن أعطاك مزوّدك مضيفًا واسم مستخدم وكلمة مرور، فاستخدمها. أضف مصدر Xtream. تحصل على الفهرس بفئات حقيقية، وعدد الاتصالات الذي يجعل العرض المتعدد صادقًا، والمشاهدة اللاحقة حيث يوفّرها المزوّد. أما التصدير فلا يمنحك شيئًا من ذلك ولا أي ميزة تعويضية.

إن كانت لديك قائمة تشغيل ولا شيء غيرها، فاستخدم قائمة التشغيل. هذا ما وُجدت له، ومعظم التطبيق يعمل بالطريقة نفسها.

إن كان لديك الاثنان وكنت تتتبّع خللًا، فالتصدير أداة تشخيص مفيدة حتى حين تكون الواجهة هي ما تعمل عليه. إنه الأثر الوحيد الذي تستطيع قراءته.

الشيء الوحيد الذي لا ينبغي فعله هو إضافة الاثنين كمصدرين منفصلين وتوقّع أن يستنتج التطبيق أنهما الخط نفسه. إنهما 2 مصدران، كل منهما يستهلك اتصالات، وحساب الاتصالات سيكون صحيحًا بشأن وضع لم تقصده.

لإيصال أي منهما إلى جهاز ألعاب، إضافة قائمة تشغيل M3U على Xbox وتسجيل الدخول بـ Xtream Codes على Xbox يغطيان القرار نفسه من جهة الإعداد. ولمعرفة معنى السمات داخل التصدير، M3U+ مقابل M3U المجردة.

ما قياس هذه المادة22 ادعاءات، كل منها مزود بالأدلة التي تقف خلفه
المطالبةالأدلةعد
واجهة اللوحة نقطة نهاية واحدة تأخذ معامل action، لا مجموعة موارد. خمسة عشر إجراءً تغطي الفهرس كله: الفئات والبثوث للقنوات المباشرة والفيديو والمسلسلات، إضافة إلى معلومات كل عنصر، ودليل مختصر، وجدول بيانات.n = 1531‏/08‏/2026
عناوين البث يبنيها العميل من قالب بدل قراءتها من استجابة الواجهة: البث المباشر يستخدم لاحقة .ts، والفيديو حسب الطلب يستخدم امتداد حاوية تبلّغ عنه الواجهة.n = 231‏/08‏/2026
تصدير M3U تقدّمه البوابة نفسها على مسار مختلف، فالتصدير وجلسة الواجهة وجهان لحساب واحد لا منتجان.n = 131‏/08‏/2026
عنصر التحكم تنسيق البث المتاح على مصدر Xtream يطبّع قيمته ويحفظها ويعيد تحميلها، ولا يقرأه أي بانٍ لعناوين URL ولا أي شيفرة تشغيل.n = 123‏/08‏/2026
سجلّ القناة المباشرة لا يحمل حقل حاوية ولا نقل ولا MIME، فلا يمكن استنتاج النقل إلا من عنوان URL بدل قراءته من الفهرس.n = 123‏/08‏/2026
حصة الاتصالات التي تبلّغ عنها البوابة تُستخدم لا تُعرض فقط: العرض المتعدد يحسبها قبل تعيين أي بلاطة ويتوقف عن عرض قنوات من مصدر استُنفدت حصته.n = 115‏/08‏/2026
عناوين المشاهدة اللاحقة يبنيها العميل من قناة ووقت بداية ومدة، بدل قراءتها لكل برنامج من الدليل.n = 123‏/08‏/2026
مصدر إنتاجي في عيّنتنا حمل نحو 77,842 عنوانًا متمايزًا عبر قرابة 444 فئة من فئات المزوّد، وتراوحت الفئات المنفردة بين 8 و3,655 مُدخَلًا.n = 131‏/08‏/2026
قياسًا على 2,203 مُدخَلات في مجموعة قوائم التشغيل الخاصة بنا: كانت تغطية المعرّفات 100 بالمئة في ملف و73.5 بالمئة في الآخر، وغابت أرقام القنوات كليًا عن ملف وحضرت على 1,355 مُدخَلًا في الآخر، وكانت عناوين المجموعات على كل مُدخَل في الملفين.n = 220331‏/08‏/2026
ضمّ عدة مزوّدين في قائمة قنوات واحدة عملية تجري على جانب العميل بحكم التصميم: الخادم يخزّن تعريف المصدر المجمّع ولا شيء غيره، والحلّ والتجسيد يجريان دائمًا على الجهاز.n = 131‏/08‏/2026
عائلة بوابات ثالثة مدعومة إلى جانب قوائم التشغيل وواجهة اللوحة: برمجيات Stalker وMinistra الوسيطة، التي تصادق على جهاز لا على حساب.n = 131‏/08‏/2026
ثلاثة عشر نوعًا من حالة الحساب تتزامن بين الأجهزة، وقائمة التشغيل ليست واحدًا منها: ما ينتقل هو تعريف المصدر وقراراتك بشأنه.n = 1301‏/09‏/2026
تفضيلات كل مصدر عائلة متزامنة مستقلة بذاتها، منفصلة عن المصدر نفسه، وهكذا يصل إعداد ضُبط في مكان ما إلى جهاز لا يوفّر له أي محرّر.n = 101‏/09‏/2026
توجد عائلتان من التجاوزات والفرق بينهما مهم: تجاوزات العرض مقيّدة بنطاق المصدر، أما تصحيحات الدليل فعلى مستوى الملف الشخصي ومستقلة عن المصدر.n = 201‏/09‏/2026
الحساب يحمل 10 قوائم تشغيل مرفوعة على الأكثر، ويُتحقق من ذلك عند بدء الرفع لا عند اكتماله.n = 101‏/09‏/2026
أيًّا كان المسار الذي تختاره، الخادم لا يحلّله: استيراد الملف يُخزَّن مشفّرًا، واستيراد عنوان URL يسجّل بيانات وصفية، والتحليل يجري على الجهاز الذي سيشغّله.n = 101‏/09‏/2026
العنوان الملصوق يُقبل حتى 2048 محرفًا، وهو ما يغطي براحة العناوين الحاملة للرموز التي تُصدرها البوابات.n = 101‏/09‏/2026
حصة الاتصالات التي تبلّغ عنها الواجهة يُعمل بها لا تُعرض فقط: التخطيط يحسبها قبل تعيين أي بلاطة ويتوقف عن عرض قنوات من مصدر استُنفدت حصته.n = 115‏/08‏/2026
التحويل الاحتياطي بين المصادر يكلّف اتصالًا إضافيًا واحدًا أثناء التداخل، فيرفض المخطِّط كل مرة لا يكون فيها ذلك الاتصال فائضًا على نحو يمكن إثباته ويعود إلى إعادة تشغيل عادية.n = 101‏/09‏/2026
بيانات الدليل تُضبط منفصلة عن المصدر في الحالتين، إذ يقبل الوضع العام حتى 15 عنوان URL ويحذّر وضع البلدان فوق 5 بلدان.n = 201‏/09‏/2026
ملفات الدليل تنزّلها أجهزتك لا خوادمنا، وهذا مذكور في شاشة الإعدادات بدل تركه تفصيلًا تنفيذيًا.n = 101‏/09‏/2026
في مجموعة قوائم تشغيل مقيسة واحدة، انتهى 303 من 308 مسارات مباشرة بـ .m3u8، و5 بلا امتداد، ولم ينتهِ أي منها بـ .ts. تلك المجموعة ملفات منسّقة على طريقة الأدلة لا تصديرات بوابات، ولا تقول شيئًا عما تقدّمه البوابة.n = 30823‏/08‏/2026