我想使用 Youtube Data API v3 提取频道中所有视频的视频元数据(尤其是标题和发布日期)。目前,我只能使用以下方法提取最后 20000 个视频的详细信息playlistItems()
端点。有没有办法从单个频道提取超过 20000 个视频的元数据?
这是我用来提取 20000 个视频元数据的 python 代码。
youtube = build('youtube','v3',developerKey= "YOUTUBE_API_KEY")
channelId = "CHANNEL_ID"
# getting all video details
contentdata = youtube.channels().list(id=channelId,part='contentDetails').execute()
playlist_id = contentdata['items'][0]['contentDetails']['relatedPlaylists']['uploads']
videos = [ ]
next_page_token = None
while 1:
res = youtube.playlistItems().list(playlistId=playlist_id,part='snippet',maxResults=50,pageToken=next_page_token).execute()
videos += res['items']
next_page_token = res.get('nextPageToken')
if next_page_token is None:
break
# getting video id for each video
video_ids = list(map(lambda x:x['snippet']['resourceId']['videoId'], videos))
解决此问题的方法可以是强制 API 从频道中提取超过 20000 个视频的元数据,也可以指定视频上传的时间段。这样,代码可以在多个时间段内一次又一次地运行,以提取所有视频的元数据。
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)