У меня есть приложение, использующее API YouTube v3, которое позволяет просматривать видео через API гида, переходя от категорий гида к каналам и видео.
Я хотел бы предоставить локализованные результаты, но получить текст на английском языке в тех местах, где я ожидаю местных описаний. Я понимаю, что не могу ожидать, что каналы, принадлежащие пользователям, будут локализованы, но некоторые из результатов, по-видимому, являются автоматически сгенерированными каналами, которые будут отображаться в Интернете в переводе.
Я могу легко получить список категорий гидов, например. Испанский с призывом к youtube.guideCategories.list(part=snippet, hl=es-ES, regionCode=ES)
:
{
"kind": "youtube#guideCategoryListResponse",
"etag": "\"MmqJLb8ZBOWRQIsg7xej7lrKLMI/RxpLDjICTxI6pEJgKxa1GihOABg\"",
"items": [
{
"kind": "youtube#guideCategory",
"etag": "\"MmqJLb8ZBOWRQIsg7xej7lrKLMI/fnL4T7wf3HKS8VCeb2Mui5q9zeM\"",
"id": "GCQmVzdCBvZiBZb3VUdWJl",
"snippet": {
"channelId": "UCBR8-60-B28hp2BmDPdntcQ",
"title": "Best of YouTube"
}
},
...
{
"kind": "youtube#guideCategory",
"etag": "\"MmqJLb8ZBOWRQIsg7xej7lrKLMI/a2ukJS2cvl7NN20p8C2B9uYePoM\"",
"id": "GCTXVzaWM",
"snippet": {
"channelId": "UCBR8-60-B28hp2BmDPdntcQ",
"title": "Música"
}
},
...
}
}
Помимо нескольких результатов, таких как «Лучшее на YouTube», это возвращает локализованные названия категорий руководств, как я и ожидал. Проблема возникает, когда я хочу углубиться в одну из этих категорий.
Например, если я хочу получить каналы в категории "Лучшее на YouTube", я звоню youtube.channels.list(part=snippet, categoryId=GCQmVzdCBvZiBZb3VUdWJl)
:
{
"kind": "youtube#channelListResponse",
"etag": "\"MmqJLb8ZBOWRQIsg7xej7lrKLMI/o8HbT_CvdwGx45Gqb3VT3jnxz8Y\"",
"nextPageToken": "CAUQAA",
"pageInfo": {
"totalResults": 9,
"resultsPerPage": 5
},
"items": [
{
"kind": "youtube#channel",
"etag": "\"MmqJLb8ZBOWRQIsg7xej7lrKLMI/3COvNpjUozOrHwTDRG2SKLHlbDs\"",
"id": "UCEgdi0XIXXZ-qJOFPf4JSKw",
"snippet": {
"title": "Sports",
"description": "Sport is all forms of usually competitive physical activity which, ....\nThis channel was generated automatically by YouTube's video discovery system.",
"publishedAt": "2013-12-15T20:39:04.000Z",
"thumbnails": {
"default": {
"url": "https://i.ytimg.com/i/Egdi0XIXXZ-qJOFPf4JSKw/1.jpg"
},
"medium": {
"url": "https://i.ytimg.com/i/Egdi0XIXXZ-qJOFPf4JSKw/mq1.jpg"
},
"high": {
"url": "https://i.ytimg.com/i/Egdi0XIXXZ-qJOFPf4JSKw/hq1.jpg"
}
}
}
},
...
}
}
Как видите, этот автоматически сгенерированный канал возвращается с названием и описанием на английском языке. Этот API не документирован, чтобы принимать параметр hl
для установки желаемого языка, и не будет вести себя иначе, если я все равно вызову его с этим параметром. Я также безуспешно пытался установить заголовок HTTP-запроса Accept-Language
.
Если я просматриваю этот автоматически созданный канал на веб-сайте YouTube по адресу https://www.youtube.com/channel/UCEgdi0XIXXZ-qJOFPf4JSKw и измените язык веб-сайта на испанский. Я вижу локализованное название «Deportes» и соответствующее описание. Есть ли способ получить ту же информацию через API?