بث قناة M3U8 على فيسبوك ببايثون وFFmpeg

x32x01
  • بواسطة x32x01 ||
لو نفسك تبث قناة M3U8 مباشرة على فيسبوك Live، فالموضوع بسيط جدًا! كل اللي محتاجه هو سكريبت بلغة Python بيستخدم FFmpeg علشان ياخد البث من M3U8 ويبعته لفيسبوك عن طريق RTMP (اللي هو البروتوكول الرسمي للبث المباشر على فيسبوك).

الأدوات اللي هتحتاجها 🧰

قبل ما تبدأ، لازم توفر شوية حاجات بسيطة:
  1. FFmpeg ➜ تأكد إنه متثبت عندك. جرب الأمر ده:
    ffmpeg -version

  2. Python ➜ ومعاها مكتبة ffmpeg-python:
    pip install ffmpeg-python

  3. Stream Key من فيسبوك ➜ هتجيبها من إعدادات البث المباشر.
  4. رابط M3U8 ➜ تأكد إنه شغال تمام من المتصفح أو VLC.



ازاي تجيب مفتاح البث من فيسبوك 🔑

  1. روح على صفحتك أو حسابك الشخصي في فيسبوك.
  2. اختار إنشاء بث مباشر (Live Video).
  3. انسخ الاتنين دول من الإعدادات:
    • Server URL (زي: rtmp://live-api-s.facebook.com:80/rtmp/)
    • Stream Key
  4. خليك محتفظ بيهم لأنك هتستخدمهم في السكريبت.



سكريبت Python لبث M3U8 على فيسبوك 💻

السكريبت الجاي بسيط جدًا، بياخد رابط M3U8 ويبثه مباشرة على فيسبوك عن طريق RTMP:
Python:
import ffmpeg
import sys
import os

def stream_m3u8_to_facebook(m3u8_url, stream_key, server_url):
    try:
        if not m3u8_url:
            print("خطأ: يجب إدخال رابط M3U8.")
            return

        rtmp_url = f"{server_url}{stream_key}"

        stream = ffmpeg.input(m3u8_url)
        stream = ffmpeg.output(
            stream,
            rtmp_url,
            format='flv',
            c='copy',
            f='flv',
            loglevel='info'
        )

        print(f"🎬 جاري البث إلى فيسبوك: {rtmp_url}")
        ffmpeg.run(stream)

    except ffmpeg.Error as e:
        print(f"❌ خطأ في FFmpeg: {e.stderr.decode()}")
    except Exception as e:
        print(f"⚠️ خطأ: {str(e)}")

if __name__ == "__main__":
    if len(sys.argv) != 4:
        print("الاستخدام: python stream.py <رابط_m3u8> <مفتاح_البث> <رابط_الخادم>")
        sys.exit(1)

    m3u8_url = sys.argv[1]
    stream_key = sys.argv[2]
    server_url = sys.argv[3]
    stream_m3u8_to_facebook(m3u8_url, stream_key, server_url)



طريقة الاستخدام 🖥️

  1. احفظ الكود باسم stream.py.
  2. افتح Terminal أو CMD وروح للمجلد اللي فيه السكريبت.
  3. شغّل الأمر ده:
Code:
python stream.py <رابط_m3u8> <مفتاح_البث> <رابط_الخادم>

🔹 مثال عملي:
Code:
python stream.py http://example.com/playlist.m3u8 1234567890abcdef rtmp://live-api-s.facebook.com:80/rtmp/



إزاي السكريبت بيشتغل ⚙️

  • المدخلات: بياخد لينك M3U8 كمصدر للفيديو.
  • البث: بيستخدم FFmpeg لنسخ الفيديو والصوت من اللينك ويبعتهم لفيسبوك.
  • التنسيق: بيحوّل البث لتنسيق FLV (اللي بيحتاجه RTMP).
  • التشغيل: بيستمر البث لحد ما توقفه يدويًا بـ Ctrl + C.



ملاحظات مهمة ⚠️

  • 🔐 مفتاح البث سرّي جدًا، ما تشاركوش مع أي حد.
  • 🌐 اتصال الإنترنت لازم يكون ثابت وسريع لتجنب التقطيع.
  • 🧩 لو الـ M3U8 مشفّر (DRM)، مش هيشتغل السكريبت بدون فك التشفير.
  • 🧪 اختبر البث الأول بـ "أنا فقط" في إعدادات الخصوصية قبل ما تبث للعامة.
  • 🧰 بدائل جاهزة: تقدر تستخدم OBS Studio بدل السكريبت لو عايز واجهة رسومية، بس السكريبت أسرع وأتوماتيكي أكتر.
  • ⚖️ حقوق البث: تأكد إنك تملك حقوق المحتوى قبل البث لتجنب المخالفات.



حل المشاكل الشائعة 🧠

  • ❌ FFmpeg Error: تأكد إنه متثبت بشكل صحيح.
  • 🚫 البث مش ظاهر: راجع مفتاح البث والرابط.
  • 🕸️ تقطيع البث: جرّب تقلل جودة الفيديو كده: -b:v 1000k
    ده بيقلل استهلاك الإنترنت ويحسن الثبات.



النتيجة 🎉

بعد تنفيذ الخطوات، هيبدأ البث في صفحتك على فيسبوك مباشرة 🟢
كل ده من خلال سكريبت صغير وبسيط بدل ما تفتح برامج معقدة!
 
التعديل الأخير:
المواضيع ذات الصلة
x32x01
الردود
0
المشاهدات
605
x32x01
x32x01
x32x01
الردود
0
المشاهدات
281
x32x01
x32x01
x32x01
الردود
0
المشاهدات
742
x32x01
x32x01
x32x01
الردود
0
المشاهدات
654
x32x01
x32x01
x32x01
الردود
0
المشاهدات
559
x32x01
x32x01
x32x01
  • x32x01
الردود
0
المشاهدات
911
x32x01
x32x01
x32x01
الردود
0
المشاهدات
591
x32x01
x32x01
x32x01
الردود
0
المشاهدات
627
x32x01
x32x01
x32x01
الردود
0
المشاهدات
733
x32x01
x32x01
x32x01
الردود
1
المشاهدات
760
x32x01
x32x01
الدخول أو التسجيل السريع
نسيت كلمة مرورك؟
إحصائيات المنتدى
المواضيع
1,829
المشاركات
2,027
أعضاء أكتب كود
468
أخر عضو
عبدالله احمد
عودة
أعلى