Как получить количество просмотров из 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();
}