===============================================================================
حل مشكلة "Unable to Play" في قنوات IPTV - دليل الاستخدام
===============================================================================

تم إنشاء نظام متكامل لحل مشكلة عدم تشغيل القنوات بدون التأثير على الكود الأصلي

===============================================================================
1. الملفات المُضافة:
===============================================================================

✓ /iptv/live/index.php
   - معالج البث المباشر مع نظام Fallback تلقائي
   - يفحص الروابط ويختار الرابط الصحيح تلقائياً
   - يدعم المصادقة والتحقق من صلاحية الحساب

✓ /iptv/live/.htaccess
   - إعادة توجيه طلبات البث بشكل صحيح
   - إعدادات CORS للسماح بالتشغيل من التطبيقات

✓ /iptv/check_and_fix_streams.php
   - سكربت فحص وإصلاح القنوات
   - يختبر جميع الروابط ويحذف المعطلة
   - يعطل القنوات التي لا تعمل

===============================================================================
2. كيفية الاستخدام:
===============================================================================

أ) الاستخدام اليدوي لفحص القنوات:
-----------------------------------
عبر SSH:
  cd /var/www/html/iptv
  php check_and_fix_streams.php

عبر المتصفح:
  http://yourserver.com/iptv/check_and_fix_streams.php?key=YOUR_SECRET_KEY

  ملاحظة: يمكنك معرفة الـ key من خلال:
  grep SECRET_KEY /var/www/html/iptv/check_and_fix_streams.php


ب) جدولة الفحص التلقائي (Cron):
---------------------------------
لفحص القنوات تلقائياً كل 6 ساعات:

1. افتح ملف crontab:
   crontab -e

2. أضف السطر التالي:
   0 */6 * * * /usr/bin/php /var/www/html/iptv/check_and_fix_streams.php >> /var/www/html/iptv/cache/stream_check.log 2>&1

3. احفظ واخرج

هذا سيفحص القنوات كل 6 ساعات ويسجل النتائج في ملف log


ج) كيفية عمل النظام:
---------------------
1. عندما يحاول المستخدم تشغيل قناة عبر:
   http://yourserver.com/iptv/live/username/password/STREAM_ID.ts

2. يقوم السكربت بـ:
   - التحقق من بيانات المستخدم
   - جلب جميع روابط القناة من قاعدة البيانات
   - فحص كل رابط بسرعة (3 ثوان لكل رابط)
   - اختيار أول رابط يعمل
   - إعادة توجيه المستخدم للرابط الصحيح

3. إذا لم يكن هناك روابط تعمل:
   - يظهر رسالة "No working stream sources available"
   - يمكن تشغيل check_and_fix_streams.php لتنظيف القنوات


===============================================================================
3. المميزات:
===============================================================================

✓ لا يؤثر على الكود الأصلي - جميع الملفات منفصلة
✓ نظام Fallback تلقائي - يختار أفضل رابط متاح
✓ فحص دوري للقنوات - يحافظ على نظافة قاعدة البيانات
✓ تعطيل القنوات المعطلة - يمنع المشاكل للمستخدمين
✓ دعم كامل للمصادقة - يحمي المحتوى
✓ سجلات مفصلة - لمتابعة الأداء

===============================================================================
4. استكشاف الأخطاء:
===============================================================================

مشكلة: القنوات لا تزال لا تعمل
الحل:
  1. تأكد من تفعيل mod_rewrite في Apache:
     a2enmod rewrite
     systemctl restart apache2

  2. تأكد من السماح بـ .htaccess في Apache:
     تحقق من ملف /etc/apache2/sites-available/000-default.conf
     يجب أن يحتوي على:
     <Directory /var/www/html/iptv>
         AllowOverride All
     </Directory>


مشكلة: "Access denied. Invalid key" عند تشغيل check_and_fix_streams.php
الحل:
  - استخدم المفتاح الصحيح أو قم بتشغيله عبر SSH:
    php /var/www/html/iptv/check_and_fix_streams.php


مشكلة: بطء في التشغيل
الحل:
  - قم بتشغيل check_and_fix_streams.php لحذف الروابط المعطلة
  - هذا سيحسن السرعة حيث لن يفحص إلا الروابط الصحيحة


===============================================================================
5. اختبار النظام:
===============================================================================

1. اختبر البث المباشر:
   curl -I "http://yourserver.com/iptv/live/testuser/testpass/689.ts"

   يجب أن ترى:
   HTTP/1.1 302 Found
   Location: [رابط البث الصحيح]


2. افحص القنوات:
   php /var/www/html/iptv/check_and_fix_streams.php

   سترى تقرير مفصل عن كل قناة


3. راجع السجلات:
   tail -f /var/www/html/iptv/cache/stream_check.log


===============================================================================
6. الصيانة الدورية:
===============================================================================

يُنصح بـ:
✓ فحص القنوات مرة كل 6-12 ساعات
✓ مراجعة السجلات أسبوعياً
✓ حذف القنوات المعطلة نهائياً شهرياً
✓ تحديث روابط القنوات من المصدر بشكل دوري

===============================================================================
7. للدعم:
===============================================================================

إذا واجهت مشاكل:
1. تحقق من ملفات Apache error log:
   tail -f /var/log/apache2/error.log

2. تحقق من صلاحيات الملفات:
   ls -la /var/www/html/iptv/live/

3. تأكد من تشغيل Apache بشكل صحيح:
   systemctl status apache2

===============================================================================

تم إنشاء هذا الحل بواسطة Claude Code
التاريخ: 2 ديسمبر 2025
