通过YouTube API将视频上传到特定的Google帐户



经过数小时的搜索,我还没有找到解决方案。我找到的最相关的帖子是:Youtube API:服务帐户

根据谷歌文档的这一部分:这里是

我读到的是YT API不支持服务帐户,所以我还没有找到其他解决方案。

有什么方法可以将视频上传到特定的谷歌(YT)帐户,而不要求我的服务用户登录到他们的谷歌帐户?事实上,我想让我网站上的任何用户都可以在私人模式下上传一些视频到我的Youtube帐户,但谷歌,当创建客户端时,通过这部分代码:

$client = new Google_Client();
$key = file_get_contents("some/path/to/".KEY_FILE);
$client->setClientId(CLIENT_ID);
     $client->setAssertionCredentials(
          new Google_AssertionCredentials(
              SERVICE_ACCOUNT_NAME,
              array('https://www.googleapis.com/auth/youtube'),
                $key
          )
     );
$client->setRedirectUri('some_url');
$client->setDeveloperKey('some_DEV_KEY');

请求我的用户使用自己的谷歌帐户登录。。。

有没有办法通过在代码中输入我自己的凭据来绕过这个登录请求?

抱歉英语不太好,谢谢你。

Eric,如果您使用浏览器上传API(V2),则可以做到这一点https://developers.google.com/youtube/2.0/developers_guide_protocol_browser_based_uploading。然而,它并不完全支持CORS,这意味着你不能显示进度条,你必须使用iframe来处理浏览器重定向。Youtube在V3中修复了CORS问题,但它们不再支持基于浏览器的上传,所以它们很糟糕,你必须选择通过你的服务器代理视频上传(我这样做),或者要求用户使用他们的谷歌帐户登录。我认为他们这样做是为了推广加号服务。在他们"修复"(花了大约一年的时间)后,一个家伙@jeff展示了一个使用googleplus登录的演示!真是个笑话!

这是一种设计,你不能轻易做到你想要的;你不想对其他人通过你的应用程序上传到你账户的内容负责。实现目标的最好方法是使用Youtube Direct Lite之类的东西——用户会用自己的凭据将视频上传到自己的帐户中,但它会自动将这些视频绑定到你在自己的应用程序中运行的播放列表中(它甚至可以让你审查是否应该包括这些视频)。

您也可以推出自己的解决方案来实现相同的方法。相信我。。。在某个时刻,你会感激你不能让任何人上传到你的个人帐户!

以下是解决方案:使用ClientLogin身份验证。这允许我们通过以下行指定我们的YT凭据:

$httpClient = Zend_Gdata_ClientLogin::getHttpClient($youtubeEmail, $youtubePassword, 'youtube');

注意:第三个参数是我们要连接到的服务的"id"

我知道ClientLogin已被弃用,但此解决方案有效。如果有任何更安全、更干净的解决方案,请告诉我:)

祝你今天愉快

相关内容

  • 没有找到相关文章

最新更新