使用API​​ v3和Ruby上传到Youtube

时间:2016-04-06 14:46:55

标签: python ruby api youtube

我正在尝试使用Ruby使用简单的http请求将视频上传到youtube,但由于某些原因它似乎不起作用。 这是代码:

require 'httparty'
token = 'blahblah'
filename = 'video.mp4'
headerinfo = {
    'Host' => 'www.googleapis.com',
    'Authorization' => 'Bearer ' + token,
    'Content-Type' => 'application/json; charset=UTF-8',
    'X-Upload-Content-Length' => File.size(filename).to_s,
    'X-Upload-Content-Type'  => 'video/mp4'
    }


HTTParty.post('https://www.googleapis.com/upload/youtube/v3/videos?part=snippet,status',
    :header => headerinfo,
    :data =>{
        'snippet' =>{
            'title' => 'My test video from Ruby',
            'description' => 'nice video'
        },
        'status' =>{
            'embeddable' => true,
            'privacyStatus' => 'public',
            'license' => 'youtube'
        }
    }.to_json,
    :media => (File.open(filename,'rb').read)

    )

错误如下:

{"domain"=>"global", "reason"=>"required", "message"=>"Login Required", "locationType"=>"header", "location"=>"Authorization"}

令牌是正确的,因为我在另一个基于python的应用程序上测试它,它的工作原理。我做错了什么?

注意:我也尝试使用谷歌api库,但无法让它工作。它没有正确地提到在哪里提供令牌ID等。我创建了client_secrets.json文件以及所有其他必要的信息,但我仍然不确定在何处指定令牌。以下是Google提供的代码:https://developers.google.com/youtube/v3/docs/videos/insert

要么对我来说应该没问题,但如果我能通过一个简单的邮寄请求让它工作就会很棒。

任何帮助都将不胜感激。

0 个答案:

没有答案