दिलचस्प पोस्ट
जावा में बेनामी कोड ब्लॉक Android परियोजना में "jfeinstein10 / स्लाइडिंग मेनू" जोड़ने के लिए सटीक प्रक्रिया मैं इस mysql mysqli को कैसे बदल सकता है? इकाई डेटा ढांचे से ट्रिगर के बजाय तालिका में डालने में त्रुटि किसी यूआरएल में प्रोटोकॉल को उत्तीर्ण करने के लिए एक अग्रणी डबल स्लैश का उपयोग करने के लिए कोई नकारात्मक पहलू है? यानी src = "// domain.com" मैन्युअल रूप से कार्यान्वित गुणों पर स्वत: कार्यान्वित गुणों का उपयोग करने का कोई कारण? XmlDocument से एक्सएमएल नामों के साथ एक्सएमएल नोड का चयन कैसे करें? एक्सएचआर अनुरोध से ब्लॉब डेटा प्राप्त करना दो वर्ण चर के बीच सामान्य सबस्ट्रिंग ढूंढें मैं एक ही पृष्ठ पर jQuery के विभिन्न संस्करणों को कैसे चलाऊं? किसी नियम का उपयोग करके स्वतः सूचित दृश्य को ताज़ा करें या सूचित करें मौजूदा कक्षाओं के लिए इंटरफेस कई विरासत की आवश्यकता को कैसे बदल सकता है console.log () काम नहीं कर रहा है जब मैं अपना क्रोम एक्सटेंशन लोड करता हूँ Magento में एक उत्पाद की छवि कैसे प्राप्त करें? रेल content_tag सहायक के साथ html5 डेटा विशेषताओं का उपयोग करने का सबसे अच्छा तरीका है?

मैं कैसे जांच करूं कि क्या यूट्यूब पर एक वीडियो मौजूद है, PHP का उपयोग कर?

मैं कैसे जांच करूं कि क्या यूट्यूब पर एक वीडियो मौजूद है, PHP का उपयोग कर?

Solutions Collecting From Web of "मैं कैसे जांच करूं कि क्या यूट्यूब पर एक वीडियो मौजूद है, PHP का उपयोग कर?"

यूट्यूब के एपीआई का उपयोग करने के बारे में क्या?
आखिरकार, इसका मतलब होगा कि कुछ आधिकारिक का उपयोग करना, जो कुछ एचटीएमएल पृष्ठ को पार्स करने के साथ जाने की तुलना में कम होने की संभावना है।

अधिक जानकारी के लिए: यूट्यूब एपीआई और टूल्स – डेवलपर गाइड: PHP

एक विशिष्ट वीडियो प्रविष्टि को पुनः प्राप्त करना काफी दिलचस्प लगता है: यदि आप इस तरह एक यूआरएल को एक अनुरोध भेजते हैं:

http://gdata.youtube.com/feeds/api/videos/videoID 

(वीडियो की आईडी द्वारा "वीडियोआईड" की जगह, निश्चित रूप से – "उदाहरण में" GeppLPQtihA)

यदि वीडियो मान्य है तो आपको कुछ एटीओएम फ़ीड मिलेंगी; और "अमान्य आईडी" यदि ऐसा नहीं है

और, मैं आग्रह करता हूं: इस तरह, आप एक प्रलेखित एपीआई पर भरोसा करते हैं , न कि किसी प्रकार के व्यवहार पर आज मौजूद है, लेकिन इसकी गारंटी नहीं है।

यूट्यूब ओएम्बेड प्रारूप के लिए समर्थन है
पास्कल मार्टिन द्वारा प्रदान की गई XML प्रतिक्रिया की तुलना में, मेरे पास केवल 3,800 बाइट्स के बावजूद 600 बाइट्स डाउनलोड करने के लिए है, जिससे यह तेज और कम बैंडविड्थ cosuming (केवल आकार का 1/6) है।

 function yt_exists($videoID) { $theURL = "http://www.youtube.com/oembed?url=http://www.youtube.com/watch?v=$videoID&format=json"; $headers = get_headers($theURL); return (substr($headers[0], 9, 3) !== "404"); } $id = 'yyDUC1LUXSU'; //Video id goes here if (yt_exists($id)) { // Yep, video is still up and running :) } else { // These aren't the droids you're looking for :( } 

यूआरएल को HEAD विधि से अनुरोध करें, जैसे:

 HEAD /watch?v=p72I7g-RXpg HTTP/1.1 Host: www.youtube.com HTTP/1.1 200 OK [SNIP] HEAD /watch?v=p72I7g-BOGUS HTTP/1.1 Host: www.youtube.com HTTP/1.1 303 See Other [SNIP] Location: http://www.youtube.com/index?ytsession=pXHSDn5Mgc78t2_s7AwyMvu_Tvxn6szTJFAbsYz8KifV-OP20gt7FShXtE4gNYS9Cb7Eh55SgoeFznYK616MmFrT3Cecfu8BcNJ7cs8B6YPddHQSQFT7fSIXFHd5FmQBk299p9_YFCrEBBwTgtYhzKL-jYKPp2zZaACNnDkeZxCr9JEoNEDXyqLvgbB1w8zgOjJacI4iIS6_QvIdmdmLXz7EhBSl92O-qHOG9Rf1HNux_xrcB_xCAz3P3_KbryeQk_9JSRFgCWWgfwWMM3SjrE74-vkSDm5jVRE3ZlUI6bHLgVb7rcIPcg 

@ डीब्रो द्वारा टिप्पणी के रूप में, पास्कल मार्टिन द्वारा जवाब उस समय एक स्वीकार्य उत्तर था। हालांकि, चूंकि एपीआई आगे बढ़ गया था, तय और सुधार हुआ, एक नया समाधान जो काम करता है, वह निम्नलिखित है। कृपया ध्यान दें कि यह पास्कल द्वारा प्रदान की गई तकनीक पर आधारित है और मैं बोली लगाता हूं:

 ...if you send a request to an URL like this one http://gdata.youtube.com/feeds/api/videos/videoID (Replacing "videoID" by the idea of the video, of course -- "GeppLPQtihA" in your example) You'll get some ATOM feed (**STOP HERE**) 

उपयोग करने के लिए नया यूआरएल और यह एपीआई के वी 3 के लिए है https://www.googleapis.com/youtube/v3/videos?id={the_id_of_the_video}&key={your_api_key}&part={parts}

कहा पे

  • {the_id_of_the_video} आपको पता होना चाहिए कि यह क्या है

  • {your_api_key} आपके ऐप की कुंजी है जो आपके डेवलपर कंसोल में पाई जा सकती है

  • {parts} एक अल्पविराम से विभाजित सूची, वैध मानों के लिए यहां जांचें

अब परिणाम के लिए

यदि वीडियो आईडी मान्य है तो आपको आइटम फ़ील्ड में डेटा मिलेगा जिसमें वीडियो का आईडी और भागों पैरामीटर के माध्यम से पूछताछ की गई जानकारी शामिल है।

यदि वीडियो आईडी मान्य नहीं है, तो आपको खाली आइटम मिलेंगे।

गलत कुंजी की आपूर्ति से आपको एक त्रुटि 400 (त्रुटि ऑब्जेक्ट) मिलता है।

यदि यूट्यूब यूआरएल एक असली यूट्यूब वीडियो के लिए एक यूआरएल है तो आप मान्य करना चाहते हैं? यह काफी कठिन है, आप नियमित अभिव्यक्ति का उपयोग कर सकते हैं, लेकिन ध्यान रखें कि यूट्यूब यूआरएल को व्यक्त करने के वैध तरीकों का भार है:

इसके अलावा वीडियो कोड में अल्फ़ान्यूमेरिक वर्ण, अंडरस्कोर, -क्रारेंटर्स (पता नहीं है कि उन्हें क्या कहा जाता है) और अधिक संभवतः शामिल हो सकते हैं।

एक अन्य (प्रकार का अक्षम) रास्ता क्यूएल का उपयोग करना है जो कि अपेक्षित वीडियो पृष्ठ का HTML प्राप्त करता है और यह सत्यापित करने के लिए कुछ नियमित अभिव्यक्तियाँ चलाता है कि यह वास्तविक वीडियो पृष्ठ है।

  http://www.youtube.com/watch?v=bQVoAWSP7k4  
 http://www.youtube.com/watch?v=bQVoAWSP7k4&feature=popular  
 http://www.youtube.com/watch?v=McNqjYiFmyQ&feature=related&bhablah  
 http://youtube.com/watch?v=bQVoAWSP7k4 
 var matches = $('#videoUrl').val().match(/http:\/\/(?:www\.)?youtube.*watch\?v=([a-zA-Z0-9\-_]+)/); if (matches) { alert('valid'); } else { alert('Invalid'); } 
 /** * Check youtube url, check video exists or not, * * @param $url full youtube video url * * @return string - yotube video id */ public static function checkYoutube($url) { if (preg_match('%(?:youtube(?:-nocookie)?\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i', $url, $match)) { $headers = get_headers('http://gdata.youtube.com/feeds/api/videos/' . $match[1]); if (strpos($headers[0], '200')) { return $match[1]; } return false; } return false; } 

संपर्क:

https://github.com/DimitriMikadze/php-helpers

मैंने यूट्यूब एपीआई का इस्तेमाल करके जांच की कि क्या यूट्यूब पर एक वीडियो मौजूद है या नहीं। मैंने PHP के लिए Google API क्लाइंट लाइब्रेरी डाउनलोड की है। मैंने निम्नलिखित फ़ंक्शन का इस्तेमाल किया:

 /** * Used to check if the given movie is availabe on youtube * * It uses youtube api and checks if given movie is available on youtube * If a movie is not available then it returns false * * @param string $youtube_video_url the youtube movie url * * @return boolean $is_available indicates if the given video is available on youtube */ private function IsMovieAvailable($youtube_video_url) { /** The autoload.php file is included */ include_once("autoload.php"); /** Is available is set to false */ $is_available = false; /** The youtube video id is extracted */ $video_id = str_replace("https://www.youtube.com/watch?v=", "", $youtube_video_url); $DEVELOPER_KEY = $google_api_key; $client = new \Google_Client(); $client->setDeveloperKey($DEVELOPER_KEY); // Define an object that will be used to make all API requests. $youtube = new \Google_Service_YouTube($client); // Call the search.list method to retrieve results matching the specified // query term. $searchResponse = $youtube->videos->listVideos('status', array('id' => $video_id)); /** Each item in the search results is checked */ foreach ($searchResponse['items'] as $video) { /** If the video id matches the given id then function returns true */ if ($video['id'] == $video_id) { $is_available = true; break; } } return $is_available; } 

आपको इस URL का अनुरोध करना चाहिए

 https://www.googleapis.com/youtube/v3/videos?id={the_id_of_the_video}&key={your_api_key}&part=status 

उसके बाद, आपको प्रतिसाद JSON प्राप्त होगा जिसमें uploadStatus फ़ील्ड है

 { etag = "\"I_8xdZu766_FSaexEaDXTIfEWc0/8QgL7Pcv5G8OwpNyKYJa8PaQTc0\""; items = ( { ... status = { embeddable = 1; license = youtube; privacyStatus = public; publicStatsViewable = 1; uploadStatus = processed; }; } ); ... } 

और uploadStatus लिए 5 संभावित मान हैं

हटाया गया, विफल, संसाधित, अस्वीकृत, अपलोड किया गया

uploadStatus = processed या uploaded => आपका यूट्यूब वीडियो उपलब्ध है