Как получить количество просмотров из API YouTube для Android

Как получить количество просмотров из API-интерфейсов YouTube для Android: я не могу найти какой-либо документ, связанный с getViewCount из API-интерфейсов YouTube для Android. Есть информация, доступная для Java в целом, но не для Android. Я застрял, пожалуйста, помогите.

1 ответ

Решение

https://www.googleapis.com/youtube/v3/videos?part=statistics&id={{VIDEO-ID}} & key = {{YOUR-KEY}}

А под JSONObject для статистики есть поле с именем "viewCount"

Документация, чтобы помочь вам: https://developers.google.com/youtube/v3/docs/videos

При использовании REST API Client

Вот пример, когда вы добавляете статистическую часть:

{
 "kind": "youtube#videoListResponse",
 "etag": etag,
 "pageInfo": {
 "totalResults": integer,
 "resultsPerPage": integer
},
"items": [
  {
   "kind": "youtube#video",
   "etag": etag,
   "id": string,
   "statistics": {
    "viewCount": unsigned long,
    "likeCount": unsigned long,
    "dislikeCount": unsigned long,
    "favoriteCount": unsigned long,
    "commentCount": unsigned long
   }
  }
]

Просто возьмите объект JSONObject, называемый "статистика", а затем непосредственно получите доступ к полю "viewCount".

JSONArray items = response.getJSONArray("items");
JSONObject statistics = items.getJSONObject(0).getJSONObject("statistics");
Long views = statistics.getLong("viewCount");

РЕДАКТИРОВАТЬ: показать фактический ответ и правильный доступ

При использовании модуля YouTube API v3

Добавьте зависимость Youtube API v3 в свой проект в папке app build.gradle:

dependencies {
    compile 'com.google.apis:google-api-services-youtube:v3-rev152-1.21.0'
}

Это заголовок или файл jar, который вам нужен. Затем вы можете создать экземпляр объекта YouTube, как я показал выше:

YouTube youtube = new YouTube.Builder(new NetHttpTransport(), new JacksonFactory(), new HttpRequestInitializer());

YouTube.Videos.List videoRequest = youtube.videos().list("contentDetails");
 videoRequest.setId("SOME-VIDEO-ID");
 videoRequest.setFields("items/contentDetails");
 videoRequest.setKey("YOUR-API-KEY");
 VideoListResponse response = videoRequest.execute(); //blocking call, ensure to perform off ui thread via AsyncTask 
 List<Video> videosList = response.getItems(); 

 if(videosList != null && videosList.size() > 0){
     Video video = videosList.get(0);
     VideoStatistics statistics = video.getStatistics();
     BigInteger viewCount = statistics.getViewCount();
 }

Документы: https://developers.google.com/resources/api-libraries/documentation/youtube/v3/java/latest/com/google/api/services/youtube/model/Video.html

Другие вопросы по тегам