当前位置: 首页 > 知识库问答 >
问题:

如何使用YouTube数据API将视频上传到个人账户的二级频道

吴浩皛
2023-03-14

我环顾了Stack Overflow,看到了一些关于这个的帖子,但没有一个解决方案是有用的。

我有一个谷歌帐户,我在YouTube上使用。我已经在该YouTube帐户上创建了第二个频道,以便我可以上传具有特定主题的视频,以将其与主要视频分开。

我试图使用谷歌API上传视频,这样我就可以通过Python脚本运行它。我一直在与谷歌碰壁,谷歌正在寻找应用程序验证、隐私政策和网页链接-我没有这些。

应用程序是一个 Python 脚本,不向公众开放,也不收集任何公共信息。我所要做的就是将视频上传到我自己的个人YouTube帐户。

所以我开始认为我应该使用其他东西而不是API(上传网页不适合在脚本中使用)。

我两个问题是:

>

  • 我可以使用 YouTube API 将视频直接上传到我个人 YouTube 帐户上的第二个频道吗?

    我应该使用另一种更简单的机制来通过脚本将视频上传到我的个人YouTube帐户吗?我必须通过脚本执行此操作的原因是设备无人值守。

    谢谢,

    大卫

  • 共有1个答案

    沈巴英
    2023-03-14

    您必须承认,每个应用程序(要从广义上理解,甚至包括Google upload_video.py这样的小脚本)都必须经过Google的验证和批准,然后才能通过YouTube网站公开提供视频。

    对问题1的回答:是的,这是完全可能的。

    作为OAuth 2.0身份验证/授权流程的一部分,您将在浏览器中看到选择将访问权限授予您的应用程序的帐户的选项。

    在使用您的脚本之前,您可以在Google开发人员OAuth 2.0 Playground的帮助下练习这种行为。

    OAuth 流成功后,您可以在帐户的权限页面上验证(并撤销)帐户授予的权限。

    对问题2的回答:不,除了使用<code>视频,没有办法在YouTube上以编程方式上传符合YouTube DTO的视频。插入APIendpoint。

    补遗

    因为现在您至少有两个凭证集,所以可能需要知道一个给定的凭证对象与您的哪个YouTube频道相关联。

    如果使用适用于Python的Google API客户端库,您可以通过调用Channels.listAPIendpoint,将参数mine作为mine=true传递给它,从而轻松地从API获取与给定凭据对象CREDENTIALS相关联的通道ID:

    from googleapiclient.discovery import build
    
    youtube = build(
        'youtube', 'v3',
         credentials = CREDENTIALS)
    
    response = youtube.channels().list(
        mine = 'true',
        part = 'id',
        fields = 'items(id)',
        maxResults = 1
    ).execute()
    
    channel_id = response['items'][0]['id']
    

    请注意,上面的代码使用字段请求参数从Channels.listendpoint仅获取通道的ID信息(从API仅询问实际使用的信息总是好的)。

    使用上述过程的警告如下:如果给定的CREDENTIALS实例的范围仅包含:

    < code > https://www . Google APIs . com/auth/YouTube . upload ,

    然后API将响应类型为<code>权限不足</code>和消息请求的身份验证范围不足的错误。

    要成功调用< code>Channels.list,附加到< code >凭据的范围包括以下任一项就足够了:

    https://www.googleapis.com/auth/youtube.readonlyhttps://www.googleapis.com/auth/youtube

     类似资料:
    • 我正在尝试通过YouTube数据API v3将视频上传到多个频道。 当我将视频上传到主默认频道时,我可以正确地做到这一点,但是当我们尝试将它们上传到同一Youtube帐户的另一个频道时,却无法做到(因此OAuth2凭据应该是有效的)。 根据文档,在调用endpoint时,我必须将以下参数传递给API:onBehalfOfContentOwnerChannel和onBehalfOfContentOw

    • 我正试图用PHP上传一个视频到Youtube。我用的是Youtube API v3,我用的是最新的谷歌API PHP客户端库的源代码。< br >我使用< br > https://code.google.com/p/google-api-php-client/上给出的示例代码来执行身份验证。身份验证顺利通过,但当我尝试上传视频时,我得到< code > Google _ service exce

    • 我在MVC Web应用程序中使用YouTubeAPI V3。目的是让我的Web用户使用MY OAuth凭据将视频上传到MYYouTube频道。在用户将他们的视频上传到我的Web服务器后,我需要在我的Web服务器和YouTube之间自动上传,无需我自己的用户干预。 我的(初稿)代码如下。我的问题是: > < li> 更新-已在下面解决。每当我试图删除一个视频,我得到一个“未经授权”的错误。当我检查令

    • 我有一个YouTube频道。我想为我的网站添加新功能: 用户使用其google帐户进行身份验证。 用户创建自己的视频播客(使用此小部件),并将其上载到自己的youtube帐户。 之后,我使用YouTube API将用户视频移动到我的频道 有没有可能允许一些用户在我的频道上传他们账户的视频?也许用户可以通过Google Plus做到这一点? 附注:我看过一些文章

    • 我正在寻找一种方法,在我的研究中使用Youtube API查找Youtube上的所有360°视频。目前,我还无法从Youtube API中找到此功能,也无法使用可用的API函数进行变通。 Yuotube网页上的搜索结果可以按功能过滤,以仅显示搜索结果中的360°视频。即使使用可用的API方法复制此功能,也是满足我需求的良好起点。也许这可以通过使用代码段的标签来完成,但我无法让它工作。 (这个问题非

    • 我试图获得一个频道所有上传视频的视频id列表。我还想使用新版的YouTube数据API (V3)。我该怎么做?