Reports: Query

अहम जानकारी: इस तरीके के एपीआई अनुरोधों के लिए, अब https://www.googleapis.com/auth/youtube.readonly के स्कोप का ऐक्सेस ज़रूरी है.

इस तरीके की मदद से, कई अलग-अलग Analytics रिपोर्ट फिर से पाई जा सकती हैं. हर अनुरोध में क्वेरी पैरामीटर का इस्तेमाल किया जाता है, ताकि इनके बारे में चैनल आईडी या कॉन्टेंट के मालिक, शुरू होने की तारीख, खत्म होने की तारीख, और कम से कम एक मेट्रिक की जानकारी दी जा सके. आप अतिरिक्त क्वेरी पैरामीटर भी दे सकते हैं, जैसे कि डाइमेंशन, फ़िल्टर, और क्रम से लगाने के निर्देश.

  • मेट्रिक, उपयोगकर्ता गतिविधि के अलग-अलग मेज़रमेंट होती हैं. इनमें वीडियो को मिले व्यू या रेटिंग (पसंद और नापसंद) जैसी उपयोगकर्ता गतिविधि शामिल हैं.
  • डाइमेंशन ऐसे सामान्य मानदंड हैं जिनका इस्तेमाल डेटा को इकट्ठा करने के लिए किया जाता है. जैसे, उपयोगकर्ता गतिविधि की तारीख या वह देश जहां उपयोगकर्ता मौजूद थे. किसी रिपोर्ट में, डेटा की हर लाइन में डाइमेंशन वैल्यू का एक यूनीक कॉम्बिनेशन होता है.
  • फ़िल्टर ऐसे डाइमेंशन वैल्यू होते हैं जिनसे पता चलता है कि कौनसा डेटा वापस लाया जाएगा. उदाहरण के लिए, किसी देश, किसी वीडियो या कई वीडियो के ग्रुप का डेटा वापस लाया जा सकता है.

ध्यान दें: कॉन्टेंट के मालिक की रिपोर्ट, सिर्फ़ उन YouTube कॉन्टेंट पार्टनर को ऐक्सेस की जा सकती हैं जो YouTube Partner Program में शामिल होते हैं.

इस्तेमाल के सामान्य उदाहरण

अनुरोध

एचटीटीपी अनुरोध

GET https://youtubeanalytics.googleapis.com/v2/reports

YouTube Analytics एपीआई के सभी अनुरोधों को अनुमति मिलना ज़रूरी है. अनुमति देने वाली गाइड में, अनुमति देने वाले टोकन वापस पाने के लिए, 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 एपीआई' में, कॉन्टेंट के मालिक इस दायरे का इस्तेमाल 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 का डेटा हासिल करना है.

  • किसी YouTube चैनल के डेटा का अनुरोध करने के लिए, ids पैरामीटर वैल्यू को channel==MINE या channel==CHANNEL_ID पर सेट करें, जहां CHANNEL_ID मौजूदा उपयोगकर्ता के YouTube चैनल की पहचान करता है.
  • YouTube के कॉन्टेंट के मालिक के डेटा का अनुरोध करने के लिए, ids पैरामीटर की वैल्यू को contentOwner==OWNER_NAME पर सेट करें. यहां OWNER_NAME, उपयोगकर्ता के लिए content owner ID है.

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 फ़िल्टर के लिए, एक से ज़्यादा वैल्यू सेट की जा सकती हैं. इसके लिए, उन वीडियो, प्लेलिस्ट या चैनल आईडी की अलग सूची तय करें जिनके लिए एपीआई से मिले रिस्पॉन्स को फ़िल्टर किया जाना चाहिए. उदाहरण के लिए, video==pd1FJh59zxQ,Zhawgd0REhA;country==IT की filters पैरामीटर वैल्यू, नतीजे के सेट को, इटली में दिए गए वीडियो का डेटा शामिल करने से रोकती है. पैरामीटर वैल्यू में ज़्यादा से ज़्यादा 500 आईडी शामिल किए जा सकते हैं.

एक ही फ़िल्टर के लिए कई वैल्यू तय करते समय, उस फ़िल्टर को डाइमेंशन की उस सूची में भी जोड़ा जा सकता है जिसे आपने अनुरोध के लिए तय किया है. अगर किसी रिपोर्ट के लिए, फ़िल्टर को इस्तेमाल किए जा सकने वाले डाइमेंशन के तौर पर शामिल नहीं किया गया है, तब भी ऐसा ही होगा. अगर डाइमेंशन की सूची में फ़िल्टर जोड़ा जाता है, तो एपीआई भी नतीजों को ग्रुप करने के लिए, फ़िल्टर वैल्यू का इस्तेमाल करता है.

उदाहरण के लिए, मान लें कि आपको किसी चैनल की ट्रैफ़िक सोर्स रिपोर्ट मिली है. इस रिपोर्ट में, दर्शकों के चैनल के वीडियो कॉन्टेंट तक पहुंचने के तरीके के आधार पर उनसे जुड़े आंकड़े एक साथ दिखाए जाते हैं. यह भी मान लें कि आपके अनुरोध के filters पैरामीटर अनुरोध के तहत, 10 वीडियो की ऐसी सूची की पहचान की गई है जिसका डेटा दिखाया जाना चाहिए.
  • अगर dimensions पैरामीटर की वैल्यू में video जोड़ा जाता है, तो एपीआई के रिस्पॉन्स में 10 वीडियो में से हर एक के लिए, ट्रैफ़िक सोर्स के अलग-अलग आंकड़े मिलेंगे.
  • अगर dimensions पैरामीटर की वैल्यू में video को नहीं जोड़ा जाता है, तो एपीआई से मिला रिस्पॉन्स सभी 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 यह पैरामीटर, एपीआई के ऐसे दूसरे वर्शन में काम नहीं करता जिसमें सिर्फ़ JSON के जवाब काम करते हैं.एपीआई से मिले रिस्पॉन्स के लिए डेटा फ़ॉर्मैट.
  • मान्य वैल्यू: json, csv
  • डिफ़ॉल्ट वैल्यू: json
callback कॉलबैक फ़ंक्शन.
  • रिस्पॉन्स को मैनेज करने वाले JavaScript कॉलबैक फ़ंक्शन का नाम.
  • JavaScript के JSON-P अनुरोधों में इस्तेमाल किया जाता है.
prettyPrint

इंडेंट और लाइन ब्रेक के साथ रिस्पॉन्स दिखाता है.

  • अगर true होता है, तो इस फ़ॉर्मैट में जवाब देता है जिसे कोई भी व्यक्ति आसानी से पढ़ सके.
  • डिफ़ॉल्ट वैल्यू: true.
  • जब यह false होता है, तो यह रिस्पॉन्स पेलोड का साइज़ कम कर सकता है. इससे, कुछ एनवायरमेंट में परफ़ॉर्मेंस बेहतर हो सकती है.
quotaUser यह पैरामीटर, एपीआई के पहले वर्शन में काम करता था. हालांकि, अब इसका इस्तेमाल नहीं किया जाता. यह पैरामीटर, एपीआई के दूसरे वर्शन में काम नहीं करता.
userIp यह पैरामीटर, एपीआई के पहले वर्शन में काम करता था. हालांकि, अब इसका इस्तेमाल नहीं किया जाता. यह पैरामीटर, एपीआई के दूसरे वर्शन में काम नहीं करता.

अनुरोध का मुख्य भाग

इस तरीके को कॉल करते समय, अनुरोध का मुख्य हिस्सा न भेजें.

जवाब

जैसा कि alt पैरामीटर की परिभाषा में बताया गया है, एपीआई JSON या CSV फ़ॉर्मैट में रिस्पॉन्स दिखा सकता है. हर टाइप के लिए, रिस्पॉन्स के मुख्य हिस्से की जानकारी यहां दी गई है:

JSON
{
  "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 डाइमेंशन वाली क्वेरी के जवाब में हाल के दिनों की पंक्तियां नहीं होंगी.

CSV
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 API JavaScript क्लाइंट लाइब्रेरी का इस्तेमाल किया जाता है.

इस सैंपल को स्थानीय तौर पर पहली बार चलाने से पहले, आपको अपने प्रोजेक्ट के लिए अनुमति देने वाले क्रेडेंशियल सेट अप करने होंगे:
  1. Google API कंसोल में कोई प्रोजेक्ट बनाएं या चुनें.
  2. अपने प्रोजेक्ट के लिए YouTube Analytics API चालू करें.
  3. क्रेडेंशियल पेज में सबसे ऊपर, OAuth की सहमति वाली स्क्रीन टैब चुनें. एक ईमेल पता चुनें, अगर पहले से सेट नहीं है, तो प्रॉडक्ट का नाम डालें और सेव करें बटन पर क्लिक करें.
  4. क्रेडेंशियल पेज पर, क्रेडेंशियल बनाएं बटन पर क्लिक करें और Oauth क्लाइंट आईडी चुनें.
  5. वेब ऐप्लिकेशन का ऐप्लिकेशन टाइप चुनें.
  6. अनुमति वाले JavaScript ऑरिजिन फ़ील्ड में, वह यूआरएल डालें जिससे आपको कोड सैंपल दिखाना है. उदाहरण के लिए, http://localhost:8000 या http://yourserver.example.com जैसा कुछ इस्तेमाल किया जा सकता है. आप अनुमति वाले रीडायरेक्ट यूआरआई फ़ील्ड को खाली छोड़ सकते हैं.
  7. अपने क्रेडेंशियल बनाने के लिए बनाएं बटन पर क्लिक करें.
  8. डायलॉग बॉक्स बंद करने से पहले, उस क्लाइंट आईडी को कॉपी करें जिसे आपको कोड सैंपल में डालना है.

इसके बाद, सैंपल को एक लोकल फ़ाइल में सेव करें. सैंपल में, नीचे दी गई लाइन ढूंढें और YOUR_CLIENT_ID को उस क्लाइंट आईडी से बदलें जो आपको अनुमति देने वाले क्रेडेंशियल सेट अप करते समय मिला था.

gapi.auth2.init({client_id: 'YOUR_CLIENT_ID'});

अब आप इस सैंपल की जांच करने के लिए तैयार हैं:

  1. किसी वेब ब्राउज़र से लोकल फ़ाइल खोलें और ब्राउज़र में डीबगिंग कंसोल खोलें. आपको दो बटन दिखाने वाला पेज दिखेगा.
  2. उपयोगकर्ता की अनुमति देने वाला फ़्लो लॉन्च करने के लिए, अनुमति दें और लोड करें बटन पर क्लिक करें. अगर आपने ऐप्लिकेशन को चैनल का डेटा वापस पाने की अनुमति दी है, तो ब्राउज़र में कंसोल पर प्रिंट की गई ये लाइनें दिखेंगी:
    Sign-in successful
    GAPI client loaded for API
  3. अगर आपको ऊपर दी गई लाइनों के बजाय, गड़बड़ी का कोई मैसेज दिखता है, तो पक्का करें कि आपने प्रोजेक्ट के लिए सेट अप किए गए आधिकारिक रीडायरेक्ट यूआरआई से स्क्रिप्ट लोड की है और आपने ऊपर बताए गए तरीके से कोड में अपना क्लाइंट आईडी डाला है.
  4. एपीआई को कॉल करने के लिए, 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 API Python क्लाइंट लाइब्रेरी का इस्तेमाल किया जाता है.

इस सैंपल को स्थानीय तौर पर पहली बार चलाने से पहले, आपको अपने प्रोजेक्ट के लिए अनुमति देने वाले क्रेडेंशियल सेट अप करने होंगे:
  1. Google API कंसोल में कोई प्रोजेक्ट बनाएं या चुनें.
  2. अपने प्रोजेक्ट के लिए YouTube Analytics API चालू करें.
  3. क्रेडेंशियल पेज में सबसे ऊपर, OAuth की सहमति वाली स्क्रीन टैब चुनें. एक ईमेल पता चुनें, अगर पहले से सेट नहीं है, तो प्रॉडक्ट का नाम डालें और सेव करें बटन पर क्लिक करें.
  4. क्रेडेंशियल पेज पर, क्रेडेंशियल बनाएं बटन पर क्लिक करें और Oauth क्लाइंट आईडी चुनें.
  5. ऐप्लिकेशन टाइप अन्य चुनें. इसके बाद, "YouTube Analytics API क्विकस्टार्ट" नाम डालें और 'बनाएं' बटन पर क्लिक करें.
  6. दिखने वाले डायलॉग को खारिज करने के लिए, ठीक है पर क्लिक करें.
  7. क्लाइंट आईडी के दाईं ओर मौजूद, (JSON डाउनलोड करें) बटन पर क्लिक करें.
  8. डाउनलोड की गई फ़ाइल को अपनी वर्किंग डायरेक्ट्री में ले जाएं.

आपको Python और कुछ अतिरिक्त लाइब्रेरी के लिए, Google API क्लाइंट लाइब्रेरी भी इंस्टॉल करनी होगी:

pip install --upgrade google-api-python-client
pip install --upgrade google-auth google-auth-oauthlib google-auth-httplib2

अब आप इस सैंपल की जांच करने के लिए तैयार हैं:

  1. नीचे दिया गया कोड सैंपल, अपनी वर्किंग डायरेक्ट्री में कॉपी करें.
  2. सैंपल में, CLIENT_SECRETS_FILE वैरिएबल की वैल्यू को अपडेट करें, ताकि वह उस फ़ाइल की जगह से मैच कर सके जिसे आपने अनुमति देने वाले क्रेडेंशियल सेट अप करने के बाद डाउनलोड किया है.
  3. सैंपल कोड को टर्मिनल विंडो में चलाएं:
    python yt_analytics_v2.py
  4. अनुमति देने की प्रक्रिया पूरी करें. आपके ब्राउज़र में पुष्टि करने की प्रक्रिया अपने-आप लोड हो सकती है या आपको ब्राउज़र विंडो में पुष्टि करने वाला यूआरएल कॉपी करने की ज़रूरत पड़ सकती है. अगर ज़रूरी हो, तो अनुमति देने वाले फ़्लो के आखिर में, ब्राउज़र में दिखाए गए ऑथराइज़ेशन कोड को अपनी टर्मिनल विंडो में चिपकाएं और [return] पर क्लिक करें.
  5. एपीआई क्वेरी लागू होती है और 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 का इस्तेमाल करें. साथ ही, एपीआई अनुरोध और रिस्पॉन्स देखें.