YouTube API — подсчет загрузок за определенный период времени

Я управляю CMS YouTube и пытаюсь подсчитать количество загрузок в течение определенного месяца. CMS может иметь несколько каналов, мне нужно общее количество загрузок.

Из документации я чувствую, что это должно работать:

function videosList($service, $part, $params) {
    $params = array_filter($params);
    $response = $service->search->listSearch($part,$params);
    print_r($response);
}

videosList($youtube,"snippet",array(
    array('forContentOwner' => true),
    'type' => 'video',
    'maxResults' => 1,
    'onBehalfOfContentOwner' => $CMSID,
    'publishedBefore' => date("c",strtotime("first day of this month")),
    'publishedAfter' => date("c",strtotime("first day of last month"))            
));

Но в результате отображаются все общедоступные видео в пределах временных рамок, а не только те видео с каналов, которыми я управляю в рамках $CMSID.

Для справки, в документации по API говорится:

Параметр forContentOwner ограничивает поиск только видео, принадлежащими владельцу контента, указанному в параметре onBehalfOfContentOwner. Если для forContentOwner задано значение true, запрос также должен соответствовать следующим требованиям: Требуется параметр onBehalfOfContentOwner. Пользователь, авторизующий запрос, должен использовать учетную запись, связанную с указанным владельцем контента. Значение параметра типа должно быть установлено на видео. Ни один из следующих других параметров не может быть установлен: videoDefinition, videoDimension, videoDuration, videoLicense, videoEmbeddable, videoSyndicated, videoType.


person lufc    schedule 23.01.2018    source источник


Ответы (1)


Если вы обратитесь к документации, вы увидите, что вам не хватает часть, где вы можете использовать параметр forMine. Как обсуждалось в этом SO post.

forMine логическое значение

Этот параметр можно использовать только в правильно авторизованном запросе. Параметр forMine ограничивает поиск только видео, принадлежащими аутентифицированному пользователю. Если вы установите для этого параметра значение true, то значение параметра type также должно быть установлено на video. Кроме того, в одном и том же запросе нельзя задать ни один из следующих параметров: videoDefinition, videoDimension, videoDuration, videoLicense, videoEmbeddable, videoSyndicated, videoType.

Когда вы проверяете другой пост SO, он также упоминается здесь тот,

Проблема в конфликтующих ограничениях поиска, которые вы использовали. Чтобы ваш поиск работал, оставьте параметр forMine пустым, чтобы он не конфликтовал с вашими фильтрами дат и, возможно, с параметром q.

person MαπμQμαπkγVπ.0    schedule 25.01.2018
comment
Пользователь, прошедший проверку подлинности, является партнером YouTube с несколькими CMS. Поэтому мне нужно указать параметры forContentOwner и onBehalfOfContentOwner. - person lufc; 25.01.2018