我正在创建一个应用程序,该应用程序将部署在各个站点上,并定期将视频从每个站点上传到YouTube。我已经上传了视频,但理想情况下每个网站都有自己的频道。
我有一个搜索,看看是否有人遇到过这个问题(不要重新发明轮子,对吗?)但我发现的唯一一件事是引用onBehalfOfContentOwner参数detailed in the api here的几个线程。
这与我无关,因为我不是内容合作伙伴;至少我不认为我是。 Google API帮助文档然后将我发送到此处,所以我在这里。
我创建了一个YouTube品牌帐户,目前有两个渠道。显然,每个人都有自己的频道ID。到目前为止,我尝试了以下内容:
在创建视频片段时指定ChannelId,我无法在其他任何地方看到设置它或使用的相应对象。我尝试使用相同的OAuth凭据使用两个不同的渠道ID。
使用两个唯一的OAuth凭据创建两个单独的api项目,然后在运行时加载这些凭据。我在应用程序的整个生命周期中只使用了一组凭据,然后在我测试上传仍然有效后再更改为第二个凭据集。我使用的第一个凭证集促使我登录和 随后选择一个帐户。第二集没有提示我 除了视频之外的所有内容都上传到我所拥有的帐户中 以前选择过。我退出了YouTube,我的浏览器就是 两个案件都关闭;一旦关闭,浏览器就不会存储任何细节。
我想我真的是这个问题。指定要上传到哪个频道的最佳做法是什么?我正在使用的应用程序将在设定的时间自动运行,因此我无法在上传过程中进行用户交互。 (在初始设置期间选择一个帐户会很好!)
非常感谢任何帮助。提前谢谢。
修改
我发现API会自动在本地计算机上使用访问令牌(如果 C:\ Users {USERNAME} \ AppData \ Roaming \ Google.Apis.Auth < / strong>;即使我在我的应用程序中使用不同的OAuth凭据。删除访问令牌文件将导致下次使用此计算机的api时出现登录提示。
对于我的应用程序,这是可以接受的,因为当我部署时,只需要一次性登录并获得访问令牌,然后每小时刷新一次。这也意味着我可以选择为每个网站上传哪个帐户/频道。虽然我承认MαπμQμαπkγVπ.0给出的答案,但我认为这不适用于此,因为我不是前面提到的内容合作伙伴。
如果有人可以通过代码告诉我如何执行此操作而不是删除访问令牌,那当然是首选解决方案。 (或者让我知道我是一个内容合作伙伴,所以我可以尝试onBehalf参数)
答案 0 :(得分:1)
我发现删除运行我的应用程序的PC上的OAuth令牌允许我重新选择我上传到的帐户/频道。
看来授权频道是使用此令牌确定的,一旦出现,它将每小时自动刷新一次。看到一台PC只会上传到一个给定网站的一个频道,我认为我必须为每个网站进行一次性设置才能获得一个令牌。
答案 1 :(得分:0)
如果您想指定上传视频所需的频道,我认为您的代码中可能需要this parameter:
onBehalfOfContentOwnerChannel
- 此参数只能在a中使用 妥善authorized request。此参数只能在a中使用 妥善authorized request。 注意:此参数是预期的 专门针对YouTube内容合作伙伴。onBehalfOfContentOwnerChannel 参数指定YouTube 要添加视频的频道的频道ID。这个 当请求指定的值时,参数是必需的 onBehalfOfContentOwner 参数,它只能与该参数一起使用。此外,请求必须是 使用链接到内容所有者的CMS帐户授权 onBehalfOfContentOwner 参数指定。最后, 通道 onBehalfOfContentOwnerChannel 参数值 指定必须链接到内容所有者 onBehalfOfContentOwner 参数指定。
此参数适用于拥有和的YouTube内容合作伙伴 管理许多不同的YouTube频道。它允许内容所有者 验证一次并代表渠道执行操作 在参数值中指定,无需提供 每个单独渠道的身份验证凭据。