Как получить текущее количество просмотров всех видео на канале из API YouTube?

Пока подписка на счету

www.googleapis.com/youtube/v3/channels?part=statistics

кажется, обновляется мгновенно, просмотры обновляются ежедневно.

Обходной путь, который я нашел, заключался в том, чтобы перечислить все видео в «загруженном» плейлисте с помощью

www.googleapis.com/youtube/v3/playlistItems?part=contentDetails

и перебирать их, вызывая

www.googleapis.com/youtube/v3/videos?part=statistics

для каждого. Кажется, это дает наиболее точные результаты, хотя для каждого загруженного видео требуется более 3 кредитов, поэтому моя квота используется относительно быстро.

Есть ли более быстрый способ решить эту проблему?
Я хотел бы реализовать его на ESP8266, поэтому было бы предпочтительнее не требовать много памяти или вычислительной мощности.


person Chumanista    schedule 24.09.2016    source источник


Ответы (1)


Вы можете получить количество просмотров, получив liveStreamingDetails, объект liveStreamingDetails содержит метаданные о живом видео. транслировать. Объект будет присутствовать в видеоресурсе только в том случае, если видео является предстоящей, прямой или завершенной прямой трансляцией. Затем под этим вы получите concurrentViewers. Он покажет количество зрителей, которые в данный момент смотрят трансляцию. Свойство и его значение будут присутствовать, если у трансляции есть текущие зрители и владелец трансляции не скрыл количество просмотров видео.

ИЗМЕНИТЬ

В зависимости от вашего варианта использования, я считаю, что двухкомпонентный API поможет с вашим запросом.

Я думаю о том, как вы вызовете search запрос, чтобы получить все видео с канала. Ресурс Поиск будет иметь id.videoId, который вы объедините как часть list звоните. Это даст вам statistics.viewCount каждого видео, которые вам нужно будет сложить, чтобы получить общее количество просмотров канала.

Надеюсь, это поможет с вашим запросом.

Удачного кодирования!

person adjuremods    schedule 26.09.2016
comment
Я спрашиваю не о том, как получить количество просмотров прямой трансляции, а о том, как получить текущее общее количество просмотров всех видео на выбранном канале. - person Chumanista; 26.09.2016
comment
Изменено название, чтобы оно лучше отражало. - person Chumanista; 26.09.2016
comment
Пожалуйста, посмотрите мой обновленный ответ, надеюсь, его достаточно для того, что вам нужно. - person adjuremods; 26.09.2016
comment
Вызов этого метода имеет стоимость квоты 1 единицу в дополнение к стоимости указанных частей ресурсов. Таким образом, общая стоимость будет равна 3 (для перечисления видео из плейлиста) + 3 (для получения статистики по идентификаторам) для получения каждых 50 видео, верно? И все будущие вызовы могут использовать кешированные идентификаторы видео? - person Chumanista; 26.09.2016
comment
Это будет стоить вам всего 3 балла за вызов Videos:list, поскольку вам понадобится только часть statistics (вызов search не указывает, есть ли стоимость квоты, а я предполагаю, что ее нет). Тем не менее, будущие вызовы, вероятно, по-прежнему будут нести расходы по квоте. - person adjuremods; 26.09.2016
comment
На странице поиска указано, что результаты поиска ограничены максимум 500 видео, если в вашем запросе указано значение для параметра channelId и установлено значение параметра type для видео, поэтому я думаю, что использование playlistItems с загруженным списком воспроизведения по-прежнему возможно. Стоимость Videos:list не зависит от количества включенных видео, верно? - person Chumanista; 26.09.2016
comment
Да, это не будет зависеть от количества видео, независимо от того, сколько разделенных запятыми videoid находится в параметре id, это все равно будет стоить вам около 3 баллов квоты (в зависимости от part, которые вам понадобятся. - person adjuremods; 26.09.2016