API YouTube - как я могу исключить не включенные в список видео? - PullRequest
0 голосов
/ 15 мая 2019

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

Меня интересует только загрузка общедоступных видео на канал.Сначала я запрашиваю API данных YouTube, чтобы получить список видео в списке воспроизведения uploads, и когда у меня появляется список video ids, я вызываю API аналитики YouTube для каждого видео и получаю необходимую статистику.

У меня проблема в том, что когда я перечисляю все видео в плейлисте uploads, я получаю сотни тысяч (!!!) unlisted видео, которые мне не нужны.

Я не могу позволить себе загрузить весь список, а затем проверить статус, чтобы сохранить только общедоступные видео, поскольку число слишком велико, и я достигаю своей дневной квоты.Это также был бы очень неэффективный способ сделать это.

есть ли способ перечислять только видео со статусом public для определенного списка воспроизведения?

Это текущий метод, который я использую:

data = service.playlistItems().list(
    part="snippet,status",
    playlistId=playlistID,
    maxResults="50",
).execute() 

Я не смог найти в документации YouTube по поводу того, как этого добиться.

Ответы [ 3 ]

1 голос
/ 15 мая 2019

Вы пытались использовать PlaylistItems конечную точку, не пройдя аутентификацию, а вместо этого, используя только свой ключ API параметр?

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

0 голосов
/ 19 мая 2019

Этот текст doc четко очерчивает концепции API аутентификации и авторизации .

По сути, я предполагал, что при использовании APIключ вместо аутентификации через OAuth - то есть когда build получает параметр developerKey вместо credentials - тогда ответ конечной точки будет включать только публичные видео,даже в том случае, если соответствующий ключ API (передаваемый как параметр developerKey) происходит из вашей учетной записи для первоначальной аутентификации.

0 голосов
/ 16 мая 2019

Согласно документу , существует два способа, которыми пользователь может получить доступ к любой заданной конечной точке API: с помощью ключа API или, в противном случае, с помощью токена OAuth.

Любой пользователь может запросить с консоли разработчика API-ключа API разработчика Google, что он передаст интересующую его конечную точку в качестве параметра ключа . В случае использования клиентской библиотеки Python API ваш код должен быть похож на this :

from googleapiclient.discovery import build
service = build(serviceName = 'youtube', version = 'v3', developerKey = DEVELOPER_KEY)

, где DEVELOPER_KEY - это строка ключа API, полученная от Google. Обратите внимание, что такой ключ API является личной информацией пользователя.

Вот и все: вместо OAuth используйте ключ API.

...