Мы создали собственную базу отчетов для нашего канала Youtube, чтобы измерить производительность канала и видео.
Чтобы поддержать это, мы реализовали работу ETL по извлечению с использованием YouTube Analytics API и использовали приведенный ниже код python для получения данных.
def GetAnalyticsData(extractDate,accessToken, channelId):
channelId = 'channel%3D%3D{0}'.format(channelId)
headers = {'Authorization': 'Bearer {}'.format(accessToken),
'accept': 'application/json'}
url = 'https://youtubeanalytics.googleapis.com/v2/reports?dimensions={dimensions}&endDate={enddate}&ids={ids}&maxResults={maxresults}&metrics={metrics}&startDate={startdate}&alt={alt}&sort={sort}'.format(
dimensions='video',
ids=channelId,
enddate= extractDate,
startdate=extractDate,
metrics = 'views%2Ccomments%2Clikes%2Cdislikes%2Cshares%2CestimatedMinutesWatched%2CsubscribersGained%2CsubscribersLost%2CannotationClicks%2CannotationClickThroughRate%2CaverageViewDuration%2CaverageViewPercentage%2CannotationCloseRate%2CannotationImpressions%2CannotationClickableImpressions%2CannotationClosableImpressions%2CannotationCloses',
maxresults = 200,
alt ='json',
sort='-views'
)
return requests.get(url,headers=headers)
Мы используем этот API каждый день и получаем все видео метри c и отсортировано по просмотрам в порядке убывания.
Это частично решило нашу проблему, и он возвращает только 200 видео, если мы указываем maxResults более 200, он возвращает код ошибки 400.
Задача состоит в том, как получить все видео на заданную дату и данный канал?
Заранее спасибо. С уважением, Гуна