API-интерфейс YouTube v3 ужасно документирован. Я уже неоднократно сообщал о многочисленных ошибках, но никто не реагирует. Мне еще нужно использовать этот API для загрузки эскизов. Направляющие состояния:Загрузка миниатюр API YouTube v3 с ошибкой
POST https://www.googleapis.com/youtube/v3/thumbnails/set
Auth scopes:
- https://www.googleapis.com/auth/youtubepartner
- https://www.googleapis.com/auth/youtube.upload
- https://www.googleapis.com/auth/youtube
Parameters:
- videoId: string The videoId parameter specifies a YouTube video ID for which the custom video thumbnail is being provided.
Прежде всего - URL-адрес является неправильным. Это должно быть https://www.googleapis.com/upload/youtube/v3/thumbnails/set
. Теперь следующий код, он использует Unirest
:
final HttpResponse<String> response = Unirest.post("https://www.googleapis.com/upload/youtube/v3/thumbnails/set")
.header("Content-Type", "application/octet-stream")
.header("Authorization", accountService.getAuthentication(account).getHeader())
.field("videoId", videoid)
.field("thumbnail", thumbnail)
.asString();
Полученный ответ:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Required parameter: videoId",
"locationType": "parameter",
"location": "videoId"
}
],
"code": 400,
"message": "Required parameter: videoId"
}
}
Как это может быть? VideoId установлен! Кто-нибудь уже играл с этой частью API?
я могу изменить запрос
Unirest.post("https://www.googleapis.com/upload/youtube/v3/thumbnails/set?videoId=" + videoid)
.header("Content-Type", "application/octet-stream")
.header("Authorization", accountService.getAuthentication(account).getHeader())
.field("mediaUpload", thumbnail)
.asString();
Это отбросит мне эту ошибку:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "backendError",
"message": "Backend Error"
}
],
"code": 503,
"message": "Backend Error"
}
}
Edit: же запрос с URL, размещенный Ibrahim Ulukaya (исходным URL из справочника):
{
"error": {
"errors": [
{
"domain": "global",
"reason": "wrongUrlForUpload",
"message": "Uploads must be sent to the upload URL. Re-send this request to https://www.googleapis.com/upload/youtube/v3/thumbnails/set"
}
],
"code": 400,
"message": "Uploads must be sent to the upload URL. Re-send this request to https://www.googleapis.com/upload/youtube/v3/thumbnails/set"
}
}
Я хочу использовать библиотеку, но я не могу использовать неполные/неработающие библиотеки: D. Не проверял это, но поверьте, теперь это исправлено. –
Отличный ответ; может ли это быть добавлено в официальную документацию? – spiralman
Конечно, я найду хорошее место, чтобы добавить его. –