祝您玩得开心,我使用 Google api v3 将视频上传到 YouTube。不幸的是,我从昨天开始就面临这个错误,代码或服务器没有任何更改。
我在不同部分搜索了错误文本,但没有得到任何结果。我唯一发现的是这个包和这个地址的文件 src/Http/MediaFileUpload.php 指定content-type,值为application/json;设置 charset=UTF-8。我想这就是问题所在。请指导我。
谢谢
"error": { "code": 400, "message": "Media type 'application/json; charset=UTF-8' is not supported. ", "errors": [ { "message": "Media type 'application/json; charset=UTF-8' is not supported. ", "domain": "global", "reason": "badRequest" } ], "status": "INVALID_ARGUMENT" }
$chunkSizeBytes = 15 * 1024 * 1024; $client->setDefer(true); $insertRequest = $youtube->videos->insert("status,snippet,recordingDetails", $video , [ 'notifySubscribers' => true ]); $media = new MediaFileUpload( $client, $insertRequest, 'video/'.File::extension($videoPath), null, false, $chunkSizeBytes ); $media->setFileSize(File::size($videoPath)); $status = false; $handle = fopen($videoPath, "rb"); while (!$status && !feof($handle)) { $chunk = fread($handle, $chunkSizeBytes); $status = $media->nextChunk($chunk); } fclose($handle); $client->setDefer(false);
查看代码,当
$resumable
为 false 时,媒体类型application/json
发生(请参阅 此处 和 此处)。所以我会尝试设置
$resumable = true
(这是MediaFileUpload
的第五个参数)。您可以在large-file-upload.php
。