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

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

خطّان زمنيّان: صفّ ساعة الحائط يُحدّد BBC News عند 18:00؛ وصفّ EPG يُظهر البرنامج نفسه عند 16:00، ثم تتحرّك إزاحة +2 ساعة لتتوافق مع ساعة الحائط.

البرنامج نفسه، ساعتان: يقع EPG ساعتين خلف ساعة الحائط حتى يُعيد المُحوّل محاذاته.

لماذا تحدث أخطاء المنطقة الزمنية في XMLTV

‏XMLTV صيغة عمرها 25 سنة. كل برنامج يحمل سمة start وسمة stop تبدوان كالتالي:

<programme start="20260507180000 +0000" stop="20260507190000 +0000" channel="bbc1">

الأرقام الأربعة عشر هي وقت الحائط؛ والـ +0000 في النهاية هي إزاحة المنطقة الزمنية لذلك الوقت. فـ 20260507180000 +0000 تعني «18:00 UTC يوم 7 مايو 2026». يقرأ المشغّل الاثنين، ويُحوّل إلى منطقتك المحلّية، ويعرض «20:00» إن كنت في CET.

هذا يعمل إذا كان ملف XMLTV متّسقًا داخليًّا. لكن XMLTV يُولَّد عبر سلسلة طويلة من البرامج:

  1. نظام جداول جهة البثّ الأصلية، بمنطقتها المحلّية.
  2. مُجمِّع إقليمي ربّما يُحوِّل إلى منطقة إقليمية.
  3. كاشط مزوّد IPTV، الذي قد يُقرِّب الأرقام مرّة أخرى.
  4. مُصدِّر XMLTV لدى مزوّدك، الذي يُلصق +0000 في النهاية سواء أكانت الأرقام بالـ UTC أم لا.

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

صنف ثانٍ من الخلل: حين يُسقط ملف XMLTV الإزاحة كلّيًّا:

<programme start="20260507180000" stop="20260507190000" channel="bbc1">

دون الإزاحة، على المشغّل أن يُخمِّن. معظم المشغّلات تفترض «الأرقام بتوقيتك المحلّي»؛ وبعضها يفترض UTC. إن كان المزوّد قصد UTC وافترض مشغّلك المحلّي، فكل برنامج سيكون مُزاحًا بمقدار إزاحتك المحلّية.

في الحالتين، البيانات الأساسية صحيحة — تحتاج الأرقام فقط إلى جمع أو طرح لتقع في مكانها الصحيح.

كيف تعرف الإزاحة التي تحتاجها

الحلّ هو «أضِف N ساعة إلى كل طابع زمني في ملف XMLTV». لاختيار N:

الخطوة 1: اختر قناة تعرف ما يُعرض عليها الآن

افتح المشغّل. ابحث عن قناة تعرض محتوى مباشرًا تعرفه فعلًا — نشرة محلّية عند 18:00، نشرة BBC في رأس الساعة، الذروة على قناة كبرى. الهدف أن يكون لديك مرساة معروفة: «هذه القناة تعرض X الآن، في هذا الوقت تحديدًا على ساعتي».

الخطوة 2: انظر ماذا يقول EPG

انظر إلى إدخال «يُعرض الآن» للقناة نفسها في مشغّلك. سجّل وقت البداية الذي يدّعيه. إن قال إن البرنامج بدأ عند 16:00 لكنه بدأ فعلًا عند 18:00، فـ EPG متأخّر ساعتين — تحتاج إضافة 2 إلى كل طابع زمني.

وإن أظهر EPG أن البرنامج «سيبدأ بعد ساعتين» مع أنه يُبَثّ الآن، فـ EPG متقدّم ساعتين — تحتاج طرح 2.

الخطوة 3: تأكّد أن الإزاحة نفسها على قنوات متعدّدة

اختر قناة ثانية وثالثة وتحقّق أن الإزاحة متّسقة. إن كانت القناة A مُزاحة بـ +2 و B بـ -3، فلا تواجه مشكلة منطقة زمنية؛ بل بيانات غير متّسقة لكل قناة، وإزاحة ثابتة لن تُصلح الاثنتين. (عدم اتّساق متعدّد القنوات نادر، ويعني عادةً أن المزوّد دمج تغذيات من مصادر متعدّدة دون مواءمة مناطقها الزمنية — الحلّ الوحيد هناك أن تطلب من المزوّد تنظيف بياناته.)

في 95% أو أكثر من الحالات، تكون الإزاحة متّسقة عبر كل القنوات وتساوي إحدى القيم: ‎±1، ‎±2، ‎±3، وأحيانًا ‎±5 أو ‎±8 للمستخدمين في مناطق زمنية بعيدة عن مصدر تغذية المزوّد.

تطبيق الإزاحة

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

نقطتان عمليّتان:

  • المُحوّل وكيل، لا عملية لمرّة واحدة. سيُحدّث مشغّلك EPG كل بضع ساعات. كل تحديث يُعيد جلب XMLTV لمزوّدك عبر المُحوّل ويُعيد تطبيق الإزاحة. لا يوجد تخزين مؤقّت من جانبنا؛ البيانات الموثوقة من المصدر تبقى صاحبة الكلمة، فقط مع تعديل الأوقات.
  • بياناتك تذهب في الرابط. معظم مزوّدي IPTV يُصدِرون XMLTV على رابط مثل http://server/xmltv.php?username=...&password=.... يقرأ المُحوّل تلك البيانات فقط لحظة الطلب لجلب المصدر — لا يُسجّلها، ولا يُخزّنها مؤقّتًا، ولا يُفهرسها. وسلسلة الاستعلام تُحذف أيضًا قبل كتابة سجلّات الوصول لدينا.

ما الذي لا يُصلحه المُحوّل

بعض المشاكل المجاورة تبدو كأخطاء منطقة زمنية لكنها ليست كذلك:

البرامج تتزحلق داخل وخارج التزامن

إن كان EPG أحيانًا صحيحًا وأحيانًا لا، فأنت لا تواجه مشكلة منطقة زمنية. الاحتمالات:

  • بيانات المزوّد قديمة. مدخلات البرامج الأقدم تُحدَّث بإيقاع بطيء؛ والأحدث تأتي من تغذية أنضر. وقد تكون التغذيتان في مناطق زمنية مختلفة، ممزوجتين في نفس XMLTV. صعب الحلّ دون تعاون من المزوّد.
  • التوقيت الصيفي. إن كانت منطقتك المحلّية تُطبِّق التوقيت الصيفي بينما لا يُطبّقه XMLTV لمزوّدك (أو العكس)، فالإزاحة تتغيّر بساعة مرّتين في السنة. إزاحة بمقدار ثابت لا تعمل إلا لنصف السنة الذي عايرت له.

لمشكلات التوقيت الصيفي تحديدًا، يمكنك الاحتفاظ برابطين مُزاحَين — واحد لكل نصف سنة — وتبديل مصدر EPG في المشغّل مرّتين في السنة. مزعج لكنه يعمل.

الدليل فارغ، لا خاطئ

«لا توجد معلومات» / دليل فارغ مشكلة مختلفة. راجع كيف تُصلح عدم تحميل EPG — السبب هناك عادةً عدم تطابق tvg-id بين قائمة التشغيل و XMLTV، لا المنطقة الزمنية.

قنوات بعينها خاطئة لكن معظمها صحيح

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

لماذا لا نكتشف الإزاحة تلقائيًّا

يأخذ المُحوّل الإزاحة كمعامل صريح بدل محاولة استنتاجها. نظريًّا، يمكننا جلب الملف، ومقارنة أوقات بداية البرامج بـ «الآن»، والتخمين. لا نفعل ذلك لأن:

  • «الإجابة الصحيحة» تعتمد على القناة التي ترتسي عليها. وقنوات مختلفة قد تختلف.
  • تخمين تلقائي خاطئ أسوأ من السؤال. إن أزحنا بصمت بالمقدار الخطأ، فستحصل على دليل خاطئ بقيمة أخرى باستمرار، وستُضيّع وقتك في التشخيص.
  • المستخدم لديه السياق. هو يعرف «نشرة BBC One عند 18:00 تظهر حاليًّا في الدليل عند 16:00». الأداة تستطيع تطبيق تلك المعرفة بنقرة واحدة؛ أمّا استنتاجها من رصد الشبكة فغير موثوق.

بعد الإصلاح

تحقّق بمرور واحد إضافي عبر الخطوة 1 أعلاه: قناة معروفة، برنامج حالي، انظر إلى وقت «يُعرض الآن» في المشغّل. ينبغي أن يطابق الآن ساعة الحائط. إن طابق، فالحلّ دائم — سيُواصل مشغّلك التحديث عبر رابط المُحوّل وتبقى الإزاحة مُطبَّقة.

إن كان هناك خلل آخر (قنوات لم تُزَح، مُعرِّفات لا تتطابق، فجوات في التغطية)، فتلك مشاكل منفصلة، والخطوة التالية التوجّه إلى مدقّق EPG. يُحلّل المدقّق ملف XMLTV ويُبلّغ بالمشاكل البنيوية بمعزل عن التوقيت — مفيد حين تريد معرفة «هل الملف نفسه سليم البنية» لا «هل الأوقات صحيحة».

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