youtube - 使用JavaScript将视频上传到youtube,而无需登录google

标签 youtube google-api youtube-api google-oauth youtube-javascript-api

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

我不想强制访客使用Google登录。

我希望使用CORS或类似工具将上传的内容从访问者浏览器直接发送到YouTube。请参见下面的示例。

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

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

唯一的问题是,它要求用户登录用户的Google帐户。

我想知道的是,是否可以通过某种方式为客户提供适当的凭据,以使用我的帐户上传视频。

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

是否可以在不使客户能够执行其他操作(例如删除视频/编辑我的帐户等)的情况下完成?

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

最佳答案

有可能的。我目前正在建立类似的东西。通常的想法是,您将所有安全 secret 数据存储在服务器上。 (客户端 secret ,刷新 token 等)

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

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

仅出于您的信息,我正在使用moment.js进行计时,并使用Meteor.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;
}

关于youtube - 使用JavaScript将视频上传到youtube,而无需登录google,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25366904/

相关文章:

iphone - 如何阅读 YouTube channel ?

php - 从YouTube获取订阅者姓名

youtube - 如何找到 YouTube 视频的播放秒数?

api - 谷歌 API 更改了来自谷歌金融的数据

php - 如何通过YouTube API检索视频中的喜欢和不喜欢的东西

javascript - 修复 Youtube API 的随机播放列表

javascript - 如何在页面加载时自动播放嵌入 YouTube 视频?

google-api - 具有捆绑标识符的 iOS 应用程序的 API key 限制

java - YouTube 播放器自定义应用程序每次都会强制关闭

python - 如何为 youtube python api 使用 refresh_token?