PHP:如何在不使用登录的情况下将视频上传到YouTube?

时间:2010-05-06 11:57:57

标签: php youtube

我有一个网站,我想在没有登录的情况下将视频上传到YouTube。可能吗?如果是,怎么办呢?

3 个答案:

答案 0 :(得分:5)

为您网站的所有用户创建一个帐户并始终使用其凭据。如果没有用户帐户“负责”,您就无法上传视频。 @Pekka:请求原谅,不是为了获得许可? ;) Google至少有一个youtube API(包含上传功能和PHP示例):http://code.google.com/apis/youtube/2.0/developers_guide_php.html#Uploading_Videos

答案 1 :(得分:2)

如果没有登录,则无法将视频上传到YouTube。

也就是说,如果YouTube的条款和条件禁止使用登录进行自动上传,我也不会感到惊讶。

答案 2 :(得分:0)

如果没有zend客户端库,有一种方法可以做到这一点。它的核心PHP(PHP4)。
https://github.com/techie28/YouTubeUploadPHP

注意:现在不推荐使用AuthSub。有关详细信息,请参阅Google弃用政策。


修改
因为codershelpingcoders.com现在指向godaddy的停放页面而原始链接zendtutorials.wordpress.com有一篇空文章链接到codershelpingcoders.com,我通过存档找到了原始文章:http://web.archive.org/web/20130123044500/http://codershelpingcoders.com/并试图在此答案中复制它的内容以供将来参考(注意:我不知道这些信息是否仍然有用)。

本教程介绍使用AuthSub的基于浏览器的直接上传技术。

AuthSub是YouTube的授权模块,可让您的应用与YouTube进行互动,以达到特定目的,例如代表用户上传视频等。
它与AuthoAuth的堂兄相同 用户将权限授予您的站点应用程序,您可以代表他完成这项工作。

我们将使用AuthSub上传视频。

如下所示,可以通过以下4个简单步骤完成:

  1. 允许用户代表用户运行应用程序 首先授权。
    因此,我们实施的第一步是获取用户授权的应用程序 我们只需将用户重定向到授权页面即可 如下:

    $nextUrl = urlencode(‘http://www.xxxx.com’)
    $scope = urlencode(‘http://gdata.youtube.com’);
    
    https://www.google.com/accounts/AuthSubRequest?next=’.$nextUrl.’&scope=’.$scope.’&session=1&secure=0

    这里的nextUrl是您的应用程序所在用户的网址 将在授权程序后重定向 scope是告诉YouTube有关谷歌流程的范围 在这种情况下数据youtube 因此,如果用户尚未授权您的应用,则必须将其重定向到 用户批准后,上述授权页面 你的应用程序不需要再次执行第一步,直到 除非用户撤消用户对您应用的访问权限 他的账户控制小组 成功完成授权过程后,用户将会 重定向到您的应用程序,这完成了第一步 的AuthSub。

  2. 如果从第一步开始,用户就会对您的应用进行身份验证 YouTube会使用网址中的令牌将其重定向回您的应用程序。 您将使用此令牌,这是实际的AuthSub过程 即将发挥作用,您将使用此令牌获取一个名为的实体 AuthSubSessionToken,可让您将自己的应用与YouTube进行互动 代表刚刚批准您的申请的用户 在PHP中,您可以通过发出curl请求来完成。详情如下:
    https://www.google.com/accounts/AuthSubSessionToken发出curl GET请求 使用您在授权步骤后收到的令牌 记得打开卷发的响应收集状态,因为你需要这样做 如果到目前为止一切顺利,你会得到YouTube的回复 AuthSubSessionToken 宾果: - )

  3. 现在,当您收到AuthSubSessionToken时,您将使用它 获取实际上传数据的上传令牌 与您的视频相关的YouTube即标题,说明,类别和 关键字。这是一个与您上传的AuthSub相反的过程 首先将与视频相关的数据发送到YouTube,然后上传视频 本身。视频数据的上传也称为MetaData 通过将XML提供给YouTube,xml将是:

    title goes here 
    description goes here 
    category goes here
    
    Keyword goes here 

    再次curl有业务,您将通过发出另一个curl调用来上传:

    url:http://gdata.youtube.com/action/GetUploadToken 
    headers:AuthSub token=”Your AuthSubSession token goes here” 
    GData-Version:2
    ‘X-GData-Key: key=”Your Api key goes here” 
    Content-length: length of the xml you formed above goes here
    Content-Type:application/atom+xml; charset=UTF-8 
    POSTFIELDS: the xml itself that you formed
  4. 如果步骤3成功完成,则上传时间 视频实际上是你成功的最后一次卷曲执行 在YouTube上以网址和令牌回复 现在,您将创建一个将此url作为其操作和令牌的表单 像这样的隐藏领域。
    只需选择视频并点击提交,您的视频就会上传 成功提交后,您将被重定向回status 200

  5. 示例代码的github链接是here