Reports: Query

ملاحظة مهمة: تتطلب طلبات البيانات من واجهة برمجة التطبيقات إلى هذه الطريقة الآن الوصول إلى نطاق https://www.googleapis.com/auth/youtube.readonly.

تتيح لك هذه الطريقة استرداد العديد من تقارير "إحصاءات Google" المختلفة. يستخدم كل طلب مَعلمات طلب البحث لتحديد معرّف قناة أو مالك محتوى وتاريخ بدء وتاريخ انتهاء ومقياس واحد على الأقل. ويمكنك أيضًا تقديم مَعلمات طلب بحث إضافية، مثل السمات والفلاتر وتعليمات الترتيب.

  • المقاييس هي مقاييس فردية لنشاط المستخدم، مثل عدد مرات مشاهدة الفيديو أو التقييمات (إبداءات الإعجاب وعدم الإعجاب).
  • السمات هي معايير شائعة تُستخدَم لتجميع البيانات، مثل تاريخ حدوث نشاط المستخدِم أو البلد الذي تواجد فيه المستخدمون. في أيّ تقرير، يحتوي كلّ صف من البيانات على مجموعة فريدة من قيم السمات.
  • الفلاتر هي قيم السمات التي تحدّد البيانات التي سيتم استردادها. على سبيل المثال، يمكنك استرداد البيانات لبلد معيّن أو فيديو محدّد أو مجموعة فيديوهات.

ملاحظة: يمكن لشركاء المحتوى على YouTube المشاركين في برنامج شركاء YouTube فقط الوصول إلى تقارير مالكي المحتوى.

حالات الاستخدام الشائعة

الطلب

طلب HTTP

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 يوفّر هذا النطاق إمكانية الوصول إلى مقاييس نشاط المستخدم، مثل عدد المشاهدات وأعداد التقييمات.
https://www.googleapis.com/auth/yt-analytics-monetary.readonly عرض تقارير "إحصاءات YouTube" المالية للمحتوى الخاص بك على YouTube يوفّر هذا النطاق إمكانية الوصول إلى مقاييس نشاط المستخدم والاطّلاع على الأرباح المقدّرة ومقاييس أداء الإعلانات.
https://www.googleapis.com/auth/youtube إدارة حسابك على YouTube في YouTube Analytics API، يستخدم مالكو القنوات هذا النطاق لإدارة مجموعات "إحصاءات YouTube" وعناصرها.
https://www.googleapis.com/auth/youtubepartner عرض وإدارة مواد العرض في YouTube والمحتوى المرتبط بها على YouTube في YouTube Analytics API، يستخدم مالكو المحتوى هذا النطاق لإدارة مجموعات "إحصاءات YouTube" وعناصرها.

المَعلمات

تسرد الجداول التالية معلَمات طلب البحث المطلوبة والاختيارية لطلبات واجهة برمجة التطبيقات لاسترداد تقارير طلبات البحث. كما أنّ معلَمات طلب البحث العادية المدرجة في الجدول اختيارية أيضًا، ويدعمها الكثير من واجهات Google APIs.

المَعلمات
المَعلمات المطلوبة
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 والتكلفة لكل ألف ظهور وplaybackBasedCpm. إنّ القيم التي تعرضها واجهة برمجة التطبيقات لهذه المقاييس هي قيم يتم احتسابها باستخدام أسعار الصرف التي تتغيّر يوميًا. إذا لم يتم طلب أيٍّ من هذه المقاييس، يتم تجاهل المَعلمة.

قيمة المَعلمة هي رمز عملة مكوّن من ثلاثة أحرف وفقًا لمعيار ISO 4217 ومتوفّر في قائمة العملات أدناه. تعرض واجهة برمجة التطبيقات رسالة خطأ إذا تم تحديد عملة غير متوافقة. القيمة التلقائية هي USD.

dimensions string
قائمة بسمات "إحصاءات YouTube" مفصولة بفواصل، مثل video أو ageGroup,gender. راجِع مستندات تقارير القنوات أو تقارير مالك المحتوى للحصول على قائمة بالتقارير التي يمكنك استردادها والسمات المستخدَمة لهذه التقارير. (يحتوي مستند السمات على تعريفات لجميع السمات).
filters string
قائمة بالفلاتر التي يجب تطبيقها عند استرداد بيانات YouTube Analytics تحدِّد مستندات تقارير القنوات وتقارير مالك المحتوى السمات التي يمكن استخدامها لفلترة كل تقرير، ويحدِّد مستند السمات هذه السمات.

إذا كان الطلب يستخدم فلاتر متعددة، يمكنك ربطها معًا بفاصلة منقوطة (;)، وسيلبي جدول النتائج المعروضة كلا الفلترين. على سبيل المثال، عند استخدام قيمة video==dMH0bHeiRNg;country==IT في المعلَمة filters، يتم حصر مجموعة النتائج بحيث تتضمّن بيانات فيديو محدّد في إيطاليا.

تحديد قيم متعددة لفلتر

تتيح واجهة برمجة التطبيقات إمكانية تحديد قيم متعددة للفلاتر video وplaylist وchannel. لإجراء ذلك، حدِّد قائمة منفصلة بالفيديوهات أو قوائم التشغيل أو معرّفات القنوات التي يجب فلترة استجابة واجهة برمجة التطبيقات لها. على سبيل المثال، تؤدي قيمة المعلَمة filters البالغة video==pd1FJh59zxQ,Zhawgd0REhA;country==IT إلى حصر مجموعة النتائج لتضمين بيانات الفيديوهات المحدّدة في إيطاليا. يمكن أن تحدِّد قيمة المَعلمة ما يصل إلى 500 رقم تعريف.

عند تحديد قيم متعدّدة للفلتر نفسه، يمكنك أيضًا إضافة هذا الفلتر إلى قائمة السمات التي تحدّدها للطلب. ينطبق ذلك حتى إذا لم يكن الفلتر مُدرَجًا كسمة متاحة لتقرير معيّن. وفي حال إضافة الفلتر إلى قائمة السمات، ستستخدِم واجهة برمجة التطبيقات أيضًا قيم الفلاتر لتجميع النتائج.

على سبيل المثال، لنفترض أنّك تسترد تقرير مصدر الزيارات لقناة معيّنة، ويجمع هذا التقرير إحصاءات المشاهدة استنادًا إلى الطريقة التي وصل بها المشاهدون إلى محتوى الفيديو على القناة. افترض أيضًا أنّ طلب المعلمة filters في طلبك يحدّد قائمة تضم 10 فيديوهات يجب عرض بياناتها.
  • إذا أضفت video إلى قيمة المعلَمة dimensions، ستقدّم استجابة واجهة برمجة التطبيقات إحصاءات منفصلة حول مصدر الزيارات لكل فيديو من الفيديوهات العشرة.
  • في حال عدم إضافة video إلى قيمة المعلَمة dimensions، ستعمل الاستجابة من واجهة برمجة التطبيقات على تجميع إحصاءات مصدر الزيارات لكل الفيديوهات العشرة.
includeHistoricalChannelData boolean
ملاحظة: لا تنطبق هذه المَعلمة إلّا على تقارير مالكي المحتوى.

تشير إلى ما إذا كان يجب أن تتضمّن استجابة واجهة برمجة التطبيقات بيانات المشاهدة ووقت المشاهدة للقنوات من الفترة الزمنية السابقة لوقت ربط القنوات بحساب مالك المحتوى. إنّ قيمة المَعلمة التلقائية هي false، ما يعني أنّ استجابة واجهة برمجة التطبيقات تتضمّن فقط بيانات وقت المشاهدة والمشاهدات من تواريخ ربط القنوات بحساب مالك المحتوى.

من المهم تذكُّر أنّ قنوات مختلفة قد تكون مرتبطة بحساب مالك محتوى في تواريخ مختلفة. إذا كان طلب البيانات من واجهة برمجة التطبيقات يسترد البيانات لقنوات متعدّدة وكانت قيمة المَعلمة هي false، سيحتوي ردّ واجهة برمجة التطبيقات على البيانات استنادًا إلى تاريخ الربط لكل قناة معنيّة. إذا كانت قيمة المعلَمة هي true، ستتضمّن استجابة واجهة برمجة التطبيقات بيانات تطابق التواريخ المحددة في طلب البيانات من واجهة برمجة التطبيقات.
ملاحظة: في الإصدار 1 من واجهة برمجة التطبيقات، تمت تسمية هذه المَعلمة include-historical-channel-data.
maxResults integer
الحد الأقصى لعدد الصفوف التي يمكن تضمينها في الرد.
ملاحظة: في الإصدار 1 من واجهة برمجة التطبيقات، تمت تسمية هذه المَعلمة max-results.
sort string
قائمة بسمات أو مقاييس مفصولة بفواصل تحدّد ترتيب ترتيب بيانات "إحصاءات YouTube". يكون نظام الترتيب تصاعديًا بشكل تلقائي. تؤدي البادئة - إلى ترتيب تنازلي تنازليًا.
startIndex integer
الفهرس المستند إلى 1 للكيان الأول المطلوب استرداده. (القيمة التلقائية هي 1.) استخدِم هذه المَعلمة كآلية تقسيم على صفحات مع المَعلمة max-results.
ملاحظة: في الإصدار 1 من واجهة برمجة التطبيقات، تمت تسمية هذه المَعلمة start-index.
المَعلمات العادية
access_token رمز "OAuth 2.0" المميز للمستخدم الحالي
alt هذه المَعلمة غير متاحة في الإصدار 2 من واجهة برمجة التطبيقات الذي يتيح استخدام استجابات JSON فقط.تنسيق البيانات لاستجابة واجهة برمجة التطبيقات.
  • القيم الصالحة: json، csv
  • القيمة التلقائية: json
callback دالة رد الاتصال.
  • اسم دالة معاودة الاتصال في JavaScript التي تعالج الاستجابة.
  • تم استخدامه في طلبات JSON-P JavaScript.
prettyPrint

لعرض استجابة تتضمن مسافات بادئة وفواصل أسطر.

  • تعرض الردّ بتنسيق يمكن لشخص عادي قراءته إذا كانت true.
  • القيمة التلقائية: true.
  • وعندما تكون القيمة false، يمكنها تقليل حجم حمولة الاستجابة، ما قد يؤدي إلى تحسين الأداء في بعض البيئات.
quotaUser كانت هذه المَعلمة متوفّرة في الإصدار 1 من واجهة برمجة التطبيقات، والذي تم إيقافه نهائيًا. هذه المَعلمة غير متاحة في الإصدار 2 من واجهة برمجة التطبيقات.
userIp كانت هذه المَعلمة متوفّرة في الإصدار 1 من واجهة برمجة التطبيقات، والذي تم إيقافه نهائيًا. هذه المَعلمة غير متاحة في الإصدار 2 من واجهة برمجة التطبيقات.

نص الطلب

عدم إرسال نص طلب عند استدعاء هذه الطريقة.

الإجابة

كما هو موضّح في تعريف المَعلمة 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 لاسترداد المشاهدات اليومية ومقاييس أخرى لقناة المستخدم المرخّص للعام التقويمي 2017. يستخدم النموذج مكتبة برامج JavaScript لـ Google APIs.

قبل تشغيل هذا النموذج محليًا للمرة الأولى، عليك إعداد بيانات اعتماد التفويض لمشروعك:
  1. أنشئ مشروعًا أو اختَره في وحدة التحكم في واجهة Google API.
  2. فعِّل YouTube Analytics API لمشروعك.
  3. في أعلى صفحة بيانات الاعتماد، اختَر علامة التبويب شاشة موافقة OAuth. حدد عنوان بريد إلكتروني وأدخل اسم منتج إذا لم يكن قد تم تعيينه من قبل، ثم انقر على الزر "حفظ".
  4. في صفحة بيانات الاعتماد، انقر على الزر إنشاء بيانات اعتماد واختَر معرِّف عميل Oauth.
  5. اختَر نوع التطبيق تطبيق الويب.
  6. في الحقل "مصادر JavaScript المسموح بها"، أدخِل عنوان URL الذي ستعرض منه عيّنة الرمز. على سبيل المثال، يمكنك استخدام أسماء مثل http://localhost:8000 أو http://yourserver.example.com. يمكنك ترك حقل معرِّفات الموارد المنتظمة (URI) المعتمَدة لإعادة التوجيه فارغًا.
  7. انقر على الزر إنشاء للانتهاء من إنشاء بيانات الاعتماد.
  8. قبل إغلاق مربع الحوار، انسخ معرف العميل، والذي ستحتاج إلى وضعه في عينة التعليمة البرمجية.

ثم احفظ النموذج في ملف محلي. في النموذج، ابحث عن السطر التالي واستبدِل YOUR_CLIENT_ID بمعرّف العميل الذي حصلت عليه عند إعداد بيانات اعتماد التفويض.

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

الآن، أنت جاهز لاختبار العينة فعليًا:

  1. افتح الملف المحلي من متصفّح الويب وافتح وحدة التحكّم في تصحيح الأخطاء في المتصفّح. من المفترض أن تظهر لك صفحة تعرض زرَّين.
  2. انقر على الزر تفويض وتحميل لبدء مسار تفويض المستخدم. إذا سمحت للتطبيق باسترداد بيانات قناتك، من المفترض أن تظهر الأسطر التالية في وحدة التحكّم في المتصفح:
    Sign-in successful
    GAPI client loaded for API
  3. إذا ظهرت لك رسالة خطأ بدلاً من الأسطر أعلاه، فتأكد من أنك تحمِّل النص البرمجي من معرّف الموارد المنتظم (URI) المعتمد لإعادة التوجيه الذي أعددته لمشروعك، وأنك وضعت معرّف العميل في الرمز كما هو موضح أعلاه.
  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 لاسترداد المشاهدات اليومية ومقاييس أخرى لقناة المستخدم المرخّص للعام التقويمي 2017. يستخدم النموذج مكتبة برامج Google APIs Python.

قبل تشغيل هذا النموذج محليًا للمرة الأولى، عليك إعداد بيانات اعتماد التفويض لمشروعك:
  1. أنشئ مشروعًا أو اختَره في وحدة التحكم في واجهة Google API.
  2. فعِّل YouTube Analytics API لمشروعك.
  3. في أعلى صفحة بيانات الاعتماد، اختَر علامة التبويب شاشة موافقة OAuth. حدد عنوان بريد إلكتروني وأدخل اسم منتج إذا لم يكن قد تم تعيينه من قبل، ثم انقر على الزر "حفظ".
  4. في صفحة بيانات الاعتماد، انقر على الزر إنشاء بيانات اعتماد واختَر معرِّف عميل Oauth.
  5. اختَر نوع التطبيق غير ذلك، وأدخِل الاسم "البدء السريع لواجهة برمجة تطبيقات YouTube Analytics"، ثمّ انقر على الزر "إنشاء".
  6. انقر على حسنًا لإغلاق مربّع الحوار الناتج.
  7. انقر على الزر (تنزيل JSON) على يسار معرِّف العميل.
  8. انقل الملف الذي تم تنزيله إلى دليل العمل.

تحتاج أيضًا إلى تثبيت مكتبة عملاء Google APIs للغة Python وبعض المكتبات الإضافية:

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. اتّبِع خطوات عملية التفويض. قد يتم تحميل مسار المصادقة تلقائيًا في المتصفِّح، أو قد تحتاج إلى نسخ عنوان URL للمصادقة إلى نافذة متصفِّح. في نهاية عملية منح الإذن، إذا لزم الأمر، الصِق رمز التفويض المعروض في المتصفّح في نافذة المحطة الطرفية وانقر على [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 لطلب بيانات من واجهة برمجة التطبيقات هذه والاطّلاع على طلب البيانات من واجهة برمجة التطبيقات والاستجابة لها.