إذا أرسل لك مزود خدمة IPTV الخاص بك بيانات تسجيل دخول Xtream (الخادم، اسم المستخدم، كلمة المرور) ولكن المشغل الذي تحاول استخدامه لا يقبل سوى رابط M3U واحد — أو العكس — فأنت لست عالقاً. كلاهما نفس الشيء. في الأساس، تسجيل دخول Xtream هو مجرد طريقة منظمة لكتابة كل ما يحتويه رابط M3U بالفعل.
يشرح هذا الدليل كيفية التحويل في كلا الاتجاهين، وما يجب الانتباه إليه، وكيفية القيام بذلك دون كتابة بيانات الاعتماد الخاصة بك في أي مكان يمكن لشخص غريب قراءته. يقوم محول Xtream ↔ M3U URL الموجود على هذا الموقع بالتحويل بالكامل داخل متصفحك — لا توجد نقطة نهاية خادم (server endpoint) خلف تلك الصفحة.
رابط M3U هو قالب ثابت؛ تسجيل دخول Xtream هو مجرد بيانات الاعتماد الثلاثة المدرجة فيه.
لماذا تظهر الحاجة للتحويل أصلاً
نفس المزود يدعم بشكل شبه دائم كلا التنسيقين، لكن المشغل الذي قمت بتثبيته سيطلب أحدهما فقط. تختلف التطبيقات حول بعض النقاط المحددة:
- المشغلات القديمة التي تدعم M3U فقط (VLC، تطبيقات التلفزيون الذكي الأساسية، أجهزة IPTV المخصصة) تقبل رابطاً واحداً. فهي لا تعرف شيئاً عن نقاط نهاية API الخاصة بـ Xtream؛ بل تقوم بتنزيل ملف قائمة تشغيل مسطح وتشغل البثوث منه.
- المشغلات المتوافقة مع Xtream (معظم تطبيقات IPTV الحديثة، بما في ذلك Klipa) تفضل بيانات الاعتماد الثلاثية. حيث تستخدمها لجلب قائمة القنوات المباشرة، مكتبة VOD، كتالوج المسلسلات، ودليل البرامج (EPG) كمستندات منفصلة — تصنيف أفضل، وتحديث ديناميكي، وأقسام حسب الطلب لا يمكن لتصدير M3U تمثيلها.
إذا أعطاك مزودك أحدهما وكان المشغل يطلب الآخر، فإن التحويل عملية تستغرق 30 ثانية. لست بحاجة إلى أن تطلب من المزود "التنسيق الآخر" — فهو يعطيك كليهما بالفعل، فقط في شكل واحد.
صيغة التحويل من Xtream إلى M3U
يستخدم كل مزود Xtream نفس قالب الرابط. بمجرد أن تعرفه، يمكنك بناء رابط M3U من بيانات الاعتماد يدوياً:
http://<server>:<port>/get.php?username=<USERNAME>&password=<PASSWORD>&type=m3u_plus&output=mpegts
ثلاثة أمثلة ملموسة، بناءً على بيانات الاعتماد server: http://server.example:8080 و username: ABC و password: XYZ:
M3U: http://server.example:8080/get.php?username=ABC&password=XYZ&type=m3u_plus&output=mpegts
EPG: http://server.example:8080/xmltv.php?username=ABC&password=XYZ
player_api: http://server.example:8080/player_api.php?username=ABC&password=XYZ
الأجزاء هي:
get.phpهو نقطة نهاية قائمة التشغيل. يُسمى دائماًget.php— لا توجد اصطلاحات تسمية خاصة بالمزود هنا.type=m3u_plusيطلب تنسيق M3U الموسع الذي يتضمن شعارات القنوات وعناوين المجموعات. يعملtype=m3uالعادي أيضاً ولكنه ينتج قائمة تشغيل أقل تفصيلاً؛ أنت غالباً ما تريدm3u_plus.output=mpegtsيطلب البثوث التي تعمل بتنسيق MPEG-TS الخام. الخيار الشائع الآخر هوoutput=hls، والذي ينتج روابط HLS (.m3u8) — مفيد للمتصفحات وبعض أجهزة Apple، ولكنه أقل دعماً على أجهزة التلفزيون. إذا كان مشغلك يصعب إرضاؤه، فإن تبديلoutputهو أول شيء يجب تجربته.xmltv.phpهو نقطة نهاية دليل البرامج (EPG). نفس بيانات الاعتماد، مستند منفصل. معظم المشغلات تأخذ هذا الرابط في حقل مختلف ("EPG URL" أو "XMLTV URL").player_api.phpهو واجهة برمجة تطبيقات JSON. المشغلات التي "تتحدث Xtream بشكل أصلي" تستخدم هذا للحصول على أشجار البث المباشر/VOD/المسلسلات وشعارات القنوات.
العكس: استخراج بيانات الاعتماد من رابط M3U
بالنظر إلى رابط M3U يبدو مثل الصيغة أعلاه، يمكنك قراءة حقول Xtream الثلاثة منه مباشرة:
http://server.example:8080/get.php?username=ABC&password=XYZ&type=m3u_plus
└────┘ └────┘
username password
- الخادم (Server) هو كل شيء قبل الشرطة المائلة الأولى بعد المضيف:
http://server.example:8080. احذف/get.phpوكل ما بعده. - اسم المستخدم (Username) هو قيمة معامل الاستعلام
username. - كلمة المرور (Password) هي قيمة معامل الاستعلام
password.
إذا كان أي من معاملات الاستعلام مفقوداً، فإن الرابط ليس بالتنسيق القياسي لـ Xtream. يرسل بعض المزودين روابط M3U عادية لا تحتوي على بيانات اعتماد على الإطلاق — عادة ما تكون قوائم تشغيل ثابتة أو تعتمد على الرموز (token-based) حيث يكون الرابط نفسه هو السر. لا يوجد شيء لاستخراجه من هذه الروابط؛ ببساطة تستخدم الرابط كما هو في أي مشغل يدعم M3U.
مشاكل شائعة
توجد بعض التفاصيل التي يقع فيها الأشخاص بانتظام.
ترميز الرابط (URL encoding) للأحرف الخاصة
إذا كانت كلمة مرورك تحتوي على أحرف مثل &, =, +, #, %, أو /، فيجب ترميزها داخل الرابط. حرف & الحرفي في منتصف كلمة المرور يكسر تحليل الرابط — سيتعامل المشغل مع كل ما يليه على أنه معامل استعلام منفصل.
تقوم معظم لوحات تحكم المزودين بذلك نيابة عنك. إذا كنت تقوم ببناء الرابط يدوياً وكانت كلمة مرورك تحتوي على أي شيء غريب، فمرر كلمة المرور عبر أداة "URL encode" أولاً. أو تجاوز ذلك تماماً ودع المحول الموجود في المتصفح يقوم بذلك نيابة عنك.
المنفذ (The port)
نادراً ما يعمل مزودو Xtream على المنافذ الافتراضية 80 أو 443. المنافذ الشائعة هي 8080، 25461، 8000، أو بعض المنافذ العالية العشوائية. المنفذ جزء من رابط الخادم، وليس اختيارياً. إذا رأيت http://server.example/get.php?… بدون منفذ، فإما أنه يستخدم المنفذ 80 (وهذا نادر) أو أن المزود لديه بروكسي عكسي أمامه (وهذا نادر أيضاً). في معظم الأحيان يكون المنفذ مفقوداً ببساطة لأن شخصاً ما نسخ الرابط يدوياً وأسقطه.
http مقابل https
معظم مزودي Xtream يخدمون عبر HTTP، وليس HTTPS. غالباً ما يرجع نموذج https:// خطأ في الشهادة أو 404 لأن الخادم لا يربط TLS على الإطلاق. إذا تم إعطاؤك رابط خادم يحتوي على https:// ولم يعمل، جرب http:// العادي. المقابل لذلك هو أن كلمة مرورك تنتقل الآن غير مشفرة؛ وهذا للأسف هو المعيار لمزودي IPTV.
مسار مخصص في رابط M3U
يقوم بعض المزودين بتخصيص التوجيه الخاص بهم — فبدلاً من /get.php، سترى /playlist.m3u، /m3u.php، أو حتى /index.php?type=m3u. لا تزال بيانات الاعتماد داخل تلك الروابط تتطابق مع ما تتوقعه واجهة برمجة تطبيقات Xtream، لذلك سيستخرجها المحول بشكل صحيح، ولكن رابط قائمة التشغيل الذي يستخدمه المزود غير قياسي. إذا قمت ببناء رابط M3U الخاص بك باستخدام المسار القياسي /get.php، فقد يرفضه المزود. في هذه الحالات، احتفظ بالرابط الأصلي الذي أعطاك إياه المزود — لا تحاول "إصلاحه".
المسافات البيضاء الزائدة في بيانات الاعتماد
يؤدي النسخ من بريد إلكتروني أو مشاركة في منتدى بانتظام إلى سحب مسافة زائدة غير مرئية أو سطر جديد أو مسافة غير فاصلة إلى اسم المستخدم. تتعامل واجهة برمجة تطبيقات Xtream مع ABC و ABC كأسماء مستخدمين مختلفة؛ ستحصل على استجابة فشل المصادقة التي تبدو مطابقة لكلمة مرور خاطئة. يقوم المحول باقتطاع المسافات البيضاء من اسم المستخدم تلقائياً ويحذرك عندما يضطر لذلك. إذا كنت تقوم ببناء الرابط يدوياً، فالصق كل حقل في محرر نصوص عادي أولاً وتحقق بصرياً من نهايته.
إجراء التحويل بأمان
تقدم العديد من مواقع الويب هذا التحويل عبر الإنترنت. معظمها لا بأس به؛ وبعضها مشبوه. المخاطرة واضحة — بيانات الاعتماد التي يتم لصقها في نموذج شخص غريب قد يتم تسجيلها أو جمعها أو إعادة استخدامها. حتى المشغل الصادق الذي ليس لديه نية خبيثة لديه سجلات وصول (access logs).
تم بناء المحول الموجود على هذا الموقع بحيث لا يمكن أن يكون لديه سجلات وصول حول بيانات الاعتماد الخاصة بك، لأنه لا توجد نقطة نهاية خادم خلفه. يتم تشغيل التحويل بالكامل في متصفحك كـ JavaScript. تعيش بيانات الاعتماد في عناصر إدخال DOM حتى يتم إغلاق الصفحة؛ فهي ليست في شريط الرابط، وليست في localStorage، ولا يتم إرسالها إلى أي مكان. إذا فتحت علامة تبويب الشبكة في المتصفح أثناء التحويل، فسترى بالضبط صفر طلبات صادرة تحمل بيانات الاعتماد.
هذا هو المعيار الذي يجب أن تتوقعه من أي أداة تطلب بيانات اعتماد IPTV. إذا كانت واجهة مستخدم المحول ترسل طلباً عبر الشبكة عند النقر فوق "تحويل"، فقد قامت، بحكم التعريف، بنقل بيانات الاعتماد الخاصة بك إلى مكان ما.
بعد التحويل: تحقق قبل الاستيراد
الرابط الذي تم بناؤه بنجاح لا يعني رابطاً يعمل. كلا اتجاهي التحويل عبارة عن تحويلات سلسلة حتمية — إنها صحيحة كتحويلات، لكنها لا تخبرك ما إذا كانت بيانات الاعتماد صالحة، أو ما إذا كان الاشتراك سارياً، أو ما إذا كان الخادم قابلاً للوصول.
فحصان سريعان قبل الالتزام بالاستيراد:
- بالنسبة لروابط M3U، الصق النتيجة في أداة اختبار قائمة تشغيل M3U. ستقوم بجلب قائمة التشغيل، وتحليلها، واختبار أول 100 بث. أي شيء أخضر يعني أن الرابط جيد؛ أي شيء أحمر يخبرك بنمط الفشل المحدد (استجابة HTML، 404، بثوث ميتة).
- بالنسبة لبيانات اعتماد Xtream، الصق البيانات الثلاثية في مدقق بيانات اعتماد Xtream. سيستدعي واجهة برمجة التطبيقات من جانب الخادم، ويعيد حالة المصادقة، والانتهاء، وحدود الاتصال، وعدد القنوات. يميز بين "كلمة المرور الخاطئة" و "الاشتراك المنتهي" و "تعذر الوصول إلى الخادم".
يؤدي تشغيل أحد هذين الفحصين قبل أن تكلف نفسك عناء تثبيت مشغل إلى توفير حوالي عشرين دقيقة من استكشاف الأخطاء وإصلاحها عندما يكون هناك خطأ ما في بيانات الاعتماد نفسها.
عندما لا يحتوي رابط M3U على بيانات اعتماد
جزء صغير من روابط M3U التي ستواجهها ليست تابعة لـ Xtream على الإطلاق. إنها قوائم تشغيل مسطحة مستضافة على خادم ثابت، أو روابط تعتمد على الرموز (token-bearer) حيث يتم دمج السر في المسار بدلاً من سلسلة الاستعلام:
https://server.example/playlists/9c1f4a8b3e/stream.m3u8
لا يوجد شيء لاستخراجه — الرابط نفسه هو بيانات الاعتماد. تعمل هذه في المشغلات التي تدعم M3U فقط كما هي تماماً. ليس لها تمثيل معادل لـ Xtream لأنها لم يتم إنشاؤها بواسطة لوحة Xtream Codes؛ بل تأتي من حزمة IPTV مختلفة (وأقدم). إذا أعطاك مزودك هذا فقط وكان مشغلك يصر على بيانات اعتماد Xtream، فليس لديهم تسجيل دخول Xtream ليعطوك إياه. اسأل المزود، أو اختر مشغلاً يقبل روابط M3U.
كيف يبدو هذا في Klipa
يقبل Klipa كلا التنسيقين في نفس المكتبة، جنباً إلى جنب. يمكنك إضافة رابط M3U وتسجيل دخول Xtream من نفس المزود كمصادر منفصلة؛ يستخدم التطبيق أيهما يعمل بشكل صحيح. إذا بدأ تصدير M3U في إرجاع HTML في يوم من الأيام، فإن استدعاء واجهة برمجة تطبيقات Xtream يحافظ على قائمة القنوات الخاصة بك حية حتى التحديث التالي، والعكس صحيح.
هذا هو الجواب البسيط لـ "أي تنسيق يجب أن أستخدم" — كلاهما. إذا كنت تختار أحدهما فقط، فإن المقارنة بين Xtream و M3U تغطي متى يجب أن تبدأ بأي منهما.