अहम जानकारी: इस तरीके के लिए एपीआई अनुरोधों को अब https://www.googleapis.com/auth/youtube.readonly
स्कोप का ऐक्सेस चाहिए.
इस तरीके से, Analytics की कई अलग-अलग रिपोर्ट वापस पाई जा सकती हैं. हर अनुरोध में क्वेरी पैरामीटर का इस्तेमाल किया जाता है. इससे चैनल आईडी या कॉन्टेंट के मालिक, शुरू होने की तारीख, खत्म होने की तारीख, और कम से कम एक मेट्रिक के बारे में जानकारी मिलती है. आपके पास क्वेरी के अन्य पैरामीटर भी उपलब्ध कराने का विकल्प होता है. जैसे, डाइमेंशन, फ़िल्टर, और क्रम से लगाने के निर्देश.
- मेट्रिक, उपयोगकर्ता की गतिविधि का अलग-अलग मेज़रमेंट होती हैं. जैसे, वीडियो व्यू या रेटिंग (पसंद और नापसंद).
- डाइमेंशन ऐसे सामान्य मानदंड होते हैं जिनका इस्तेमाल डेटा को इकट्ठा करने के लिए किया जाता है. जैसे, वह तारीख जिस दिन उपयोगकर्ता ने गतिविधि की या वह देश जहां उपयोगकर्ता मौजूद थे. रिपोर्ट में, डेटा की हर लाइन में डाइमेंशन वैल्यू का यूनीक कॉम्बिनेशन होता है.
- फ़िल्टर, डाइमेंशन की वैल्यू होती हैं. इनसे यह तय होता है कि कौनसा डेटा वापस लाया जाएगा. उदाहरण के लिए, किसी देश, किसी वीडियो या वीडियो के किसी ग्रुप का डेटा वापस पाया जा सकता है.
ध्यान दें: कॉन्टेंट के मालिक की रिपोर्ट, सिर्फ़ YouTube कॉन्टेंट पार्टनर ऐक्सेस कर सकते हैं. ये वे पार्टनर होते हैं जो YouTube Partner Program में शामिल होते हैं.
इस्तेमाल के सामान्य उदाहरण
अनुरोध
एचटीटीपी अनुरोध
GET https://youtubeanalytics.googleapis.com/v2/reports
YouTube Analytics API के सभी अनुरोधों को स्वीकार किया जाना चाहिए. अनुमति देने से जुड़ी गाइड में बताया गया है कि अनुमति देने वाले टोकन पाने के लिए, OAuth 2.0 प्रोटोकॉल का इस्तेमाल कैसे किया जाता है.
YouTube Analytics API के अनुरोधों में, पुष्टि करने के लिए इन स्कोप का इस्तेमाल किया जाता है:
स्कोप | |
---|---|
https://www.googleapis.com/auth/yt-analytics.readonly | अपने YouTube कॉन्टेंट के लिए YouTube Analytics की रिपोर्ट देखें. इस स्कोप से, उपयोगकर्ता गतिविधि की मेट्रिक का ऐक्सेस मिलता है. जैसे, व्यू की संख्या और रेटिंग की संख्या. |
https://www.googleapis.com/auth/yt-analytics-monetary.readonly | अपने YouTube कॉन्टेंट के लिए, YouTube Analytics की मौद्रिक रिपोर्ट देखें. इस स्कोप से, उपयोगकर्ता गतिविधि की मेट्रिक के साथ-साथ अनुमानित रेवेन्यू और विज्ञापन की परफ़ॉर्मेंस की मेट्रिक का ऐक्सेस मिलता है. |
https://www.googleapis.com/auth/youtube | अपना YouTube खाता मैनेज करें. YouTube Analytics API में, चैनल के मालिक इस स्कोप का इस्तेमाल करके, YouTube Analytics ग्रुप और ग्रुप आइटम मैनेज करते हैं. |
https://www.googleapis.com/auth/youtubepartner | YouTube पर अपनी परिसंपत्ति और उससे जुड़ा कॉन्टेंट देखें और मैनेज करें. कॉन्टेंट के मालिक, YouTube Analytics API में इस स्कोप का इस्तेमाल करके, YouTube Analytics ग्रुप और ग्रुप आइटम मैनेज करते हैं. |
पैरामीटर
यहां दी गई टेबल में, क्वेरी रिपोर्ट पाने के लिए एपीआई अनुरोधों के लिए ज़रूरी और वैकल्पिक क्वेरी पैरामीटर दिए गए हैं. टेबल में दिए गए स्टैंडर्ड क्वेरी पैरामीटर भी ज़रूरी नहीं हैं. साथ ही, ये कई Google API के साथ काम करते हैं.
पैरामीटर | ||
---|---|---|
ज़रूरी पैरामीटर | ||
endDate |
string YouTube Analytics डेटा फ़ेच करने की आखिरी तारीख. वैल्यू, YYYY-MM-DD फ़ॉर्मैट में होनी चाहिए.एपीआई के जवाब में, उस आखिरी दिन तक का डेटा शामिल होता है जिसके लिए क्वेरी के समय, क्वेरी में शामिल सभी मेट्रिक उपलब्ध होती हैं. उदाहरण के लिए, अगर अनुरोध में खत्म होने की तारीख 5 जुलाई, 2017 दी गई है और अनुरोध की गई सभी मेट्रिक की वैल्यू सिर्फ़ 3 जुलाई, 2017 तक उपलब्ध हैं, तो यह वह आखिरी तारीख होगी जिसके लिए डेटा को जवाब में शामिल किया जाएगा. (ऐसा तब भी होगा, जब अनुरोध की गई कुछ मेट्रिक का डेटा 4 जुलाई, 2017 के लिए उपलब्ध हो.) ध्यान दें: एपीआई के वर्शन 1 में, इस पैरामीटर का नाम end-date |
|
ids |
string इस पैरामीटर से उस YouTube चैनल या कॉन्टेंट के मालिक की पहचान होती है जिसके लिए YouTube Analytics डेटा वापस पाया जा रहा है.
|
|
metrics |
string YouTube Analytics मेट्रिक की कॉमा लगाकर अलग की गई सूची, जैसे कि views या likes,dislikes . उन रिपोर्ट की सूची देखने के लिए, चैनल की रिपोर्ट या कॉन्टेंट के मालिक की रिपोर्ट का दस्तावेज़ देखें जिन्हें वापस पाया जा सकता है. साथ ही, हर रिपोर्ट में उपलब्ध मेट्रिक देखें. (मेट्रिक दस्तावेज़ में, सभी मेट्रिक की परिभाषाएं दी गई हैं.)
|
|
startDate |
string YouTube Analytics डेटा फ़ेच करने की शुरू होने की तारीख. वैल्यू, YYYY-MM-DD फ़ॉर्मैट में होनी चाहिए.ध्यान दें: एपीआई के वर्शन 1 में, इस पैरामीटर का नाम
start-date |
|
ज़रूरी नहीं पैरामीटर | ||
currency |
string एपीआई, अनुमानित रेवेन्यू से जुड़ी इन मेट्रिक के लिए इस मुद्रा का इस्तेमाल करेगा: estimatedRevenue, estimatedAdRevenue, estimatedRedPartnerRevenue, grossRevenue, cpm, playbackBasedCpm. एपीआई, उन मेट्रिक के लिए जो वैल्यू दिखाता है वे अनुमानित होती हैं. इनका हिसाब, रोज़ाना बदलने वाली एक्सचेंज रेट का इस्तेमाल करके लगाया जाता है. अगर इनमें से किसी भी मेट्रिक का अनुरोध नहीं किया जाता है, तो पैरामीटर को अनदेखा कर दिया जाता है. पैरामीटर की वैल्यू, नीचे दी गई मुद्राओं की सूची में से तीन अक्षरों वाला ISO 4217 मुद्रा कोड होता है. अगर ऐसी मुद्रा तय की जाती है जो इस्तेमाल नहीं की जा सकती, तो एपीआई गड़बड़ी का मैसेज दिखाता है. डिफ़ॉल्ट वैल्यू USD है. |
|
dimensions |
string YouTube Analytics डाइमेंशन की कॉमा से अलग की गई सूची, जैसे कि video या ageGroup,gender . उन रिपोर्ट की सूची देखने के लिए, चैनल की रिपोर्ट या कॉन्टेंट के मालिक की रिपोर्ट से जुड़े दस्तावेज़ देखें. साथ ही, उन रिपोर्ट के लिए इस्तेमाल किए गए डाइमेंशन देखें. (डाइमेंशन दस्तावेज़ में, सभी डाइमेंशन की परिभाषाएं दी गई हैं.)
|
|
filters |
string फ़िल्टर की सूची, जिन्हें YouTube Analytics डेटा वापस पाने के दौरान लागू किया जाना चाहिए. चैनल की रिपोर्ट और कॉन्टेंट के मालिक की रिपोर्ट के दस्तावेज़ में, उन डाइमेंशन के बारे में बताया गया है जिनका इस्तेमाल हर रिपोर्ट को फ़िल्टर करने के लिए किया जा सकता है. साथ ही, डाइमेंशन दस्तावेज़ में इन डाइमेंशन के बारे में बताया गया है. अगर किसी अनुरोध में एक से ज़्यादा फ़िल्टर का इस्तेमाल किया जाता है, तो उन्हें सेमीकोलन ( ; ) से जोड़ें. इसके बाद, नतीजे के तौर पर मिली टेबल में दोनों फ़िल्टर के हिसाब से डेटा दिखेगा. उदाहरण के लिए, filters पैरामीटर की वैल्यू video==dMH0bHeiRNg;country==IT सेट करने पर, नतीजों के सेट में सिर्फ़ इटली में मौजूद वीडियो का डेटा शामिल किया जाता है.किसी फ़िल्टर के लिए एक से ज़्यादा वैल्यू तय करना एपीआई, video , playlist , और channel फ़िल्टर के लिए एक से ज़्यादा वैल्यू तय करने की सुविधा देता है. इसके लिए, वीडियो, प्लेलिस्ट या चैनल आईडी की अलग-अलग सूची दें. इससे एपीआई से मिले जवाब को फ़िल्टर किया जा सकेगा. उदाहरण के लिए, filters पैरामीटर की वैल्यू video==pd1FJh59zxQ,Zhawgd0REhA;country==IT सेट करने पर, नतीजों के सेट में सिर्फ़ इटली में मौजूद वीडियो का डेटा शामिल किया जाता है. पैरामीटर की वैल्यू में ज़्यादा से ज़्यादा 500 आईडी दिए जा सकते हैं.एक ही फ़िल्टर के लिए कई वैल्यू तय करते समय, उस फ़िल्टर को डाइमेंशन की उस सूची में भी जोड़ा जा सकता है जिसे आपने अनुरोध के लिए तय किया है. ऐसा तब भी होता है, जब फ़िल्टर को किसी रिपोर्ट के लिए काम करने वाले डाइमेंशन के तौर पर शामिल न किया गया हो. अगर आपने डाइमेंशन की सूची में फ़िल्टर जोड़ा है, तो एपीआई नतीजों को ग्रुप करने के लिए फ़िल्टर वैल्यू का भी इस्तेमाल करता है. उदाहरण के लिए, मान लें कि आपने किसी चैनल की ट्रैफ़िक सोर्स रिपोर्ट को फिर से हासिल किया है. इस रिपोर्ट में, वीडियो देखने के आंकड़े शामिल होते हैं. ये आंकड़े इस आधार पर तय किए जाते हैं कि दर्शक, चैनल के वीडियो कॉन्टेंट तक कैसे पहुंचे. यह भी मान लें कि आपके अनुरोध के filters पैरामीटर अनुरोध से, उन 10 वीडियो की सूची का पता चलता है जिनके लिए डेटा वापस किया जाना चाहिए.
|
|
includeHistoricalChannelData |
boolean ध्यान दें: यह पैरामीटर सिर्फ़ कॉन्टेंट के मालिक की रिपोर्ट पर लागू होता है. इससे पता चलता है कि एपीआई रिस्पॉन्स में, उन चैनलों का देखने का कुल समय और व्यू डेटा शामिल होना चाहिए या नहीं जिन्हें कॉन्टेंट के मालिक से लिंक किया गया था. पैरामीटर की डिफ़ॉल्ट वैल्यू false होती है. इसका मतलब है कि एपीआई रिस्पॉन्स में, सिर्फ़ उन तारीखों का वॉच टाइम और व्यू डेटा शामिल होता है जब चैनल, कॉन्टेंट के मालिक से लिंक किए गए थे.यह ध्यान रखना ज़रूरी है कि अलग-अलग चैनलों को, कॉन्टेंट के मालिक से अलग-अलग तारीखों पर लिंक किया गया हो सकता है. अगर एपीआई अनुरोध, कई चैनलों के लिए डेटा वापस ला रहा है और पैरामीटर वैल्यू false है, तो एपीआई रिस्पॉन्स में, हर चैनल के लिए लिंक करने की तारीख के आधार पर डेटा शामिल होता है. अगर पैरामीटर की वैल्यू true है, तो एपीआई के जवाब में, एपीआई के अनुरोध में बताई गई तारीखों से मेल खाने वाला डेटा शामिल होता है.ध्यान दें: एपीआई के वर्शन 1 में, इस पैरामीटर का नाम include-historical-channel-data |
|
maxResults |
integer जवाब में शामिल की जाने वाली पंक्तियों की ज़्यादा से ज़्यादा संख्या. ध्यान दें: एपीआई के वर्शन 1 में, इस पैरामीटर का नाम max-results |
|
sort |
string डाइमेंशन या मेट्रिक की कॉमा-सेपरेटेड लिस्ट. इससे YouTube Analytics के डेटा को क्रम से लगाने का तरीका तय होता है. डिफ़ॉल्ट रूप से, क्रम बढ़ते क्रम में होता है. - प्रीफ़िक्स की वजह से, क्रम को घटते क्रम में लगाया जाता है.
|
|
startIndex |
integer यह पहली इकाई का इंडेक्स है, जिसे वापस पाना है. यह इंडेक्स 1 से शुरू होता है. (डिफ़ॉल्ट वैल्यू 1 है.) इस पैरामीटर का इस्तेमाल, max-results पैरामीटर के साथ पेज नंबर के तौर पर करें.ध्यान दें: एपीआई के वर्शन 1 में, इस पैरामीटर का नाम start-index |
|
स्टैंडर्ड पैरामीटर | ||
access_token |
मौजूदा उपयोगकर्ता के लिए OAuth 2.0 टोकन.
|
|
alt |
यह पैरामीटर, एपीआई के वर्शन 2 में काम नहीं करता. यह सिर्फ़ JSON फ़ॉर्मैट में जवाब देता है.एपीआई से मिले जवाब का डेटा फ़ॉर्मैट.
|
|
callback |
कॉलबैक फ़ंक्शन.
|
|
prettyPrint |
इंडेंटेशन और लाइन ब्रेक के साथ जवाब दिखाता है.
|
|
quotaUser |
यह पैरामीटर, एपीआई के वर्शन 1 में काम करता था. हालांकि, अब इसका इस्तेमाल बंद कर दिया गया है. यह पैरामीटर, एपीआई के वर्शन 2 में काम नहीं करता. | |
userIp |
यह पैरामीटर, एपीआई के वर्शन 1 में काम करता था. हालांकि, अब इसका इस्तेमाल बंद कर दिया गया है. यह पैरामीटर, एपीआई के वर्शन 2 में काम नहीं करता. |
अनुरोध का मुख्य भाग
इस तरीके को कॉल करते समय, अनुरोध का मुख्य हिस्सा न भेजें.
जवाब
alt
पैरामीटर की परिभाषा में बताया गया है कि एपीआई, JSON या CSV फ़ॉर्मैट में जवाब दे सकता है. हर तरह के जवाब के मुख्य हिस्से के बारे में जानकारी यहां दी गई है:
{ "kind": "youtubeAnalytics#resultTable", "columnHeaders": [ { "name": string, "dataType": string, "columnType": string }, ... more headers ... ], "rows": [ [ {value}, {value}, ... ] ] }
प्रॉपर्टी | |
---|---|
kind |
string इस वैल्यू से पता चलता है कि एपीआई के जवाब में किस तरह का डेटा शामिल है. query तरीके के लिए, kind प्रॉपर्टी की वैल्यू youtubeAnalytics#resultTable होगी. हालांकि, अगर एपीआई अन्य तरीकों के लिए सहायता जोड़ता है, तो उन तरीकों के लिए एपीआई के जवाबों में kind प्रॉपर्टी की अन्य वैल्यू शामिल हो सकती हैं. |
columnHeaders[] |
list इस वैल्यू से, rows फ़ील्ड में दिखाई गई जानकारी के बारे में पता चलता है. columnHeaders सूची में मौजूद हर आइटम, rows वैल्यू में दिखाए गए फ़ील्ड की पहचान करता है. इसमें कॉमा लगाकर अलग किए गए डेटा की सूची होती है.columnHeaders सूची में सबसे पहले, एपीआई अनुरोध में बताए गए डाइमेंशन होते हैं. इसके बाद, एपीआई अनुरोध में बताई गई मेट्रिक होती हैं. डाइमेंशन और मेट्रिक, दोनों का क्रम एपीआई अनुरोध में दिए गए क्रम से मेल खाता है.उदाहरण के लिए, अगर एपीआई अनुरोध में dimensions=ageGroup,gender&metrics=viewerPercentage पैरामीटर शामिल हैं, तो एपीआई जवाब में कॉलम इस क्रम में दिखेंगे: ageGroup ,gender ,viewerPercentage . |
columnHeaders[].name |
string डाइमेंशन या मेट्रिक का नाम. |
columnHeaders[].columnType |
string कॉलम का टाइप ( DIMENSION या METRIC ). |
columnHeaders[].dataType |
string कॉलम में मौजूद डेटा का टाइप ( STRING , INTEGER , FLOAT वगैरह). |
rows[] |
list इस सूची में, नतीजे की टेबल की सभी लाइनें शामिल होती हैं. सूची में मौजूद हर आइटम एक कलेक्शन होता है. इसमें कॉमा लगाकर अलग किया गया डेटा होता है, जो डेटा की एक लाइन से जुड़ा होता है. कॉमा लगाकर अलग किए गए डेटा फ़ील्ड का क्रम, columnHeaders फ़ील्ड में दी गई कॉलम की सूची के क्रम से मेल खाएगा.अगर दी गई क्वेरी के लिए कोई डेटा उपलब्ध नहीं है, तो जवाब में rows एलिमेंट शामिल नहीं किया जाएगा.day डाइमेंशन वाली क्वेरी के जवाब में, हाल के दिनों की पंक्तियां शामिल नहीं होंगी. |
day, views, likes, ... "2012-01-01", 12.0, 3, ... "2012-01-02", 16.0, 2, ... "2012-01-03", 18.0, 8, ... ...
उदाहरण
ध्यान दें: ऐसा हो सकता है कि नीचे दिए गए कोड के सैंपल में, इसके साथ काम करने वाली सभी प्रोग्रामिंग लैंग्वेज न दिखाई गई हों. इस्तेमाल की जा सकने वाली भाषाओं की सूची देखने के लिए, क्लाइंट लाइब्रेरी का दस्तावेज़ देखें.
JavaScript
इस उदाहरण में, YouTube Analytics API को कॉल करके, अनुमति देने वाले उपयोगकर्ता के चैनल के लिए, साल 2017 के कैलेंडर वर्ष के हिसाब से, हर दिन के व्यू और अन्य मेट्रिक वापस पाने का अनुरोध किया गया है. इस उदाहरण में, Google APIs JavaScript क्लाइंट लाइब्रेरी का इस्तेमाल किया गया है.इस सैंपल को पहली बार स्थानीय तौर पर चलाने से पहले, आपको अपने प्रोजेक्ट के लिए अनुमति देने वाले क्रेडेंशियल सेट अप करने होंगे:
- Google API Console में कोई प्रोजेक्ट बनाएं या चुनें.
- अपने प्रोजेक्ट के लिए YouTube Analytics API चालू करें.
- क्रेडेंशियल पेज पर सबसे ऊपर, OAuth सहमति स्क्रीन टैब चुनें. कोई ईमेल पता चुनें. अगर प्रॉडक्ट का नाम पहले से सेट नहीं है, तो उसे डालें. इसके बाद, सेव करें बटन पर क्लिक करें.
- क्रेडेंशियल पेज पर, क्रेडेंशियल बनाएं बटन पर क्लिक करें. इसके बाद, Oauth क्लाइंट आईडी चुनें.
- ऐप्लिकेशन टाइप के तौर पर, वेब ऐप्लिकेशन चुनें.
- 'अनुमति पा चुके JavaScript ऑरिजिन' फ़ील्ड में, वह यूआरएल डालें जिससे आपको कोड सैंपल दिखाना है. उदाहरण के लिए,
http://localhost:8000
याhttp://yourserver.example.com
का इस्तेमाल किया जा सकता है. रीडायरेक्ट करने के लिए मान्य यूआरआई फ़ील्ड को खाली छोड़ा जा सकता है. - क्रेडेंशियल बनाने की प्रोसेस पूरी करने के लिए, बनाएं बटन पर क्लिक करें.
- डायलॉग बॉक्स बंद करने से पहले, क्लाइंट आईडी कॉपी करें. आपको इसे कोड सैंपल में डालना होगा.
इसके बाद, सैंपल को किसी लोकल फ़ाइल में सेव करें. सैंपल में, यह लाइन ढूंढें और YOUR_CLIENT_ID की जगह वह क्लाइंट आईडी डालें जो आपको अनुमति देने वाले क्रेडेंशियल सेट अप करते समय मिला था.
gapi.auth2.init({client_id: 'YOUR_CLIENT_ID'});
अब, सैंपल की जांच करने के लिए यह तरीका अपनाएं:
- वेब ब्राउज़र से लोकल फ़ाइल खोलें. इसके बाद, ब्राउज़र में डीबगिंग कंसोल खोलें. आपको एक ऐसा पेज दिखेगा जिस पर दो बटन दिखेंगे.
- उपयोगकर्ता को अनुमति देने की प्रोसेस शुरू करने के लिए, अनुमति दें और लोड करें बटन पर क्लिक करें. अगर आपने ऐप्लिकेशन को अपने चैनल का डेटा पाने की अनुमति दी है, तो आपको ब्राउज़र में कंसोल पर ये लाइनें दिखेंगी:
Sign-in successful GAPI client loaded for API
- अगर आपको ऊपर दी गई लाइनों के बजाय गड़बड़ी का कोई मैसेज दिखता है, तो पुष्टि करें कि आपने अपने प्रोजेक्ट के लिए सेट अप किए गए, अनुमति वाले रीडायरेक्ट यूआरआई से स्क्रिप्ट लोड की हो. साथ ही, आपने कोड में अपना क्लाइंट आईडी डाला हो, जैसा कि ऊपर बताया गया है.
- एपीआई को कॉल करने के लिए, execute बटन पर क्लिक करें. आपको ब्राउज़र में कंसोल पर
response
ऑब्जेक्ट प्रिंट होता हुआ दिखेगा. उस ऑब्जेक्ट में,result
प्रॉपर्टी, एपीआई डेटा वाले ऑब्जेक्ट से मैप होती है.
<script src="https://apis.google.com/js/api.js"></script> <script> function authenticate() { return gapi.auth2.getAuthInstance() .signIn({scope: "https://www.googleapis.com/auth/yt-analytics.readonly"}) .then(function() { console.log("Sign-in successful"); }, function(err) { console.error("Error signing in", err); }); } function loadClient() { return gapi.client.load("https://youtubeanalytics.googleapis.com/$discovery/rest?version=v2") .then(function() { console.log("GAPI client loaded for API"); }, function(err) { console.error("Error loading GAPI client for API", err); }); } // Make sure the client is loaded and sign-in is complete before calling this method. function execute() { return gapi.client.youtubeAnalytics.reports.query({ "ids": "channel==MINE", "startDate": "2017-01-01", "endDate": "2017-12-31", "metrics": "views,estimatedMinutesWatched,averageViewDuration,averageViewPercentage,subscribersGained", "dimensions": "day", "sort": "day" }) .then(function(response) { // Handle the results here (response.result has the parsed body). console.log("Response", response); }, function(err) { console.error("Execute error", err); }); } gapi.load("client:auth2", function() { gapi.auth2.init({client_id: 'YOUR_CLIENT_ID'}); }); </script> <button onclick="authenticate().then(loadClient)">authorize and load</button> <button onclick="execute()">execute</button>
Python
इस उदाहरण में, YouTube Analytics API को कॉल करके, अनुमति देने वाले उपयोगकर्ता के चैनल के लिए, साल 2017 के कैलेंडर वर्ष के हिसाब से, हर दिन के व्यू और अन्य मेट्रिक वापस पाने का अनुरोध किया गया है. इस उदाहरण में, Google APIs की Python क्लाइंट लाइब्रेरी का इस्तेमाल किया गया है.इस सैंपल को पहली बार स्थानीय तौर पर चलाने से पहले, आपको अपने प्रोजेक्ट के लिए अनुमति देने वाले क्रेडेंशियल सेट अप करने होंगे:
- Google API Console में कोई प्रोजेक्ट बनाएं या चुनें.
- अपने प्रोजेक्ट के लिए YouTube Analytics API चालू करें.
- क्रेडेंशियल पेज पर सबसे ऊपर, OAuth सहमति स्क्रीन टैब चुनें. कोई ईमेल पता चुनें. अगर प्रॉडक्ट का नाम पहले से सेट नहीं है, तो उसे डालें. इसके बाद, सेव करें बटन पर क्लिक करें.
- क्रेडेंशियल पेज पर, क्रेडेंशियल बनाएं बटन पर क्लिक करें. इसके बाद, Oauth क्लाइंट आईडी चुनें.
- ऐप्लिकेशन टाइप Other को चुनें. इसके बाद, "YouTube Analytics API Quickstart" नाम डालें और Create बटन पर क्लिक करें.
- इसके बाद दिखने वाले डायलॉग को खारिज करने के लिए, ठीक है पर क्लिक करें.
- क्लाइंट आईडी के दाईं ओर मौजूद, (JSON फ़ाइल डाउनलोड करें) बटन पर क्लिक करें.
- डाउनलोड की गई फ़ाइल को अपनी वर्किंग डायरेक्ट्री में ले जाएं.
आपको Python के लिए Google APIs क्लाइंट लाइब्रेरी और कुछ अन्य लाइब्रेरी भी इंस्टॉल करनी होंगी:
pip install --upgrade google-api-python-client pip install --upgrade google-auth google-auth-oauthlib google-auth-httplib2
अब, सैंपल की जांच करने के लिए यह तरीका अपनाएं:
- नीचे दिए गए कोड सैंपल को अपनी वर्किंग डायरेक्ट्री में कॉपी करें.
- सैंपल में,
CLIENT_SECRETS_FILE
वैरिएबल की वैल्यू को उस फ़ाइल की जगह से मैच करने के लिए अपडेट करें जिसे आपने अनुमति देने से जुड़ी क्रेडेंशियल सेट अप करने के बाद डाउनलोड किया था. - टर्मिनल विंडो में सैंपल कोड चलाएं:
python yt_analytics_v2.py
- अनुमति देने की प्रोसेस पूरी करें. पुष्टि करने का फ़्लो आपके ब्राउज़र में अपने-आप लोड हो सकता है. इसके अलावा, आपको पुष्टि करने वाले यूआरएल को किसी ब्राउज़र विंडो में कॉपी करना पड़ सकता है. अनुमति देने की प्रोसेस के आखिर में, अगर ज़रूरी हो, तो ब्राउज़र में दिखने वाले अनुमति कोड को अपने टर्मिनल विंडो में चिपकाएं और [return] पर क्लिक करें.
- एपीआई क्वेरी को एक्ज़ीक्यूट किया जाता है और JSON रिस्पॉन्स को टर्मिनल विंडो में आउटपुट किया जाता है.
# -*- coding: utf-8 -*- import os import google.oauth2.credentials import google_auth_oauthlib.flow from googleapiclient.discovery import build from googleapiclient.errors import HttpError from google_auth_oauthlib.flow import InstalledAppFlow SCOPES = ['https://www.googleapis.com/auth/yt-analytics.readonly'] API_SERVICE_NAME = 'youtubeAnalytics' API_VERSION = 'v2' CLIENT_SECRETS_FILE = 'YOUR_CLIENT_SECRET_FILE.json' def get_service(): flow = InstalledAppFlow.from_client_secrets_file(CLIENT_SECRETS_FILE, SCOPES) credentials = flow.run_console() return build(API_SERVICE_NAME, API_VERSION, credentials = credentials) def execute_api_request(client_library_function, **kwargs): response = client_library_function( **kwargs ).execute() print(response) if __name__ == '__main__': # Disable OAuthlib's HTTPs verification when running locally. # *DO NOT* leave this option enabled when running in production. os.environ['OAUTHLIB_INSECURE_TRANSPORT'] = '1' youtubeAnalytics = get_service() execute_api_request( youtubeAnalytics.reports().query, ids='channel==MINE', startDate='2017-01-01', endDate='2017-12-31', metrics='estimatedMinutesWatched,views,likes,subscribersGained' dimensions='day', sort='day' )
इसे आज़माएं!
इस एपीआई को कॉल करने के लिए, APIs Explorer का इस्तेमाल करें. साथ ही, एपीआई अनुरोध और जवाब देखें.