2015-06-30 2 views
0

Поскольку старый фид на http://gdata.youtube.com/feeds/api/videos?author=[channel]&start-index=[index] больше не доступен, мне пришлось перейти на официальный API YouTube, чтобы получить список всех видеороликов, присутствующих на канале. Тем не менее, я столкнулся с проблемой, что этот API не возвращает правильный видеозапуск по каналу. Это также приводит к невозможности использования pageToken, так как никто не возвращается.API-интерфейс YouTube, возвращающий ошибочные результаты

Ожидаемый результат: всего 159 видеороликов, однако около 50% API говорит мне, что всего 16 видеороликов.

Я использую следующий URL:

https://www.googleapis.com/youtube/v3/search?key=*****&channelId=UCsuBLfTDK4Hjn9Q6AYPwGqQ&part=snippet,id&order=date&maxResults=25 

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

Есть ли что-нибудь, что я могу сделать для решения этой проблемы, или это проблема, которая лежит на стороне YouTube? Или есть что-нибудь еще, что я могу использовать в качестве альтернативы? Все, что мне нужно - это идентификаторы видео каждого видео на определенном канале.

+0

Несколько ссылок, которые могут вам понравиться http://stackoverflow.com/questions/25918405/youtube-api-v3-page-tokens/25928207#25928207 https://code.google.com/p/gdata-issues/ проблемы/детали? id = 4282 http://stackoverflow.com/questions/30867855/listing-large-amount-of-subscriptions-of-a-youtube-channel/30868645#30868645 – DaImTo

+0

@DaImTo К сожалению, эти ссылки не предоставляют Полезная информация. Мой набор данных намного, намного меньше и не возвращает согласованные данные. Каждый запрос может возвращать 16 ИЛИ 159 результатов, и я не могу перемещаться по 159 результатам, когда возвращается 16, так как не возвращаются никакие жетоны страницы. – RemiDG

ответ

2

Во-первых, получить идентификатор для воспроизведения загрузки:

GET https://www.googleapis.com/youtube/v3/channels?part=contentDetails&id=CHANNEL_ID&key=API_KEY 

Идентификатор должен быть под 'uploads'.

Затем вы можете использовать playlistItems list метод:

GET https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId=PLAYLIST_ID&key=API_KEY 

и получить количество видео из totalResults.

В качестве альтернативы вы можете использовать код от playlistItems documentation , чтобы получить список загруженных видео.

+1

Похоже, этот работает отлично. Большое спасибо! – RemiDG

Смежные вопросы