यह एपीआई के अनुरोध में बताए गए क्वेरी पैरामीटर से मैच करने वाले खोज के नतीजों का कलेक्शन दिखाता है. डिफ़ॉल्ट रूप से, खोज के नतीजों का एक सेट, 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 के नतीजों में ज़्यादा से ज़्यादा 500 वीडियो तक सीमित किए जा सकते हैं. हालांकि, यह type पैरामीटर वैल्यू को video पर सेट करता है, लेकिन forContentOwner , forDeveloper या forMine में से कोई एक फ़िल्टर सेट नहीं करता. |
|
channelType |
string channelType पैरामीटर का इस्तेमाल करके, किसी खास तरह के चैनल पर खोज करने से रोका जा सकता है.ये वैल्यू स्वीकार की जाती हैं:
|
|
eventType |
string eventType पैरामीटर किसी खोज को ब्रॉडकास्ट इवेंट तक सीमित करता है. इस पैरामीटर के लिए वैल्यू तय करने पर, आपको type पैरामीटर की वैल्यू video पर भी सेट करनी होगी.ये वैल्यू स्वीकार की जाती हैं:
|
|
location |
string location पैरामीटर, locationRadius पैरामीटर के साथ मिलकर, एक सर्कुलर भौगोलिक जगह के बारे में बताता है. साथ ही, खोज के उन वीडियो पर रोक लगा देता है जिनके मेटाडेटा की जानकारी उस मेटाडेटा में दी जाती है जो उस इलाके में आता है. पैरामीटर वैल्यू एक ऐसी स्ट्रिंग होती है जिसमें अक्षांश/देशांतर निर्देशांक तय होते हैं, जैसे कि 37.42307,-122.08427 .
location पैरामीटर के लिए वैल्यू तय करता है, लेकिन एपीआई पैरामीटर के लिए कोई वैल्यू तय नहीं करता है, तो एपीआई गड़बड़ी दिखाता है.ध्यान दें: इस पैरामीटर के लिए कोई वैल्यू तय करने पर, आपको type पैरामीटर की वैल्यू video पर भी सेट करनी होगी.locationRadius
| |
locationRadius |
string locationRadius पैरामीटर, location पैरामीटर के साथ, सर्कुलर भौगोलिक जगह की जानकारी देता है.पैरामीटर वैल्यू, फ़्लोटिंग पॉइंट नंबर में होना चाहिए और उसके बाद मेज़रमेंट यूनिट होनी चाहिए. m , km , ft , और mi जैसे मान्य मेज़रमेंट यूनिट हैं. उदाहरण के लिए, मान्य पैरामीटर वैल्यू में 1500m , 5km , 10000ft , और 0.75mi शामिल हैं. एपीआई 1000 किलोमीटर से बड़े locationRadius पैरामीटर वैल्यू के साथ काम नहीं करता.ध्यान दें: ज़्यादा जानकारी के लिए, location पैरामीटर की परिभाषा देखें. |
|
maxResults |
unsigned integer maxResults पैरामीटर से पता चलता है कि नतीजे वाले सेट में कितने आइटम लौटाने हैं. 0 से 50 तक की वैल्यू स्वीकार की जाती है. डिफ़ॉल्ट वैल्यू 5 है. |
|
onBehalfOfContentOwner |
string इस पैरामीटर का इस्तेमाल सिर्फ़ सही अनुमति वाले अनुरोध में किया जा सकता है. ध्यान दें: यह पैरामीटर खास तौर पर YouTube कॉन्टेंट पार्टनर के लिए बनाया गया है. onBehalfOfContentOwner पैरामीटर से पता चलता है कि अनुरोध की पुष्टि के लिए क्रेडेंशियल, ऐसे YouTube कॉन्टेंट मैनेजमेंट सिस्टम के उपयोगकर्ता की पहचान करते हैं जो पैरामीटर वैल्यू में बताए गए कॉन्टेंट के मालिक की ओर से काम करता है. यह पैरामीटर उन YouTube कॉन्टेंट पार्टनर के लिए है जो कई अलग-अलग YouTube चैनलों के मालिक हैं और उन्हें मैनेज करते हैं. इस सुविधा की मदद से, कॉन्टेंट के मालिक एक बार में पुष्टि कर सकते हैं. साथ ही, उन्हें अपने हर वीडियो और चैनल के डेटा का ऐक्सेस मिल सकता है. इसके लिए, उन्हें हर चैनल के लिए पुष्टि करने के क्रेडेंशियल देने की ज़रूरत नहीं होगी. उपयोगकर्ता जिस सीएमएस खाते की मदद से पुष्टि करता है वह उस कॉन्टेंट के मालिक से लिंक होना चाहिए. |
|
order |
string order पैरामीटर से, एपीआई के जवाब में संसाधनों का क्रम तय करने के तरीके के बारे में पता चलता है. डिफ़ॉल्ट वैल्यू relevance है.इन वैल्यू को स्वीकार किया जाता है:
|
|
pageToken |
string pageToken पैरामीटर, नतीजे के सेट में मौजूद ऐसे खास पेज की पहचान करता है जिसे दिखाना है. एपीआई से मिले रिस्पॉन्स में, nextPageToken और prevPageToken प्रॉपर्टी से, उन दूसरे पेजों की पहचान की जाती है जिन्हें वापस लाया जा सकता है. |
|
publishedAfter |
datetime publishedAfter पैरामीटर से पता चलता है कि एपीआई रिस्पॉन्स में सिर्फ़ तय किए गए समय पर या बाद में बनाए गए संसाधन शामिल होने चाहिए. यह वैल्यू, आरएफ़सी 3339 फ़ॉर्मैट की हुई तारीख और समय की वैल्यू (1970-01-01T00:00:00Z) है. |
|
publishedBefore |
datetime publishedBefore पैरामीटर से पता चलता है कि एपीआई रिस्पॉन्स में सिर्फ़ तय किए गए समय पर या उससे पहले बनाए गए संसाधन शामिल होने चाहिए. यह वैल्यू, आरएफ़सी 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 ऐल्फ़ा-2 देश कोड होती है. |
|
relevanceLanguage |
string relevanceLanguage पैरामीटर, एपीआई को खोज के ऐसे नतीजे दिखाने के लिए निर्देश देता है जो किसी खास भाषा में काम के हों. आम तौर पर, पैरामीटर की वैल्यू ISO 639-1 दो अक्षर वाला भाषा कोड होती है. हालांकि, सिंप्लिफ़ाइड चाइनीज़ और zh-Hant के लिए, सामान्य चाइनीज़ के लिए zh-Hans वैल्यू का इस्तेमाल करना चाहिए. कृपया ध्यान दें कि अगर खोज के लिए इस्तेमाल हुए शब्द, खोज क्वेरी के हिसाब से ज़्यादा काम के हैं, तो अन्य भाषाओं में भी नतीजे दिखेंगे. |
|
safeSearch |
string safeSearch पैरामीटर से पता चलता है कि खोज के नतीजों में प्रतिबंधित कॉन्टेंट के साथ-साथ, स्टैंडर्ड कॉन्टेंट भी शामिल होना चाहिए.ये वैल्यू स्वीकार की जाती हैं:
|
|
topicId |
string topicId पैरामीटर से पता चलता है कि एपीआई के रिस्पॉन्स में सिर्फ़ किसी खास विषय से जुड़े संसाधन ही शामिल होने चाहिए. इस वैल्यू की मदद से, Freebase के विषय का आईडी पता चलता है.अहम जानकारी: Freebase और Freebase API के बंद होने की वजह से, topicId पैरामीटर 27 फ़रवरी, 2017 से अलग तरीके से काम करना शुरू कर दिया है. उस समय, 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 पैरामीटर का इस्तेमाल करके, किसी खोज पर सिर्फ़ 3D या 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 क्षेत्र का वह कोड जिसका इस्तेमाल खोज क्वेरी के लिए किया गया था. प्रॉपर्टी की वैल्यू, दो अक्षरों वाला ISO देश कोड होता है, जो इलाके की पहचान करता है. 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 का इस्तेमाल करें.