Как да получите текущия брой гледания на всички видеоклипове в канал от 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 от 2 части би помогнал с вашето запитване.

Мисля си да извикате 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 и задава стойността на параметъра тип на video, така че мисля, че използването на playlistItems с качения плейлист все още е правилният начин. Цената на Videos:list не зависи от броя на включените видеоклипове, нали? - person Chumanista; 26.09.2016
comment
Да, това няма да зависи от броя на видеоклиповете, независимо от това колко разделени със запетая videoid има в параметъра id, пак ще ви струва около 3 квотни точки (в зависимост от parts, които ще ви трябват. - person adjuremods; 26.09.2016