एपीआई अनुरोध में बताए गए क्वेरी पैरामीटर से मेल खाने वाले खोज के नतीजों का कलेक्शन दिखाता है. डिफ़ॉल्ट रूप से, खोज नतीजों का सेट, मिलते-जुलते video
, channel
, और playlist
संसाधनों की पहचान करता है. हालांकि, किसी खास तरह का संसाधन पाने के लिए भी क्वेरी को कॉन्फ़िगर किया जा सकता है.
कोटा पर असर: इस तरीके का इस्तेमाल करने पर 100 यूनिट का कोटा खर्च होता है.
इस्तेमाल के सामान्य उदाहरण
अनुरोध
एचटीटीपी अनुरोध
GET https://www.googleapis.com/youtube/v3/search
पैरामीटर
इस टेबल में वे पैरामीटर दिए गए हैं जो इस क्वेरी पर काम करते हैं. सूची में शामिल सभी पैरामीटर, क्वेरी पैरामीटर हैं.
पैरामीटर | ||
---|---|---|
ज़रूरी पैरामीटर | ||
part |
string part पैरामीटर, एक या इससे ज़्यादा search संसाधन प्रॉपर्टी की ऐसी सूची के बारे में बताता है जिसे कॉमा लगाकर अलग किया गया है. यह सूची, एपीआई के रिस्पॉन्स में शामिल होती है. पैरामीटर वैल्यू को snippet पर सेट करें.
|
|
फ़िल्टर (इनमें से 0 या 1 पैरामीटर बताएं) | ||
forContentOwner |
boolean इस पैरामीटर का इस्तेमाल सिर्फ़ अनुमति वाले अनुरोध में किया जा सकता है. यह खास तौर पर YouTube कॉन्टेंट पार्टनर के लिए है. forContentOwner पैरामीटर की मदद से, खोज के नतीजों में सिर्फ़ उन वीडियो को शामिल किया जा सकता है जिनका मालिकाना हक कॉन्टेंट के मालिक के पास है. इस पैरामीटर की पहचान onBehalfOfContentOwner पैरामीटर से हुई है. अगर forContentOwner को 'सही है' पर सेट किया गया है, तो अनुरोध को इन शर्तों के मुताबिक भी होना चाहिए:
|
|
forDeveloper |
boolean इस पैरामीटर का इस्तेमाल, सिर्फ़ सही तरीके से अनुमति वाले अनुरोध में किया जा सकता है. forDeveloper पैरामीटर, खोज को सीमित करता है, ताकि सिर्फ़ डेवलपर के ऐप्लिकेशन या वेबसाइट से अपलोड किए गए वीडियो वापस लाए जा सकें. एपीआई सर्वर, डेवलपर की पहचान करने के लिए, अनुरोध की पुष्टि करने वाले क्रेडेंशियल का इस्तेमाल करता है. forDeveloper पैरामीटर का इस्तेमाल, q पैरामीटर जैसे वैकल्पिक खोज पैरामीटर के साथ किया जा सकता है.इस सुविधा के लिए, अपलोड किया गया हर वीडियो, Google Developers Console में डेवलपर के ऐप्लिकेशन से जुड़े प्रोजेक्ट नंबर के साथ अपने-आप टैग हो जाता है. जब कोई खोज अनुरोध, बाद में forDeveloper पैरामीटर को true पर सेट करता है, तो डेवलपर की पहचान करने के लिए एपीआई सर्वर, अनुरोध के क्रेडेंशियल का इस्तेमाल करता है. इसलिए, डेवलपर नतीजों को डेवलपर के ऐप्लिकेशन या वेबसाइट से अपलोड किए गए वीडियो तक सीमित कर सकता है, लेकिन अन्य ऐप्लिकेशन या साइटों से अपलोड किए गए वीडियो तक नहीं. |
|
forMine |
boolean इस पैरामीटर का इस्तेमाल, सिर्फ़ सही तरीके से अनुमति वाले अनुरोध में किया जा सकता है. forMine पैरामीटर की मदद से, खोज के नतीजों में सिर्फ़ वही वीडियो वापस लाए जा सकते हैं जिनके मालिकाना हक की पुष्टि हो चुकी है. अगर इस पैरामीटर को true पर सेट किया जाता है, तो type पैरामीटर की वैल्यू भी video पर सेट होनी चाहिए. इसके अलावा, उसी अनुरोध में इनमें से कोई भी अन्य पैरामीटर सेट नहीं किया जा सकता: videoDefinition , videoDimension , videoDuration , videoEmbeddable , videoLicense , videoPaidProductPlacement , videoSyndicated , videoType . |
|
वैकल्पिक पैरामीटर | ||
channelId |
string channelId पैरामीटर से पता चलता है कि एपीआई से मिले रिस्पॉन्स में सिर्फ़ चैनल के बनाए गए संसाधन शामिल होने चाहिए. ध्यान दें: अगर आपका अनुरोध channelId पैरामीटर के लिए कोई वैल्यू तय करता है और type पैरामीटर की वैल्यू को video पर सेट करता है, लेकिन यह forContentOwner , forDeveloper या forMine फ़िल्टर में से किसी एक को भी सेट नहीं करता है, तो खोज के नतीजों में ज़्यादा से ज़्यादा 500 वीडियो शामिल किए जा सकते हैं. |
|
channelType |
string channelType पैरामीटर की मदद से, खोज को किसी खास तरह के चैनल तक सीमित किया जा सकता है.ये वैल्यू स्वीकार की जाती हैं:
|
|
eventType |
string eventType पैरामीटर, किसी खोज को इवेंट ब्रॉडकास्ट करने से रोकता है. अगर इस पैरामीटर के लिए कोई वैल्यू तय की जाती है, तो आपको type पैरामीटर की वैल्यू भी video पर सेट करनी होगी.इन वैल्यू को स्वीकार किया जाता है:
|
|
location |
string locationRadius पैरामीटर के साथ location पैरामीटर, किसी सर्कुलर भौगोलिक क्षेत्र के बारे में बताता है. साथ ही, किसी खोज के लिए वीडियो खोजने पर पाबंदी लगा देता है. इसके मेटाडेटा में यह बताया जाता है कि वीडियो किस इलाके में आता है. पैरामीटर वैल्यू एक ऐसी स्ट्रिंग है जो अक्षांश/देशांतर निर्देशांक की जानकारी देती है, जैसे कि (37.42307,-122.08427 ).
location पैरामीटर के लिए कोई वैल्यू तय करता है, लेकिन locationRadius पैरामीटर के लिए कोई वैल्यू नहीं बताता, तो एपीआई गड़बड़ी वाला मैसेज दिखाता है.ध्यान दें: इस पैरामीटर के लिए कोई वैल्यू तय करने पर, आपको type पैरामीटर की वैल्यू video पर सेट करनी होगी.
| |
locationRadius |
string location पैरामीटर के साथ locationRadius पैरामीटर, सर्कुलर भौगोलिक क्षेत्र के बारे में बताता है.पैरामीटर की वैल्यू, फ़्लोटिंग पॉइंट नंबर के बाद मेज़रमेंट यूनिट होनी चाहिए. मेज़रमेंट की मान्य यूनिट m , km , ft , और mi हैं. उदाहरण के लिए, पैरामीटर की मान्य वैल्यू में 1500m , 5km , 10000ft , और 0.75mi शामिल हैं. एपीआई, 1,000 किलोमीटर से बड़े locationRadius पैरामीटर वैल्यू के साथ काम नहीं करता.ध्यान दें: ज़्यादा जानकारी के लिए, location पैरामीटर की परिभाषा देखें. |
|
maxResults |
unsigned integer maxResults पैरामीटर से यह तय होता है कि ज़्यादा से ज़्यादा कितने आइटम, नतीजे के सेट में दिखाए जाने चाहिए. स्वीकार किए जाने वाले मान 0 से 50 तक हैं, जिसमें ये दोनों भी शामिल हैं. डिफ़ॉल्ट वैल्यू 5 है. |
|
onBehalfOfContentOwner |
string इस पैरामीटर का इस्तेमाल, सिर्फ़ सही तरीके से अनुमति वाले अनुरोध में किया जा सकता है. ध्यान दें: यह पैरामीटर खास तौर पर YouTube कॉन्टेंट पार्टनर के लिए है. onBehalfOfContentOwner पैरामीटर से पता चलता है कि अनुरोध की अनुमति देने वाले क्रेडेंशियल, YouTube सीएमएस के किसी ऐसे उपयोगकर्ता की पहचान करते हैं जो पैरामीटर वैल्यू में बताए गए कॉन्टेंट के मालिक की ओर से काम कर रहा है. यह पैरामीटर उन YouTube कॉन्टेंट पार्टनर के लिए है जिनके पास कई अलग-अलग YouTube चैनलों का मालिकाना हक होता है और उन्हें मैनेज करने का अधिकार होता है. इससे कॉन्टेंट के मालिकों को एक बार पुष्टि करने के साथ-साथ, अपने वीडियो और चैनल के पूरे डेटा का ऐक्सेस मिल जाता है. इसके लिए, उन्हें हर चैनल के लिए पुष्टि करने वाले क्रेडेंशियल देने की ज़रूरत नहीं पड़ती. उपयोगकर्ता जिस कॉन्टेंट मैनेजमेंट सिस्टम से पुष्टि करता है वह खाता, YouTube कॉन्टेंट के उस मालिक से जुड़ा होना चाहिए. |
|
order |
string order पैरामीटर उस तरीके के बारे में बताता है जिसका इस्तेमाल, एपीआई के रिस्पॉन्स में संसाधनों को ऑर्डर करने के लिए किया जाएगा. डिफ़ॉल्ट वैल्यू relevance है.ये वैल्यू स्वीकार की जाती हैं:
|
|
pageToken |
string pageToken पैरामीटर, नतीजे के सेट में उस खास पेज की पहचान करता है जिसे दिखाया जाना चाहिए. एपीआई के रिस्पॉन्स में, nextPageToken और prevPageToken प्रॉपर्टी ऐसे अन्य पेजों की पहचान करती हैं जिन्हें वापस पाया जा सकता है. |
|
publishedAfter |
datetime publishedAfter पैरामीटर से पता चलता है कि एपीआई से मिले रिस्पॉन्स में, सिर्फ़ तय किए गए समय पर या उसके बाद बनाए गए संसाधन शामिल होने चाहिए. यह वैल्यू, RFC 3339 फ़ॉर्मैट में दी गई तारीख और समय की वैल्यू (1970-01-01T00:00:00Z) है. |
|
publishedBefore |
datetime publishedBefore पैरामीटर से पता चलता है कि एपीआई से मिले रिस्पॉन्स में, सिर्फ़ तय किए गए समय या पहले बनाए गए संसाधन शामिल होने चाहिए. यह वैल्यू, RFC 3339 फ़ॉर्मैट में दी गई तारीख और समय की वैल्यू (1970-01-01T00:00:00Z) है. |
|
q |
string q पैरामीटर से, क्वेरी के लिए इस्तेमाल किए जाने वाले शब्द के बारे में पता चलता है.वीडियो हटाने या खोज के लिए इस्तेमाल हुए कई शब्दों में से किसी एक से जुड़े वीडियो ढूंढने के लिए, आपका अनुरोध बूलियन NOT ( - ) और OR (| ) ऑपरेटर का इस्तेमाल कर सकता है. उदाहरण के लिए, "बोटिंग" या "सेलिंग" से मिलते-जुलते वीडियो खोजने के लिए, q पैरामीटर वैल्यू को boating|sailing पर सेट करें. इसी तरह, "बोटिंग" या "सेलिंग" से मिलते-जुलते वीडियो खोजने के लिए, "फ़िशिंग" के बजाय, q पैरामीटर की वैल्यू को boating|sailing -fishing पर सेट करें. ध्यान दें कि एपीआई अनुरोध में भेजे जाने पर, पाइप कैरेक्टर को यूआरएल-एस्केप्ड किया जाना चाहिए. पाइप वर्ण के लिए, यूआरएल-एस्केप्ड वैल्यू %7C है. |
|
regionCode |
string regionCode पैरामीटर, एपीआई को ऐसे वीडियो के खोज के नतीजे दिखाने का निर्देश देता है जिन्हें चुने गए देश में देखा जा सकता है. पैरामीटर की वैल्यू, ISO 3166-1 alpha-2 देश का कोड होती है. |
|
relevanceLanguage |
string relevanceLanguage पैरामीटर, एपीआई को उस भाषा के खोज के नतीजे दिखाने का निर्देश देता है जो आपकी चुनी गई भाषा के हिसाब से सबसे ज़्यादा काम के हों. आम तौर पर, पैरामीटर की वैल्यू एक ISO 639-1 दो अक्षर वाला भाषा कोड होता है. हालांकि, आपको सिंप्लिफ़ाइड चाइनीज़ के लिए zh-Hans और ट्रेडिशनल चाइनीज़ के लिए zh-Hant वैल्यू का इस्तेमाल करना चाहिए. कृपया ध्यान दें कि अगर खोज क्वेरी के लिए इस्तेमाल किए गए शब्द ज़्यादा काम के हैं, तो दूसरी भाषाओं में भी नतीजे दिखाए जाएंगे. |
|
safeSearch |
string safeSearch पैरामीटर से पता चलता है कि खोज के नतीजों में, प्रतिबंधित कॉन्टेंट के साथ-साथ स्टैंडर्ड कॉन्टेंट भी शामिल होना चाहिए या नहीं.ये वैल्यू स्वीकार की जाती हैं:
|
|
topicId |
string topicId पैरामीटर से पता चलता है कि एपीआई से मिले रिस्पॉन्स में, सिर्फ़ बताए गए विषय से जुड़े संसाधन शामिल होने चाहिए. यह वैल्यू, Freebase विषय के आईडी की पहचान करती है.अहम जानकारी: Freebase और Freebase API के बंद होने की वजह से, 27 फ़रवरी, 2017 से topicId पैरामीटर ने अलग तरीके से काम करना शुरू कर दिया है. इसके बाद, YouTube ने चुनिंदा विषय आईडी के एक छोटे सेट का इस्तेमाल शुरू किया. साथ ही, इस पैरामीटर की वैल्यू के तौर पर आईडी के उस छोटे सेट का ही इस्तेमाल किया जा सकता है. |
|
type |
string type पैरामीटर किसी खोज क्वेरी को इस तरह से प्रतिबंधित करता है कि सिर्फ़ किसी खास तरह का संसाधन वापस पाया जा सके. यह वैल्यू, रिसॉर्स टाइप की एक सूची होती है, जिसे कॉमा लगाकर अलग किया जाता है. डिफ़ॉल्ट वैल्यू video,channel,playlist है.ये वैल्यू स्वीकार की जाती हैं:
|
|
videoCaption |
string videoCaption पैरामीटर से यह पता चलता है कि एपीआई को वीडियो से जुड़े खोज के नतीजों को, इस आधार पर फ़िल्टर करना चाहिए कि उनमें कैप्शन हैं या नहीं. अगर इस पैरामीटर के लिए कोई वैल्यू तय की जाती है, तो आपको type पैरामीटर की वैल्यू भी video पर सेट करनी होगी.इन वैल्यू को स्वीकार किया जाता है:
|
|
videoCategoryId |
string videoCategoryId पैरामीटर, वीडियो के खोज नतीजों को उनकी कैटगरी के हिसाब से फ़िल्टर करता है. अगर इस पैरामीटर के लिए कोई वैल्यू तय की जाती है, तो आपको type पैरामीटर की वैल्यू को भी video पर सेट करना होगा. |
|
videoDefinition |
string videoDefinition पैरामीटर की मदद से, खोज के नतीजों में सिर्फ़ हाई डेफ़िनिशन (एचडी) या स्टैंडर्ड डेफ़िनिशन (एसडी) वाले वीडियो शामिल किए जा सकते हैं. एचडी वीडियो कम से कम 720 पिक्सल में चलाए जा सकते हैं. हालांकि, ज़्यादा रिज़ॉल्यूशन, जैसे कि 1080 पिक्सल भी उपलब्ध हो सकते हैं. अगर इस पैरामीटर के लिए कोई वैल्यू तय की जाती है, तो आपको type पैरामीटर की वैल्यू भी video पर सेट करनी होगी.इन वैल्यू को स्वीकार किया जाता है:
|
|
videoDimension |
string videoDimension पैरामीटर की मदद से, किसी खोज को सिर्फ़ 2D या 3D वीडियो तक सीमित किया जा सकता है. अगर इस पैरामीटर के लिए कोई वैल्यू तय की जाती है, तो आपको type पैरामीटर की वैल्यू भी video पर सेट करनी होगी.इन वैल्यू को स्वीकार किया जाता है:
|
|
videoDuration |
string videoDuration पैरामीटर, वीडियो की अवधि के आधार पर खोज के नतीजों को फ़िल्टर करता है. अगर इस पैरामीटर के लिए कोई वैल्यू तय की जाती है, तो आपको type पैरामीटर की वैल्यू भी video पर सेट करनी होगी.इन वैल्यू को स्वीकार किया जाता है:
|
|
videoEmbeddable |
string videoEmbeddable पैरामीटर की मदद से, खोज के नतीजों में सिर्फ़ उन वीडियो को शामिल किया जा सकता है जिन्हें वेबपेज में एम्बेड किया जा सकता है. अगर इस पैरामीटर के लिए कोई वैल्यू तय की जाती है, तो आपको type पैरामीटर की वैल्यू भी video पर सेट करनी होगी.इन वैल्यू को स्वीकार किया जाता है:
|
|
videoLicense |
string videoLicense पैरामीटर, खोज के नतीजों को फ़िल्टर करता है, ताकि सिर्फ़ खास लाइसेंस वाले वीडियो शामिल किए जा सकें. YouTube, वीडियो अपलोड करने वालों को अपने हर वीडियो में क्रिएटिव कॉमंस लाइसेंस या YouTube का स्टैंडर्ड लाइसेंस अटैच करने का विकल्प देता है. अगर इस पैरामीटर के लिए कोई वैल्यू तय की जाती है, तो आपको type पैरामीटर की वैल्यू भी video पर सेट करनी होगी.इन वैल्यू को स्वीकार किया जाता है:
|
|
videoPaidProductPlacement |
string videoPaidProductPlacement पैरामीटर खोज के नतीजों
को फ़िल्टर करके, सिर्फ़ ऐसे वीडियो शामिल करता है जिन्हें क्रिएटर ने पैसे लेकर प्रमोशन करने के तौर पर दिखाया है. अगर इस पैरामीटर के लिए
कोई वैल्यू तय की जाती है, तो आपको type
पैरामीटर की वैल्यू भी video पर सेट करनी होगी.ये वैल्यू स्वीकार की जाती हैं:
|
|
videoSyndicated |
string videoSyndicated पैरामीटर की मदद से, खोज के नतीजों में सिर्फ़ उन वीडियो को शामिल किया जा सकता है जिन्हें youtube.com पर चलाया जा सकता है. इस पैरामीटर के लिए कोई वैल्यू तय करने पर, type पैरामीटर की वैल्यू को भी video पर सेट करना होगा.ये वैल्यू स्वीकार की जाती हैं:
|
|
videoType |
string videoType पैरामीटर की मदद से, खोज को किसी खास तरह के वीडियो के लिए सीमित किया जा सकता है. अगर इस पैरामीटर के लिए कोई वैल्यू तय की जाती है, तो आपको type पैरामीटर की वैल्यू भी video पर सेट करनी होगी.इन वैल्यू को स्वीकार किया जाता है:
|
अनुरोध का मुख्य भाग
इस तरीके को कॉल करते समय, अनुरोध का मुख्य हिस्सा न दें.
जवाब
अगर यह तरीका काम करता है, तो यह इस स्ट्रक्चर का इस्तेमाल करके रिस्पॉन्स का मुख्य हिस्सा दिखाता है:
{ "kind": "youtube#searchListResponse", "etag": etag, "nextPageToken": string, "prevPageToken": string, "regionCode": string, "pageInfo": { "totalResults": integer, "resultsPerPage": integer }, "items": [ search Resource ] }
प्रॉपर्टी
नीचे दी गई टेबल में, खोज के नतीजों में दिखने वाली प्रॉपर्टी के बारे में बताया गया है:
प्रॉपर्टी | |
---|---|
kind |
string इससे पता चलता है कि एपीआई रिसॉर्स किस तरह का है. मान youtube#searchListResponse होगा. |
etag |
etag इस संसाधन का ईटैग. |
nextPageToken |
string नतीजे के सेट का अगला पेज वापस पाने के लिए, pageToken पैरामीटर की वैल्यू के तौर पर इस्तेमाल किया जा सकने वाला टोकन. |
prevPageToken |
string नतीजे के सेट में पिछले पेज को वापस पाने के लिए, pageToken पैरामीटर की वैल्यू के तौर पर इस्तेमाल किया जा सकने वाला टोकन. |
regionCode |
string क्षेत्र का वह कोड जिसका इस्तेमाल खोज क्वेरी के लिए किया गया था. प्रॉपर्टी की वैल्यू, आईएसओ के हिसाब से दो अक्षरों वाला देश कोड है, जिससे इलाके की पहचान होती है. i18nRegions.list वाला तरीका, उन इलाकों की सूची दिखाता है जहां यह सुविधा काम करती है. डिफ़ॉल्ट वैल्यू US है. अगर किसी ऐसे क्षेत्र के बारे में बताया गया है जहां यह सुविधा काम नहीं करती, तो YouTube क्वेरी को हैंडल करने के लिए, डिफ़ॉल्ट वैल्यू के बजाय किसी दूसरे क्षेत्र को चुन सकता है. |
pageInfo |
object pageInfo ऑब्जेक्ट, नतीजे के सेट के लिए पेजिंग की जानकारी इकट्ठा करता है. |
pageInfo.totalResults |
integer नतीजे के सेट में नतीजों की कुल संख्या. कृपया ध्यान दें कि यह वैल्यू अनुमानित होती है. ऐसा हो सकता है कि यह सटीक वैल्यू न हो. इसके अलावा, वैल्यू के तौर पर 10,00,000 से ज़्यादा वैल्यू नहीं डाली जा सकती. पेज पर नंबर डालने वाले लिंक बनाने के लिए, आपको इस वैल्यू का इस्तेमाल नहीं करना चाहिए. इसके बजाय, nextPageToken और prevPageToken प्रॉपर्टी की वैल्यू का इस्तेमाल करके, यह तय करें कि पेज पर नंबर डालने वाले लिंक दिखाने हैं या नहीं. |
pageInfo.resultsPerPage |
integer एपीआई से मिले रिस्पॉन्स में शामिल नतीजों की संख्या. |
items[] |
list खोज की शर्तों से मेल खाने वाले नतीजों की सूची. |
उदाहरण
ध्यान दें: हो सकता है कि यहां दिए गए कोड सैंपल, इस्तेमाल की जा सकने वाली सभी प्रोग्रामिंग भाषाओं को न दिखाते हों. इस्तेमाल की जा सकने वाली भाषाओं की सूची देखने के लिए, क्लाइंट लाइब्रेरी के दस्तावेज़ देखें.
Apps Script
यह फ़ंक्शन, 'कुत्ते' कीवर्ड से जुड़े वीडियो खोजता है. खोज के नतीजों के वीडियो आईडी और टाइटल, Apps Script के लॉग में लॉग किए जाते हैं.ध्यान दें कि इस सैंपल से सिर्फ़ 25 नतीजे मिलते हैं. ज़्यादा नतीजे देने के लिए, यहां बताए गए अतिरिक्त पैरामीटर पास करें: https://developers.google.com/youtube/v3/docs/search/list
function searchByKeyword() { var results = YouTube.Search.list('id,snippet', {q: 'dogs', maxResults: 25}); for(var i in results.items) { var item = results.items[i]; Logger.log('[%s] Title: %s', item.id.videoId, item.snippet.title); } }
शुरू करें
यह कोड सैंपल, किसी खास कीवर्ड से जुड़े खोज के नतीजे पाने के लिए, एपीआई केsearch.list
तरीके को कॉल करता है.
इस उदाहरण में, Go क्लाइंट लाइब्रेरी का इस्तेमाल किया गया है.
package main import ( "flag" "fmt" "log" "net/http" "google.golang.org/api/googleapi/transport" "google.golang.org/api/youtube/v3" ) var ( query = flag.String("query", "Google", "Search term") maxResults = flag.Int64("max-results", 25, "Max YouTube results") ) const developerKey = "YOUR DEVELOPER KEY" func main() { flag.Parse() client := &http.Client{ Transport: &transport.APIKey{Key: developerKey}, } service, err := youtube.New(client) if err != nil { log.Fatalf("Error creating new YouTube client: %v", err) } // Make the API call to YouTube. call := service.Search.List("id,snippet"). Q(*query). MaxResults(*maxResults) response, err := call.Do() handleError(err, "") // Group video, channel, and playlist results in separate lists. videos := make(map[string]string) channels := make(map[string]string) playlists := make(map[string]string) // Iterate through each item and add it to the correct list. for _, item := range response.Items { switch item.Id.Kind { case "youtube#video": videos[item.Id.VideoId] = item.Snippet.Title case "youtube#channel": channels[item.Id.ChannelId] = item.Snippet.Title case "youtube#playlist": playlists[item.Id.PlaylistId] = item.Snippet.Title } } printIDs("Videos", videos) printIDs("Channels", channels) printIDs("Playlists", playlists) } // Print the ID and title of each result in a list as well as a name that // identifies the list. For example, print the word section name "Videos" // above a list of video search results, followed by the video ID and title // of each matching video. func printIDs(sectionName string, matches map[string]string) { fmt.Printf("%v:\n", sectionName) for id, title := range matches { fmt.Printf("[%v] %v\n", id, title) } fmt.Printf("\n\n") }
.NET
नीचे दिया गया कोड सैंपल, किसी खास कीवर्ड से जुड़े खोज के नतीजे पाने के लिए, एपीआई केsearch.list
तरीके को कॉल करता है.
इस उदाहरण में, .NET क्लाइंट लाइब्रेरी का इस्तेमाल किया गया है.
using System; using System.Collections.Generic; using System.IO; using System.Reflection; using System.Threading; using System.Threading.Tasks; using Google.Apis.Auth.OAuth2; using Google.Apis.Services; using Google.Apis.Upload; using Google.Apis.Util.Store; using Google.Apis.YouTube.v3; using Google.Apis.YouTube.v3.Data; namespace Google.Apis.YouTube.Samples { /// <summary> /// YouTube Data API v3 sample: search by keyword. /// Relies on the Google APIs Client Library for .NET, v1.7.0 or higher. /// See https://developers.google.com/api-client-library/dotnet/get_started /// /// Set ApiKey to the API key value from the APIs & auth > Registered apps tab of /// https://cloud.google.com/console /// Please ensure that you have enabled the YouTube Data API for your project. /// </summary> internal class Search { [STAThread] static void Main(string[] args) { Console.WriteLine("YouTube Data API: Search"); Console.WriteLine("========================"); try { new Search().Run().Wait(); } catch (AggregateException ex) { foreach (var e in ex.InnerExceptions) { Console.WriteLine("Error: " + e.Message); } } Console.WriteLine("Press any key to continue..."); Console.ReadKey(); } private async Task Run() { var youtubeService = new YouTubeService(new BaseClientService.Initializer() { ApiKey = "REPLACE_ME", ApplicationName = this.GetType().ToString() }); var searchListRequest = youtubeService.Search.List("snippet"); searchListRequest.Q = "Google"; // Replace with your search term. searchListRequest.MaxResults = 50; // Call the search.list method to retrieve results matching the specified query term. var searchListResponse = await searchListRequest.ExecuteAsync(); List<string> videos = new List<string>(); List<string> channels = new List<string>(); List<string> playlists = new List<string>(); // Add each result to the appropriate list, and then display the lists of // matching videos, channels, and playlists. foreach (var searchResult in searchListResponse.Items) { switch (searchResult.Id.Kind) { case "youtube#video": videos.Add(String.Format("{0} ({1})", searchResult.Snippet.Title, searchResult.Id.VideoId)); break; case "youtube#channel": channels.Add(String.Format("{0} ({1})", searchResult.Snippet.Title, searchResult.Id.ChannelId)); break; case "youtube#playlist": playlists.Add(String.Format("{0} ({1})", searchResult.Snippet.Title, searchResult.Id.PlaylistId)); break; } } Console.WriteLine(String.Format("Videos:\n{0}\n", string.Join("\n", videos))); Console.WriteLine(String.Format("Channels:\n{0}\n", string.Join("\n", channels))); Console.WriteLine(String.Format("Playlists:\n{0}\n", string.Join("\n", playlists))); } } }
Ruby
यह सैंपल, किसी खास कीवर्ड से जुड़े खोज के नतीजे पाने के लिए, एपीआई केsearch.list
तरीके को कॉल करता है.
इस उदाहरण में, Ruby क्लाइंट लाइब्रेरी का इस्तेमाल किया गया है.
#!/usr/bin/ruby require 'rubygems' gem 'google-api-client', '>0.7' require 'google/api_client' require 'trollop' # Set DEVELOPER_KEY to the API key value from the APIs & auth > Credentials # tab of # {{ Google Cloud Console }} <{{ https://cloud.google.com/console }}> # Please ensure that you have enabled the YouTube Data API for your project. DEVELOPER_KEY = 'REPLACE_ME' YOUTUBE_API_SERVICE_NAME = 'youtube' YOUTUBE_API_VERSION = 'v3' def get_service client = Google::APIClient.new( :key => DEVELOPER_KEY, :authorization => nil, :application_name => $PROGRAM_NAME, :application_version => '1.0.0' ) youtube = client.discovered_api(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION) return client, youtube end def main opts = Trollop::options do opt :q, 'Search term', :type => String, :default => 'Google' opt :max_results, 'Max results', :type => :int, :default => 25 end client, youtube = get_service begin # Call the search.list method to retrieve results matching the specified # query term. search_response = client.execute!( :api_method => youtube.search.list, :parameters => { :part => 'snippet', :q => opts[:q], :maxResults => opts[:max_results] } ) videos = [] channels = [] playlists = [] # Add each result to the appropriate list, and then display the lists of # matching videos, channels, and playlists. search_response.data.items.each do |search_result| case search_result.id.kind when 'youtube#video' videos << "#{search_result.snippet.title} (#{search_result.id.videoId})" when 'youtube#channel' channels << "#{search_result.snippet.title} (#{search_result.id.channelId})" when 'youtube#playlist' playlists << "#{search_result.snippet.title} (#{search_result.id.playlistId})" end end puts "Videos:\n", videos, "\n" puts "Channels:\n", channels, "\n" puts "Playlists:\n", playlists, "\n" rescue Google::APIClient::TransmissionError => e puts e.result.body end end main
गड़बड़ियां
नीचे दी गई टेबल में गड़बड़ी के ऐसे मैसेज की पहचान की गई है जिन्हें एपीआई इस तरीके को कॉल करने पर जवाब दे सकता है. ज़्यादा जानकारी के लिए, कृपया गड़बड़ी के मैसेज का दस्तावेज़ देखें.
गड़बड़ी का टाइप | गड़बड़ी की जानकारी | ब्यौरा |
---|---|---|
badRequest (400) |
invalidChannelId |
channelId पैरामीटर ने एक अमान्य चैनल आईडी दिया है. |
badRequest (400) |
invalidLocation |
location और/या locationRadius पैरामीटर वैल्यू को गलत तरीके से फ़ॉर्मैट किया गया था. |
badRequest (400) |
invalidRelevanceLanguage |
relevanceLanguage पैरामीटर की वैल्यू गलत तरीके से फ़ॉर्मैट की गई थी. |
badRequest (400) |
invalidSearchFilter |
अनुरोध में खोज फ़िल्टर और/या पाबंदियों का एक अमान्य कॉम्बिनेशन है. ध्यान दें कि अगर forContentOwner या forMine पैरामीटर को true पर सेट किया जाता है, तो आपको type पैरामीटर को video पर सेट करना होगा. अगर eventType , videoCaption , videoCategoryId , videoDefinition , videoDimension , videoDuration , videoEmbeddable , videoLicense , videoSyndicated या videoType पैरामीटर के लिए वैल्यू सेट की जाती है, तो आपको type पैरामीटर को video पर भी सेट करना होगा. |
इसे आज़माएं!
इस एपीआई को कॉल करने के लिए, APIs Explorer का इस्तेमाल करें. साथ ही, एपीआई अनुरोध और रिस्पॉन्स देखें.