【发布时间】:2019-07-27 09:16:59
【问题描述】:
我正在使用 Youtube Data API v3 提取 youtube 频道中所有视频的标题。
我从https://developers.google.com/youtube/v3/code_samples/python关注了sn-ps
我在查询['statistics']['videoCount']时得到一个号码
但是当我在 youtube 中搜索实际频道时,它会给出不同的视频数量。
假设我正在尝试 ID 为 - UCeLHszkByNZtPKcaVXOCOQQ
的频道['statistics']['videoCount'] 给了 19
但是,如果我在 youtube 上搜索 Post Malone 频道,它里面有 36 个视频。我哪里错了?
['statistics']['videoCount'] 是否确实给出了 youtube 频道中视频的确切数量?
这是我的代码:
from pprint import pprint
from googleapiclient.discovery import build
import os
YOUTUBE_API_KEY = os.environ.get('YOUTUBE_API_KEY')
youtube = build('youtube', 'v3', developerKey=YOUTUBE_API_KEY)
lis = ['UCeLHszkByNZtPKcaVXOCOQQ']
for i in lis:
channels_response = youtube.channels().list(part='statistics', id=i).execute()
print(i, channels_response['items'][0]['statistics']['videoCount'])
for i in lis:
channels_response = youtube.channels().list(part='contentDetails', id=i).execute()
for channel in channels_response['items']:
uploads_list_id = channel["contentDetails"]["relatedPlaylists"]["uploads"]
playlistitems_list_request = youtube.playlistItems().list(
playlistId=uploads_list_id,
part="snippet",
maxResults=50
)
while playlistitems_list_request:
playlistitems_list_response = playlistitems_list_request.execute()
for playlist_item in playlistitems_list_response["items"]:
# pprint(playlist_item)
title = playlist_item["snippet"]["title"]
video_id = playlist_item["snippet"]["resourceId"]["videoId"]
print(title, video_id)
playlistitems_list_request = youtube.playlistItems().list_next(
playlistitems_list_request, playlistitems_list_response
)
【问题讨论】:
-
您的问题标题为:
How to get all **videos titles** in a youtube channel,但在您的问题中,您要求视频计数...我不明白您的确切问题。您正在使用的请求的 URL 是哪个? - 请注意,某些视频可能不可用(可能 YouTube 频道将此类视频设置为不可嵌入),您的 youtube 频道示例确实有 35 个视频,但是,see its 19 videos available "i.e public" = 与返回的相同通过 API。 -
我先打印视频的数量,然后再打印所有这些视频的标题。当您说不可嵌入时,我没有得到您。能否请您详细说明。
-
Sukumar,某些视频无法嵌入(由于其所有者禁用了此类选项),这可能是此类视频不计入的原因。其他选项是这些视频是私有的,YouTube API 将仅显示公共信息。我将根据您的评论发布答案,但是,答案将显示请求及其结果,而不是 python 代码(因为我不了解 Python)。
标签: python-3.x youtube youtube-api google-api-python-client youtube-data-api