4

我目前正在使用google-api-ruby-client将视频上传到 Youtube API V3,但我找不到获取由可恢复上传创建的 Youtube ID 的方法。我尝试使用的代码如下:

media = Google::APIClient::UploadIO.new(file_path, 'application/octet-stream')
yt_response = @client.execute!({
  :api_method => @youtube.videos.insert,
  :parameters => {
    :part => 'snippet,status',
    'uploadType' => 'resumable'
  },
  :body_object => file_details,
  :media => media
})
return JSON.parse(yt_response.response.body)

但不幸的是,对于可恢复的上传,yt_response.response.body它是空白的。如果我将其更改为'uploadType''multipart'则正文是一个包含 Youtube ID 的 JSON blob。可恢复上传的响应只是带有空正文的上传的可恢复会话 URI。如何从该 URI 进入我刚刚创建的 Youtube ID?

4

2 回答 2

1

综合如何使用 google-api-ruby 客户端将可恢复上传到 Google Drive 中的信息?现有的分段上传示例导致

videos_insert_response = client.execute!(
  :api_method => youtube.videos.insert,
  :body_object => body,
  :media => Google::APIClient::UploadIO.new(opts[:file], 'video/*'),
  :parameters => {
    'uploadType' => 'resumable',
    :part => body.keys.join(',')
  }
)
videos_insert_response.resumable_upload.send_all(client)
puts "'#{videos_insert_response.data.snippet.title}' (video id: #{videos_insert_response.data.id}) was successfully uploaded."

这对我有用。

于 2013-05-22T19:09:36.410 回答
0

我正在使用 0.7.1 版本的 API 分块进行可恢复上传,我必须这样做才能获取 ID ...

result = videos_insert_response.resumable_upload.send_all(client)
video = JSON.parse(result.response.body)

puts "Video id '#{video['id']}' was successfully uploaded."
于 2016-06-15T23:42:42.033 回答