📌  相关文章
📜  用于处理视频的 Youtube Data API |组 1

📅  最后修改于: 2021-10-22 04:19:18             🧑  作者: Mango

在继续之前,让我们先看看我们为视频部分准备的内容。 Youtube Data API 允许对视频执行以下操作:

  • 列表
  • 插入
  • 更新
  • 速度
  • 获得评级
  • 报告滥用
  • 删除

让我们讨论如何使用 Youtube Data API 处理视频。

请按照以下步骤启用 API 并开始使用它。

  1. 创建新项目、启用 API 和创建凭据:在此步骤中,我们将创建一个项目并启用 API。
    • 转到 Google Developers Console,然后单击页面右上角的登录。使用有效 Google 帐户的凭据登录。如果您没有 google 帐户,请先设置一个帐户,然后使用详细信息在 Google Developers 主页上登录。
    • 现在导航到开发人员仪表板并创建一个新项目。
    • 单击启用 API 选项。
    • 在搜索字段中,搜索 Youtube Data API 并选择下拉列表中的 Youtube Data API 选项。

    • 您将被重定向到一个显示有关Youtube Data API信息的屏幕,以及两个选项: ENABLE 和 TRY API
    • 单击启用选项以开始使用 API。
    • 在 API 和服务下的侧边栏中,选择凭据。
    • 在凭据选项卡中,选择创建凭据下拉列表,然后选择 API 密钥。
      有两种类型的凭据: API KeyOAuth 。 OAuth 以.json文件的形式为您提供客户端 ID 和密钥。 OAuth 通常用于需要授权的情况,例如检索用户喜欢的视频。因此,对于其他不需要授权的情况,例如使用关键字搜索视频或搜索相关视频等,我们将使用 API 密钥。
  2. 安装:可以使用简单的pip命令安装用于Python 的Google API 客户端:
    pip install --upgrade google-api-python-client

列表方法的代码:

  1. 按视频 ID 列出视频:下面的示例显示了如何检索有关由参数列表中提到的视频 ID 标识的特定视频的详细信息。
    # import libraries
    from googleapiclient.discovery import build
    import pprint
      
    # arguments to be passed to build function
    DEVELOPER_KEY = "Your_developer_key"
    YOUTUBE_API_SERVICE_NAME = "youtube"
    YOUTUBE_API_VERSION = "v3"
      
    # creating youtube resource object
    # for interacting with API
    youtube = build(YOUTUBE_API_SERVICE_NAME, 
                         YOUTUBE_API_VERSION,
                developerKey = DEVELOPER_KEY)
      
      
    def video_details(video_id):
      
        # Call the videos.list method
        # to retrieve video info
        list_videos_byid = youtube.videos().list(id = video_id,
              part = "id, snippet, contentDetails, statistics",
                                                   ).execute()
      
     # extracting the results from search response
        results = list_videos_byid.get("items", [])
      
        # empty list to store video details
        videos = []
          
        for result in results:
            videos.append("(% s) (% s) (% s) (% s) (% s) (% s)" % (result["snippet"]["title"],
                                                                  result["snippet"]["tags"],
                                                                  result['snippet']['description'],
                                                                  result["snippet"]["publishedAt"],
                                                                  result['contentDetails'], 
                                                                  result["statistics"]))
              
        print("Videos:\n", "\n".join(videos), "\n")
          
    if __name__ == "__main__":
      
        video_id = "vTaxdJ6VYWE"
        video_details(video_id)
    

    输出:

  2. 按多个视频 ID 列出视频:下面的示例显示了如何检索有关多个视频的信息,这些信息由参数列表中提到的多个视频 ID 标识。
    # import libraries
    from googleapiclient.discovery import build
    import pprint
      
    # arguments to be passed to build function
    DEVELOPER_KEY = "developer_key"
    YOUTUBE_API_SERVICE_NAME = "youtube"
    YOUTUBE_API_VERSION = "v3"
      
    # creating youtube resource 
    # object for interacting with API
    youtube = build(YOUTUBE_API_SERVICE_NAME,
                         YOUTUBE_API_VERSION,
                developerKey = DEVELOPER_KEY)
      
    def multiple_video_details():
      
        # Call the videos.list method
        # to retrieve video info
        list_videos_byid = youtube.videos().list(
                 id = 'Ks-_Mh1QhMc, c0KYU2j0TM4',
          part = "id, snippet, contentDetails, statistics",
                                      ).execute()
      
     # extracting the results from search response
        results = list_videos_byid.get("items", [])
        # empty list to store video details
        videos = []
        n = 1
        for result in results:
            videos.append(" (% s) (% s) (% s) (% s) (% s) (% s) " 
                                  % (n, result["snippet"]["title"],
                                        result["snippet"]["tags"],
                                        result['snippet']['description'],
                                        result["snippet"]["publishedAt"],
                                        result['contentDetails'],
                                        result["statistics"]))
            n = n + 1
              
        print ("Videos:\n", "\n".join(videos), "\n")
          
    if __name__ == "__main__":
        multiple_video_details()
    

    输出:

    注意:我们在上面的例子中只使用了有限的参数。还有许多其他参数可以设置,如果未设置,则可以从 Youtube 视频列表文档中找到它们采用的默认值。请参阅文档以全面了解可用参数。

    参考: https : //developers.google.com/youtube/v3/docs/videos/list