ruby - 使用 Ruby 的可恢复 YouTube 数据 API v3 上传

标签 ruby youtube-api google-api-ruby-client

我目前正在使用 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',则 body 是一个包含 Youtube ID 的 JSON blob。可恢复上传的响应只是带有空主体的上传的可恢复 session URI。我如何从该 URI 进入我刚刚创建的 Youtube ID?

最佳答案

正在综合来自 How to engage a Resumable upload to Google Drive using google-api-ruby client? 的信息和 existing multipart upload sample导致

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."

这对我有用。

关于ruby - 使用 Ruby 的可恢复 YouTube 数据 API v3 上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16576019/

相关文章:

youtube-api - YouTube视频搜索API : Filter by tag broken?

javascript - Tokbox Youtube 广播问题

ruby-on-rails - rails : Send email using Gmail API with attachment return only encoded file not

ruby-on-rails - 系统堆栈错误 : level too deep after running db:seed

mysql - 如何在 ruby​​ 中创建 ssh 隧道,然后连接到远程主机上的 mysql 服务器

python - Youtube API : Adding videos to a playlist with the new 32 character playlist ID

ruby - 为什么在使用 Ruby 执行 Google Fusion Tables API 命令时会出现 401 错误?

ruby - Ruby 中的 Google Apps API 和服务帐户问题

xml - 在 Ruby 中使用多个 XSD 验证 XML

ruby - 如何查找一个数组是否是 Ruby 中另一个数组的子集?