تحية طيبة للجميع.
اريد ان اعرف كيف اضيف session للفيديو.
بحيث لا يشتغل الرابط المباشر للفيديو للزائر
الا عندما يزور الزائر الموقع ...
شاهدت هذه الطريقة في عدة مواقع
مع ان رابط المباشر للفيديو لا يتغير .
اتمنى من الأخ وليد يكون عنده الحل .
تحية طيبة للجميع.
اريد ان اعرف كيف اضيف session للفيديو.
بحيث لا يشتغل الرابط المباشر للفيديو للزائر
الا عندما يزور الزائر الموقع ...
شاهدت هذه الطريقة في عدة مواقع
مع ان رابط المباشر للفيديو لا يتغير .
اتمنى من الأخ وليد يكون عنده الحل .
تقوم الموقع بعمل ذلك من خلال تفحص قيمة HTTP_REFERER والذي تحتوي علي مصدر الزيارة .. فأن كان الزائر قادم من نفس الموقع يسمح بعرض الفيديو .. وان كان قادم من مصدر اخر او من خلال الرابط المباشر للفيديو .. فلا يسمح بعرض الفيديو
ويمكن القيام بذلك من خلال ملف .htaccess عبر اضافة هذا الكود :
مع استبدال domain.com برابط الموقع.
اهلا اخي وليد .
هذا الكود .htaccess يمنع روابط الفيديو بصيغة mp4
من الاشتغال الرابط المباشر للفيديو في المتصفح و المواقع الاخرى خارج الدومين المحدد نهائيا
للاسف ليس هذا ما اريده .
اريد ان يمنع تشغيل الفيديو ولكن ليس نهائيا
بمجرد دخول الزائر للموقع يسمع بعرض الفيديو في المتصفح و المواقع الاخرى
اعتقد ان هذه الطريقة تتم بوسطة السيشن session و ليس من ملف .htaccess
لاضافة Token او معرف فريد عند مشاهدة الفيديو .. فيجب ان يكون الفيديو مستضاف علي خادم بث خاص مثل Wowza
او Adobe Media Server
البديل لذلك هو عمل ملف PHP يتحقق من الجلسة ثم يعيد التوجية الي رابط الفيديو .. لكن هذه الطريقة من السهل تجاوزها.
@Alwalid رمضان مبارك اخي وليد ..
بالنسبة للفيديو المعرف الخاص ب token و session فهو عندي على الاستضافة العادية ولا أعتقد يتطلب سيرفر بث خاص.
ممكن تعطيني طريقة عمل ملف php يتحقق من الجلسة .
والطريقة التي تتجاوز بها الجلسة
هنا مثال الذي أريده
هذا الرابط مباشر للفيديو لا يتغير يشتغل لمدة أعتقد أكثر من 10 ساعات ثم يتوقف حتى تزور هذه صفحة التحميل للفيديو.
انشاء Token او جلسة لملف الفيديو بشكل مباشر بدون اي ملف برمجي وسيط يتطلب استخدام سيرفر بث
لكن انشاء الـToken والجلسة والتعامل معها من خلال ملف برمجي PHP وسيط هو امر ممكن علي اي استضافة لكنة غير أمن ويمكن بسهولة تجاوز الملف البرمجي الوسيط والوصول المباشر الي الفيديو
يمكنك الاطلاع علي هذا الشرح لمعرفة كيفية التعامل مع الجلسات في لغة PHP
هذا الموقع :
لايستخدم الجلسات لحماية الملفات .. لكنة يستخدم عنوان IP للزائر .. فيقوم بتوليد رابط فريد صالح لمدة معينة لعنوان IP كل زائر وهذه الطريقة تستعملها معظم مواقع التحميل
فجرب فتح الموقع من متصفح ثم فتح رابط الفيديو من متصفح اخر وسيستمر في العمل بالرغم من ان الجلسة تحفظ في المتصفح فقط
اهلا اخي وليد . و عيدكم مبارك سعيد بالصحة و العافية وعمر مديد ان شاء الله
عذرا على التاخير بسبب عطل الهاتف الخاص بي
ممكن تعطيني كود Token والجلسة و كيف يتم تجاوز الملف البرمجي ...
@Alwalid الاخ وليد هل من مساعدة جزاك الله خيرا ...?
ممكن تعطيني كود Token والجلسة و كيف يتم تجاوز الملف البرمجي ...
يمكنك الاطلاع علي هذا الشرح لمعرفة كيفية التعامل مع الجلسات في لغة PHP
وفكرة العمل تكون عبر انشاء ملف PHP واضافته كرابط للفيديو ضمن المشغل، بحيث يتحقق من ان فتح الملف تم عن طريق مصدر داخل الموقع مع وجود القيمة المخزنة في الجلسة، فيعيد التوجية الي ملف الفيديو، وان كان الدخول للملف تم بشكل مباشر او من خارج الموقع كمصدر للزيارة فيقوم بانهاء الجلسة واعادة التوجية لصفحة خطأ.
وتجاوز هذا الملف ممكن، فمعرف الجلسة سيتم اضافتها للزائر من خلال صفحة اخر، وبالامكان ايضاً التلاعب بمصدر الزيارة لخداع الملف، فبكل الاحوال هذه الطريقة ليس امنة
فافضل طريقة لحماية الفيديو هي ان يكون ملف الفيديو نفسة محمي باستخدام Access Token او DRM وهي التقنيات التي تستخدمها منصات المشاهدة الكبري لحماية الفيديوهات وذلك يتطلب ان يكون الفيديو مدار بواسطة سيرفر بث مثل wowza ، وهذا الرابط يحتوي علي المزيد من التفاصيل حول طرق تأمين محتوي الفيديو
اهلا اخي وليد .لو تكرمت اعطيني كود جاهز اذا كان متوفر لديك...
لانني ليس لدي خبرة كبيرة بـ php
للأسف،، هذا العمل يتطلب اكثر من كود جاهز، فيحتاج الي عدة ملفات لتتضمن اكواد بداء الجلسة وتوليد المعرف والتحقق من المعرف واعادة التوجية وحظر الوصول وانهاء الجلسات
لكن هذة الروابط سيوضح الكثير حول فكرة عمل السكريبت المطلوب
وتتضمن اكواد جاهزة تشمل معظم ما ستحتاج الية لبناء السكريبت
هل هناك طريقة لتجاوز الكود ومعرفة الرابط الاصلي من المشفر..’؟
ياريت لو تعطيني كود php للتحميل بالجلسة الوهمية.
فكرة العمل هي استخدام CURL للدخول الي صفحة الموقع التي ستبداء الجلسة بالمتصفح ثم استخراج معرف PHP الجلسة منها عبر الحصول علية من الكوكيز PHPSESSID المحفوظ في المتصفح والذي يتضمن رابط الفيديو الاصلي من جهه الموقع
ثم اعادة ارسال طلب رابط الفيديو مع دمج PHPSESSID الذي تم استخراجه من الطلب السابق
وعندها سيبدء الفيديو بالتحميل،،
لن يتمكن الكود السابق من جلب الرابط الصحيح للفيديو، لانة لايجلب PHPSESSID الحالي من الرابط.
لقد قمت بكتابة كود كامل للقيام بفكرة العمل السابقة
وطريقة عملة هي الدخول الي صفحة الموقع التي ستبداء الجلسة بالمتصفح من اجل بدء جلسة جديدة .. ثم حفظ المعرف الخاص بها من الهيدر في الطلب الي الكوكيز
ثم اعادة ارسال طلب CURL مجدداً باستخدام المعرف من الكوكيز لجلب الرابط الصحيح للفيديو
تبارك الله عليك وربي يعطيك الصحة اخي وليد ....
السكربت اشتغل صح 100%.
هل ممكن تعمل جلسة وهمية لهذا الكود اسفله
لجلب رابط الفيديو المباشر و يكون شغال في المتصفح
بدون تحميل.
هذا الموقع
لايستخدم الجلسات وفكرة عملة تعتمد فقط علي Token عشوائي يحدث عند كل زيارة وهي ابسط بكثير، وبالفعل الكود الخاص بك يعمل بشكل جيد ويجلب الرابط الصحيح للفيديو
ويمكن استخدامه لتشغيل الفيديو بدون تحميل، فقط يتطلب الامر ادخال هذا الرابط ضمن مشغل فيديو علي الموقع مثل
انظر الكود اضفت له المشغل ولم يشتغل
و انظر هنا عندما اضفت له كود التحميل اشتغل بدون اضهار رابط التحميل الفيديو من المصدر
ونفس المشكل مع مواقع الرفع مثل 4shared.com و google drive
عند جلب الرابط بوسطة كود php او curl و طبعه في المتصفح و اي مشغل فيديو
الرابط لا يشتغل
استخدم مشغل فيديو خاص مثل Video.js
لأن هذه الروابط لن تعمل في مشغل HTML5 الافتراضي في المتصفح
وهذا مثال لتشغيل الرابط من خلال Video.Js،
لكن استبدل رابط الفيديو بالمثال الي الرابط المستخرج من كود PHP الخاص بك
بعد التجربة استنتجت ان كل زيارة لموقع رابط الفيديو يعطيك رابط خاص شغال لكل ip address
لذلك فان كل زيارة بواسطة curl لجلب الرابط تكون مختلفة عن ip address متصفحك
وربما هذا هو سبب عدم اشتغال الرابط في المتصفح.
أجل .. فعند استخدام CURL تتم زيارة الموقع باستخدام عنوان IP الخاص بالسيرفر الذي يتم تنفيذ الكود من خلاله وان كان يعمل علي استضافة فعندها يكون عنوان IP تابع لمزود خدمة خاص بشبكات شركات السيرفرات فيتعرف عليه الموقع ويمنع التحميل.
لكن عند ارسال نفس الطلب باستعمال CURL من خلال خادم محلي LocalHost علي الحاسوب فتتم زيارة الموقع باستخدام عنوان IP الخاص العادي الخاص بالحاسوب ويكون تابع لمزود خدمة انترنت منزلي عادي فيتعرف الموقع علي الزيارة كانها من زائر عادي ويسمع بالتحميل.
جربت جلب رابط فيديو مباشر من جوجل درايف نفس الشئ يعطيني رابط غير شغال
الكود الذي استخدمته هنا اسفله...
على ما اعتقد جوجل درايف لايعتمد على ip address لانشاء رابط مباشر لكل زيارة.
ربما علىsession او الكوكيز...
وانت اخي وليد مارأيك.؟
أجل .. يستخدم الجلسات والكوكيز ومصدر الزيارة في وقت واحد لذا لن تنجح طرق الجلب العادية مع جوجل درايف وخاصة عندما يكون حجم الملف كبير بسبب ظهور صفحة الفحص من الفيروسات ..
فهو يستخدم طريقة مشابهه ليوتيوب في التعامل مع ملفات الفيديو، فمثل يوتيوب يمكن الحصول علي رابط الفيديو متعدد الجودات والمعلومات عنه من خلال استعلام :
لكن الروابط لن تعمل الا مع وجود الكوكيز وبدء الجلسة قبل زيارتها
في السابق كان عندي سكربت (انظر الرابط اسفله) وجدته على موقع github
كان يستخرج جميع الروابط المباشرة على google drive شغالة
والان صار يستخرج روابط غير شغالة. ولا اعرف السبب ؟
وجربت الكثير من السكربتات على موقع github لم تعد تعطي روابط شغالة.
اذا امكن اخي وليد تشرح لي كيف يتم انشاء هذه الجلسات session و الكوكيز مع مكتبة curl
لجلب الروابط المباشرة من المواقع التي تطلب الجلسات session و الكوكيز .
وشكرااااا
هذا السكريبت طريقة عملة مختلفة فهو يعمل كـProxy لتشغيل الفيديو من خلاله، السكريبتات القديمة تتوقف لان جوجل تعدل معاملات وطريقة التأمين بشكل مستمر مثل ما تفعل ايضاً في يوتيوب.
هذا سكريبت اخر من GitHub يعمل كـProxy للفيديوهات من Google Drive وهو محدث منذ 5 ايام، لذا يفترض ان يعمل بشكل جيد.
فكرة التعامل مع الجلسات والكوكيز في CURL بسيطة، فقط يتم جلب الكوكيز والجلسة من الرابط الاصلي في الاستعلام الاول ثم اعادة ارسالها في الطلب لمحاكاة الاستعلام الاول
بالنسبة للسكربت Proxy المحدث منذ 5 ايام على موقع GitHub
للاسف لم يعمل معي انظر النتيجة في الرابط اسفله
اما تركيب السيشن والكوكيز لمكتبة curl
لقد جربت الكثير من الاكواد التي بحثت عنها في النت لعدة اشهر
ولكن للاسف لم انجح في اي واحدة منها .
بسبب نقص خبرتي في لغة php
انظر لهذا الكود اسفله .
الذي عملته ولكن لم يعمل بشكل صحيح اتمنى منك تصحيحه اذا تفضلت
وشكرا
لايمكن الوصول الي الكود في الرابط .
Error, this is a private paste. If this is your private paste, please login to Pastebin first.
ولا أعرف لماذا ظهر الرد كمجهول !
اهلا اخي وليد للاسف الكود لم يعمل معي
انت جربت الكود مع فيديو صغير الحجم لا يتطلب كود confirm للتحميل ويعمل مباشرة
اريد ان تجرب الكود مع فيديو كبير الحجم الذي يتطلب كود confirm و جلسة session للتحميل
بالتوفيق لك ان شاء الله .
للاسف لم يعمل الكود عندما اضفت رابط الفيديو داخل دالة readfile
يتم تحميل كود html لصفحة رابط الفيديو على جوجل درايف
ممكن تراجع كود الجلسة ربما تجد هناك خطأ ما
ياللعجب ??????
حتى انا استعملت نفس كودك هنا
ولم يشتغل على استضافتين مختلفتين
يبدو ان هناك خطـأ ما .????
ربما من نسخة php لا تتوافق مع الاستضافة التي اجرب عليها الكود ...
الله اعلم
كما يبدوا فهذا الموقع يمنع تنزيل الفيديوهات من عناوين IP التابعة لشركات الاستضافة والسيرفرات.
فان جربت فتح رابط احد الفيديوهات من خلال VPN .. ستظهر صفحة خطأ 404 NOT FOUND
وان جربت نفس الرابط بدون VPN سيتم تنزيل الفيديو بلا مشاكل
وهذا يفسر ان الكود السابق بعمل بشكل جيد علي الخادم المحلي LocalHost لانه يستعمل عنوان IP العادي للحاسوب
بينما لايعمل الكود علي الاستضافات لانه تستعمل عنوان IP تابع لسيرفر او مركز بيانات.
ليس هذا الموقع فحسب كل المواقع الرفع الملفات تقريبا نفس الشئ
تعطيك رابط مشفر صالح للتحميل لمدة معينة فقط
اما اذا حاولت جلبه بـ php او مكتبة curl فلن يعمل الرابط ...
انا اعتقد ربما بالكوكيز .
لان كوكيز المتصفح مختلف عن كوكيز curl لذلك لا يعمل الرابط
ولكن وجدت حل في هذا الكود اسفله
عندما تضييف له كود لكي يتم التحميل بدون طبع الرابط في المتصفح او مشغل الفيديو
يعمل الفيديو ....
لقد جربت هذا الكود السابق :
علي استضافة .. لكنها ايضاً لم يعمل فملف الفيديو الذي يتم تنزيله ليس صحيح ولايعمل
لكن بتجربة نفس الكود السابق علي LocalHost يعمل ويتم تنزيل الفيديو بشكل صحيح
ولكن عند تشغيل VPN علي الحاسوب لا يعمل الكود علي LocalHost ايضاً ويصبح كما في الاستضافة
فهذا يشبر ان الموقع يتعرف علي عنوان IP ان كان عنوان تابع لشبكة انترنت لمستخدم عادي ام عنوان تابع لشركة سيرفرات وهناك ادوات كثيرة تتيح ذلك مثل
لان ان كان الموقع يعتمد علي الكوكيز كان الكود لن يعمل في الحالاتين علي الاستضافة او الخادم المحلي
التعليقات