在继续之前,让我们先看看我们为视频部分准备的内容。 Youtube Data API 允许对视频执行以下操作:
- 列表
- 插入
- 更新
- 速度
- 获得评级
- 报告滥用
- 删除
让我们讨论如何使用 Youtube Data API 处理视频。
请按照以下步骤启用 API 并开始使用它。
- 创建新项目、启用 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 Key和OAuth 。 OAuth 以.json
文件的形式为您提供客户端 ID 和密钥。 OAuth 通常用于需要授权的情况,例如检索用户喜欢的视频。因此,对于其他不需要授权的情况,例如使用关键字搜索视频或搜索相关视频等,我们将使用 API 密钥。
- 安装:可以使用简单的pip命令安装用于Python 的Google API 客户端:
pip install --upgrade google-api-python-client
列表方法的代码:
- 按视频 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)
输出:
- 按多个视频 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