如何将每个YouTube视频的字幕分别存储到独立列表中
代码修改实现方案
核心修改逻辑
你可以通过字典存储每个视频的独立字幕列表,字典键关联视频ID,值为对应视频的字幕列表,方便后续按需调取。如果不需要关联视频ID,也可以直接用嵌套列表存储所有视频的字幕列表。
修改后完整代码
videos = get_channel_videos(channel_id) video_ids = [] # 频道所有视频ID的列表 # 新增:存储所有视频字幕的字典,key为视频ID,value为对应视频的字幕独立列表 video_captions = {} for video in videos: video_ids.append(video['snippet']['resourceId']['videoId']) for video_id in video_ids: try: responses = YouTubeTranscriptApi.get_transcript( video_id, languages=['en']) print('\n'+"Video: "+"https://www.youtube.com/watch?v="+str(video_id)+'\n'+'\n'+"Captions:") # 新增:初始化当前视频的空字幕列表 current_caption = [] for response in responses: text = response['text'] # 新增:将单条字幕追加到当前视频的列表中 current_caption.append(text) print(text) # 新增:将当前视频的完整字幕列表存入字典 video_captions[video_id] = current_caption except Exception as e: print(e)
补充说明
- 完成遍历后,你可以通过
video_captions[视频ID]直接调取对应视频的完整字幕列表 - 如果你只需要按顺序存储所有视频的字幕列表不需要关联ID,可将字典改为嵌套列表:
# 初始化嵌套列表 all_captions = [] # 遍历过程中每个视频处理完成后执行 all_captions.append(current_caption)
内容的提问来源于stack exchange,提问作者Slim Downing
相关产品推荐
相关产品推荐

