用javascript上传视频到youtube,无需登录谷歌



我想允许我网站的访问者上传视频到我的YouTube频道。

我不想强迫访问者用Google登录。

我希望上传从访问者浏览器直接发送到使用CORS或类似的YouTube。

我不想在我的服务器上处理视频。我不喜欢我的服务器首先接收一个1GB(示例)的文件,然后将其发送到YouTube。它会强调我的存储能力和带宽。

下面的例子几乎是完美的。

唯一的问题是它需要用户登录他们的google帐户。

我想知道的是,如果我能以某种方式给客户适当的凭据,使用我的帐户上传视频。

这可能吗?我是否可以在服务器端生成某种访问令牌并将其发送给客户端,以便客户端可以以我的名义将视频上传到YouTube ?

它可以不给客户做其他事情的能力,如删除视频/编辑我的帐户等吗?

示例:https://youtube-api-samples.googlecode.com/git/yt-upload-javascript/index.html

这是可能的。我现在正在做一个类似的东西。一般的想法是将所有安全的秘密数据存储在服务器上。(客户端秘密,刷新令牌等)

然后当客户端想要将视频上传到youtube时,您(通过服务器)检查令牌是否已过期(1小时过期时间)。

如果它有,你需要从youtube请求一个新的access_token,然后将其传递回客户端供他们使用。

只是为了你的信息,我使用moment.js的计时和meteors .js的应用程序。

var now = moment();
var result;
if (now.diff(Meteor.settings.youtube.expiration, 'minutes') >= 50) {
  console.log('Getting new access token...')
  var options = {
    headers: {
      "Content-Type": "application/x-www-form-urlencoded"
    },
    content: "client_secret=" + Meteor.settings.youtube.client_secret + "&grant_type=refresh_token&refresh_token=" + Meteor.settings.youtube.refresh_token + "&client_id=" + Meteor.settings.youtube.client_id
  }
  try {
    result = HTTP.call("POST", 'https://www.googleapis.com/oauth2/v3/token', options);
    Meteor.settings.youtube.access_token = result.data.access_token;
    Meteor.settings.youtube.expiration = moment();
    return Meteor.settings.youtube.access_token;
  } catch (e) {
    // Got a network error, time-out or HTTP error in the 400 or 500 range.
    return false;
  }
} else {
  console.log('Returning access token...')
  return Meteor.settings.youtube.access_token;
}

相关内容

  • 没有找到相关文章

最新更新