我将 mp4 格式的视频上传到 Google Colab 磁盘存储。然后用 Google Console 访问令牌替换并在单元格中运行以下 curl 命令:
!curl -X POST -i "https://www.googleapis.com/upload/youtube/v3/videos?uploadType=resumable&part=snippet%2Cstatus" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json; charset=UTF-8" \
-d "{\"snippet\":{\"categoryId\":\"22\",\"description\":\"Description of uploaded video.\",\"title\":\"Test video upload.\"},\"status\":{\"privacyStatus\":\"private\"}}"
运行此命令后,我获得了位置 URL,并在以下 curl 命令中将其替换为 google colab 中我的视频的路径,然后成功运行以下命令:
!curl -X PUT -i 'https://www.googleapis.com/upload/youtube/v3/videos?uploadType=resumable&part=snippet%2Cstatus&upload_id=###' \
-F "media=@/path/to/video.mp4"
但成功执行上述两个命令后,我在我的 YouTube 频道上遇到了以下场景。问题是什么?
https://i.stack.imgur.com/cOJIN.jpg
我用不同大小的视频测试了上述命令,但问题仍然存在。我甚至用 3 MB 的视频测试了这些指令。问题不在于视频的大小!我该如何解决这个问题?
答案1
来源: https://qmacro.org/blog/posts/2021/03/30/two-phase-video-uploads-with-youtube-api-and-curl/
遇到了同样的问题,基本答案如下:
curl [[location field URL from first curl POST]] --header "Authorization: Bearer $token" --data-binary @/path/to/file.mp4
这实际上已经上传了视频。