使用FWT身份验证以编程方式将视频上传到YouTube

时间:2015-03-01 01:15:22

标签: google-api youtube-api youtube-javascript-api google-api-nodejs-client

似乎通过其API将视频上传到Youtube仅限于用户明确授权,并且所有这些都只能通过OAuth2而不是FWT来实现。 使用V3 API我得到了一个401响应代码,但我可以执行只读操作,比如获取播放列表等...

对于服务器到服务器任务,自动化OAuth不是最佳解决方案。

这是使用node.js的测试代码:

var fs = require('fs')
var google = require('googleapis')
var youtube = google.youtube('v3')

var authClient = new google.auth.JWT(
    'service-account-email@developer.gserviceaccount.com',
    'path/to/key.pem',
    null,
    ['https://www.googleapis.com/auth/youtube', 'https://www.googleapis.com/auth/youtube.upload'])

authClient.authorize(function (err, tokens) {
  if (err) {
    return console.log(err)
  }

  google.options({ auth: authClient })

  youtube.videos.insert({
    media: {
      body: fs.createReadStream('video.mp4')
    },
    autoLevels: true,
    part: 'status,snippet',
    mediaType: 'video/mp4',
    resource: {
      snippet: {
        title: 'test video',
        description: 'This is a test video uploaded from the YouTube API'
      },
      status: {
        privacyStatus: 'public'
      }
    }
  }, function (err, res) {
    if (err) {
      return console.error(err)
    }
    console.log('Upload done!')
  })
})

Google API node.js客户端原始示例: https://github.com/google/google-api-nodejs-client/blob/master/examples/jwt.js

0 个答案:

没有答案