YouTube बुकमार्क
यह मैंने जावास्क्रिप्ट के साथ किया
ytplayer.config.args
वस्तु से शुरू करो । इसमें वीडियो के सभी URL शामिल हैं। में टूट गया है
url_encoded_fmt_stream_map // traditional: contains video and audio stream
adaptive_fmts // DASH: contains video or audio stream
इनमें से प्रत्येक एक अल्पविराम से अलग सरणी है जिसे मैं "स्ट्रीम ऑब्जेक्ट" कहूंगा। प्रत्येक "स्ट्रीम ऑब्जेक्ट" में इस तरह के मान शामिल होंगे
url // direct HTTP link to a video
itag // code specifying the quality
s // signature, security measure to counter downloading
प्रत्येक URL
को इनकोड किया जाएगा ताकि आपको उन्हें डीकोड करना होगा। अब मुश्किल हिस्सा है।
YouTube के पास अपने वीडियो के लिए कम से कम 3 सुरक्षा स्तर हैं
unsecured // as expected, you can download these with just the unencoded URL
s // see below
RTMPE // uses "rtmpe://" protocol, no known method for these
RTMPE वीडियो आमतौर पर आधिकारिक पूर्ण लंबाई की फिल्मों पर उपयोग किए जाते हैं, और SWF सत्यापन प्रकार 2 के साथ सुरक्षित होते हैं। यह 2011 के आसपास
रहा है
और अभी तक रिवर्स इंजीनियर है।
"S" वीडियो सबसे कठिन हैं जिन्हें वास्तव में डाउनलोड किया जा सकता है। आप वीवाईओओ वीडियो और इस तरह से टाइप करेंगे। वे एक हस्ताक्षर के साथ शुरू करते हैं जैसे कि
AA5D05FA7771AD4868BA4C977C3DEAAC620DE020E.0F421820F42978A1F8EAFCDAC4EF507DB5
फिर हस्ताक्षर इस तरह के एक समारोह के साथ तले हुए हैं
function mo(a) {
a = a.split("");
a = lo.rw(a, 1);
a = lo.rw(a, 32);
a = lo.IC(a, 1);
a = lo.wS(a, 77);
a = lo.IC(a, 3);
a = lo.wS(a, 77);
a = lo.IC(a, 3);
a = lo.wS(a, 44);
return a.join("")
}
यह फ़ंक्शन गतिशील है, यह आमतौर पर हर दिन बदलता है। इसे और अधिक कठिन बनाने के लिए फ़ंक्शन को URL जैसे होस्ट किया जाता है
http://s.ytimg.com/yts/jsbin/html5player-en_US-vflycBCEX.js
यह समान-मूल नीति की समस्या का परिचय देता है
। अनिवार्य रूप से, आप इस फ़ाइल को डाउनलोड नहीं कर सकते www.youtube.com
क्योंकि वे अलग-अलग डोमेन हैं। इस समस्या का एक समाधान है
CORS । कोर के साथ,
s.ytimg.com
इस हेडर को जोड़ सकता है
Access-Control-Allow-Origin: http://www.youtube.com
और यह जावास्क्रिप्ट को डाउनलोड करने की अनुमति देगा www.youtube.com
। बेशक वे ऐसा नहीं करते हैं। इस वर्कअराउंड के लिए एक वैकल्पिक हल एक कॉर्स प्रॉक्सी का उपयोग करना है। यह एक प्रॉक्सी है जो निम्नलिखित हेडर के साथ सभी अनुरोधों का जवाब देती है
Access-Control-Allow-Origin: *
तो, अब जब आपने अपनी जेएस फाइल को बंद कर दिया है, और हस्ताक्षर का उपयोग करने के लिए फ़ंक्शन का उपयोग किया है, तो आप इसका उपयोग वीडियो डाउनलोड करने के लिए क्वेरिस्ट्रिंग में कर सकते हैं।