После нескольких тестов и благодаря этому ответу (и следующим ответам тоже) Мне удалось получить необходимую информацию с помощью API данных YouTube v3, и вот какЯ сделал это:
Во-первых, в своем вопросе вы используете "search" API - так как я не знаю, какие критерии вы используете в поисковом запросе, я пропустилдля получения прямого получения идентификатора списка воспроизведения "upload
" из заданного channel_id
.
с использованием channel_id
= UCT2rZIAL-zNqeK1OmLLUa6g
(который принадлежит " Microsoft HoloLens"), я использую " каналы "API для получения uploads
идентификатора списка воспроизведения.
Вот URL-запрос для получения" upload
"идентификатора списка воспроизведения изchannel_id
ранее упомянуто:
https://www.googleapis.com/youtube/v3/channels?part=id%2Csnippet%2CcontentDetails&fields=items(contentDetails%2FrelatedPlaylists%2Fuploads%2Csnippet%2Flocalized)&id=UCT2rZIAL-zNqeK1OmLLUa6g&key=<YOUR_API_KEY>
Объяснение:
- часть : установите
snippet
и contentDetails
детали для извлечения: - поля : из
snippet
часть: (localized
, description
и title
) и из contentDetails
части: (relatedPlayLists
и uploads
). - id :
channel_id
используется в этом запросе.
Вот результаты этого запроса:
{
"items": [
{
"snippet": {
"localized": {
"title": "Microsoft HoloLens",
"description": "The official YouTube channel of Microsoft HoloLens. Transform your world with holograms. Visit HoloLens.com for more info."
}
},
"contentDetails": {
"relatedPlaylists": {
"uploads": "UUT2rZIAL-zNqeK1OmLLUa6g"
}
}
}
]
}
Проверьте значение uploads
свойство в разделе contentDetails
.Это значение будет использовано в следующем запросе API.
Вы также можете проверить эти результаты в демонстрационной версии Google API Explorer , которую я подготовил для выполнения этого запроса.
После извлечения значения uploads
(как указано в предыдущих строках) , теперь пришло время использовать "playlistItems" API для сборкиследующий URL:
https://www.googleapis.com/youtube/v3/playlistItems?part=snippet%2CcontentDetails&playlistId=UUT2rZIAL-zNqeK1OmLLUa6g&fields=items(contentDetails(videoId%2CvideoPublishedAt)%2Csnippet%2Ftitle%2Cstatus)&maxResults=25&key=<YOUR_API_KEY>
Объяснение:
- часть : установите
snippet
и contentDetails
частей для извлечения следующего: - поля : из
snippet
часть: (title
и status
) и от contentDetails
части: (videoId
и videoPublishedAt
). - playlistId :
playlistId
используется в этом запросе - (то есть значение uploads
) . - maxResults : установите на
25
.
Вот результаты этого запроса:
{
"items": [
{
"snippet": {
"title": "Microsoft Windows Mixed Reality update | October 2018"
},
"contentDetails": {
"videoId": "00vnln25HBg",
"videoPublishedAt": "2019-01-04T17:43:47.000Z"
}
},
{
"snippet": {
"title": "How to use Spectator View for mobile devices"
},
"contentDetails": {
"videoId": "3fXlPw_FGLg",
"videoPublishedAt": "2018-10-15T17:13:42.000Z"
}
},
{
"snippet": {
"title": "Microsoft HoloLens: Visualizing the next mission to Mars."
},
"contentDetails": {
"videoId": "XVBbJ4EtAQY",
"videoPublishedAt": "2018-07-02T16:30:26.000Z"
}
},
{
"snippet": {
"title": "Microsoft HoloLens: Making mixed reality plug and play."
},
"contentDetails": {
"videoId": "QwXcSekZKWE",
"videoPublishedAt": "2018-06-25T23:25:55.000Z"
}
},
{
"snippet": {
"title": "Microsoft HoloLens | Windows Mixed Reality HMD Exerciser"
},
"contentDetails": {
"videoId": "RU3OMjq_Yic",
"videoPublishedAt": "2018-05-14T16:58:43.000Z"
}
}
]
}
Я проверяю oСортировка элементов и их сортировка по videoPublishedAt
значению (от нового к старому) .
Вы также можете проверить эти результаты в попытке -it funcionality найдено в API данных YouTube v3 - официальная документация. 1
1 В этом случае я не смог использоватьGoogle API Explorer (как я использовал в первом запросе) , потому что я всегда получал «ошибку бэкэнда».
{
"error": {
"errors": [
{
"domain": "global",
"reason": "backendError",
"message": "Backend Error"
}
],
"code": 500,
"message": "Backend Error"
}
}
Я думаю, это потому, что проводник Google API устарел.
Если кто-то захочет проверить его, вот демо .