我应该使用哪种Youtube Data API身份验证方法?

时间:2010-06-21 21:34:37

标签: ruby-on-rails api authentication youtube

问题

哪些Youtube Data API身份验证方法允许我将视频上传到单个频道而无需强制我的网站用户进行身份验证?

  1. 的OAuth
  2. 的AuthSub
  3. 客户登录
  4. 我读过http://code.google.com/apis/youtube/2.0/developers_guide_protocol.html#Authentication但仍不确定。

    背景

    我正在Ruby on Rails中构建一个应用程序,要求用户上传视频并将其与应用程序中的帐户(而不是他们的YouTube帐户)相关联。

    我不需要将他们上传的视频与您的YouTube帐户相关联,将所有上传的视频都放在一个YouTube频道中,这与Doritos Guru比赛的工作方式类似({{3} })

    据我所知,我只需要访问我可以创建的单个YouTube帐户,并通过此帐户上传所有视频。就youtube而言,这个用户将拥有所有视频。

    我已经阅读了所提供的不同身份验证选项(http://www.youtube.com/user/doritosguru)但仍不确定哪些符合我的需求。

    另外,我正在寻找一个ruby gem / rails插件,这将有助于我想要做的事情。 我目前正在关注http://code.google.com/apis/youtube/2.0/developers_guide_protocol.html#Authentication,但不知道这是否符合我的需求。

    么?

2 个答案:

答案 0 :(得分:1)

您应该使用ClientLogin方法。 例如,假设您要分别对用户名和密码为testuser和testpassword的YouTube帐户进行身份验证。您可以使用Linux'curl'命令模拟HTTP POST请求,如以下示例所示:

curl \
  --location https://www.google.com/accounts/ClientLogin \
  --data 'Email=testuser&Passwd=testpw&service=youtube&source=Test' \
  --header 'Content-Type:application/x-www-form-urlencoded'

如果您的身份验证请求成功,则对您的请求的响应将采用以下格式。 (请注意,示例中的标记值已缩短。)

SID=DQAAALQAAAA6wx7byZp-s4BizDqS1OaT21j9dmY6wMjexpQdNC3
LSID=DQAAALUAAAARH_PvRXoaz23Dv_UmOSUz2_0vh-4XbUedCN9XTZ
Auth=DQAAALUAAAARH_PvRXoaz23Dv_UmOSUz2_jxJVCGjoulKlhWbU

使用ClientLogin身份验证令牌进行经过身份验证的API请求时,您的请求需要指定授权HTTP请求标头,如下例所示:

Authorization: GoogleLogin auth=<authentication_token>
X-GData-Key: key=<developer_key>

然后,您可以在应用程序的其余部分使用该令牌,并将所有上传的内容整合到一个YouTube用户名中。

至于宝石,主动 - youtube,youtube_g和其他几个,但我还没有找到真正简化身份验证过程的任何内容。大多数只允许您查询顶级视频源和类似的东西。一个宝石将成为一个很好的起点,但要构建你的应用程序的其余部分。这个completed upload script也是一个很好的起点。 Google的Authentication Docs

答案 1 :(得分:0)

只是一个关于允许将所有视频上传到单个帐户的说明。不是技术问题,但如果你放纵我......

如果该帐户属于您并且有人向其上传受版权保护的资料,那么您将收到包裹...如果YouTube收到投诉,则您的帐户可能会被暂停,这意味着所有视频都不可用,这意味着您的整个应用可能无法正常工作!

我所做的是在上传视频时要求用户提供YouTibe帐户,然后将视频添加到播放列表中,以便在频道上显示。您获得视频,责任和潜在损害仅限于一个帐户......