دليل تجهيز الفيديوهات (مجاناً بالكامل - بدون أي اشتراك) ================================================================ هذي العملية تسويها على جهازك أنت (لابتوب/كمبيوتر)، والسيرفر بس يخزّن النتيجة النهائية - ما يحتاج أي صلاحيات خاصة على الاستضافة. -------------------------------- 1) تحميل FFmpeg (مجاني ومفتوح المصدر) -------------------------------- - ويندوز: حمّل من https://www.gyan.dev/ffmpeg/builds/ (اختر "release full") وفك الضغط، وأضف مجلد bin إلى PATH (أو تشتغل من نفس المجلد مباشرة). - ماك: عبر Homebrew: brew install ffmpeg - لينكس: sudo apt install ffmpeg تأكد إنه اشتغل بكتابة: ffmpeg -version -------------------------------- 2) لكل درس، سوي مجلد خاص باسم واضح -------------------------------- مثال: الدرس رقم 12 -> اسم المجلد lesson_12 mkdir lesson_12 cd lesson_12 -------------------------------- 3) ولّد مفتاح تشفير عشوائي (16 بايت) -------------------------------- Windows (PowerShell): [byte[]]$b = 1..16 | ForEach-Object {Get-Random -Max 256}; [IO.File]::WriteAllBytes("lesson_12.key",$b) Mac/Linux: openssl rand 16 > lesson_12.key -------------------------------- 4) سوي ملف نصي اسمه keyinfo.txt يحتوي 3 أسطر بالضبط: -------------------------------- السطر الأول: الرابط اللي المتصفح رح يطلب منه المفتاح (رابط موقعك الحقيقي) السطر الثاني: مسار ملف المفتاح على جهازك (يُستخدم فقط أثناء التحويل، ما يُرفع) السطر الثالث (اختياري): اتركه فارغ لو ما عندك IV مخصص مثال محتوى keyinfo.txt: https://academy.hkore-fx.com/key.php?lesson_id=12 lesson_12.key -------------------------------- 5) حوّل الفيديو الأصلي إلى HLS مشفّر -------------------------------- ffmpeg -i "الفيديو_الأصلي.mp4" ^ -c:v libx264 -crf 22 -preset veryfast ^ -c:a aac -b:a 128k ^ -hls_time 6 -hls_playlist_type vod ^ -hls_key_info_file keyinfo.txt ^ -hls_segment_filename "seg_%03d.ts" ^ index.m3u8 (على Mac/Linux استبدل ^ بـ \ في نهاية كل سطر، أو اكتبه بسطر واحد) هذا الأمر رح ينتج داخل مجلد lesson_12: index.m3u8 (قائمة التشغيل) seg_000.ts, seg_001.ts, ... (مقاطع الفيديو المشفّرة) -------------------------------- 6) الرفع على السيرفر -------------------------------- - ارفع كل مجلد lesson_12 (ما عدا ملف lesson_12.key وملف keyinfo.txt) إلى: academy/media/lesson_12/ - ارفع فقط ملف lesson_12.key إلى: academy/media_keys/lesson_12.key (هذا المجلد محمي بـ .htaccess ولا يفتح مباشرة من المتصفح) -------------------------------- 7) في قاعدة البيانات -------------------------------- في جدول lessons، عمود video_provider_id يجب أن يساوي بالضبط اسم المجلد: lesson_12 -------------------------------- ملاحظات مهمة -------------------------------- - لا ترفع ملف keyinfo.txt أو lesson_12.key الأصلي إلى مجلد media (العام) أبداً، فقط media_keys المحمي. - كل درس له مفتاح مختلف (كرر الخطوات 2-6 لكل فيديو). - الفيديو نفسه (ملفات .ts) تُرفع كملفات عادية بدون أي حماية إضافية على مستوى الاستضافة، لأنها مشفّرة ولا فائدة منها بدون المفتاح المحمي بـ key.php. - هذا الأسلوب لا يعادل حماية DRM احترافية (مثل Widevine)، لكنه يمنع أي مشاركة عادية للرابط أو تحميل مباشر للفيديو، وهو مجاني بالكامل ويعمل على أي استضافة cPanel عادية دون الحاجة لصلاحيات تشغيل أوامر على السيرفر.