1

我正尝试使用Data API将字幕上传到YouTube。不过,我无法在参考资料或论坛中找到Ruby中的任何示例。具体如何发送实际的标题文件(xml)。上传字幕YouTube数据API ruby​​

body = { 
    :snippet => { 
     :videoId => videoId, 
     :language => "English", 
     :name => "English" 
    } 
    } 
    captions_insert_response = client.execute(
    :api_method => youtube.captions.insert, 
    :parameters => { 
     :part => body.keys.join(',') 
    }, 
    :body_object => body 
) 

在哪里以及如何添加标题文件?我试图像上传视频一样,但似乎没有工作。后加入这行“:body_object”

:media => Google::APIClient::UploadIO.new(captions_file, 'text/xml') 

感谢

回答

0

我解决了改变的片段,以“EN”的语言问题。 这是完整的请求,如果有人需要它。

body = { 
    :snippet => { 
     :videoId => videoId, 
     :language => "en", 
     :name => "English" 
    } 
    } 
    captions_insert_response = client.execute(
    :api_method => youtube.captions.insert, 
    :body_object => body, 
    :media => Google::APIClient::UploadIO.new(captions_file, 'text/xml'), 
    :parameters => { 
     'uploadType' => 'multipart', 
     :part => body.keys.join(',') 
    } 
) 
+0

试图实现相同的功能,但每次都收到错误'insufficientPermissions'。可能你有想法为什么? – Ponf

+1

获取客户端和YouTube对象(身份验证)时,请使用scope =“https://www.googleapis.com/auth/youtube.force-ssl”。这应该给你必要的权限。现在让我来,如果你需要更多的帮助 – sebastian

+0

谢谢!随着范围它工作正常!现在我有下一个错误:(我使用标志':sync => true',因为我上传了原始文本并希望YouTube自动设置时间戳。我成功上传了字幕,在Web UI中查看它们,并且可以下载相同的文件。但他们的状态是'曲目内容未处理'https://s.mail.ru/5M1ERcaaj2o7/img-2015-12-16-17-49-12.png :( – Ponf