从 API 获取 YouTube 自动转录?
Getting YouTube auto-transcript from API?
是否可以从任何 YouTube API 提取自动(非用户)生成的视频脚本?
您可以参考这个主题:How to get "transcript" in youtube-api v3
If you're authenticating with oAuth2, you could do a quick call to
this feed:
http://gdata.youtube.com/feeds/api/videos/[VIDEOID]/captiondata/[CAPTIONTRACKID]
to get the data you want. To retrieve a list of possible caption track
IDs with v2 of the API, you access this feed:
https://gdata.youtube.com/feeds/api/videos/[VIDEOID]/captions
That feed request also accepts some optional parameters, including
language, max-results, etc. For more details, along with a sample that
shows the returned format of the caption track list, see the
documentation at
https://developers.google.com/youtube/2.0/developers_guide_protocol_captions#Retrieve_Caption_Set
此外,这里有一些可能有用的参考资料:
截至 2019 年 8 月,您可以使用以下方法下载成绩单:
- 在浏览器中打开
https://www.youtube.com/watch?v=[Video ID]
- 来自控制台类型:
JSON.parse(ytplayer.config.args.player_response).captions.playerCaptionsTracklistRenderer.captionTracks[0].baseUrl
1 安装 youtube-transcript-api
(https://github.com/jdepoix/youtube-transcript-api),例如:
pip3 install youtube_transcript_api
2 使用以下代码创建 youtube_transcript_api-wrapper.py
(部分基于 ):
from youtube_transcript_api import YouTubeTranscriptApi
#srt = YouTubeTranscriptApi.get_transcript(video_id)
videoListName = "youtubeVideoIDlist.txt"
with open(videoListName) as f:
video_ids = f.read().splitlines()
transcript_list, unretrievable_videos = YouTubeTranscriptApi.get_transcripts(video_ids, continue_after_error=True)
for video_id in video_ids:
if video_id in transcript_list.keys():
print("\nvideo_id = ", video_id)
#print(transcript)
srt = transcript_list.get(video_id)
text_list = []
for i in srt:
text_list.append(i['text'])
text = ' '.join(text_list)
print(text)
3 创建 youtubeVideoIDlist.txt
包含 video_ids
的列表
4 python3 youtube_transcript_api-wrapper.py
是否可以从任何 YouTube API 提取自动(非用户)生成的视频脚本?
您可以参考这个主题:How to get "transcript" in youtube-api v3
If you're authenticating with oAuth2, you could do a quick call to this feed:
http://gdata.youtube.com/feeds/api/videos/[VIDEOID]/captiondata/[CAPTIONTRACKID]
to get the data you want. To retrieve a list of possible caption track IDs with v2 of the API, you access this feed:
https://gdata.youtube.com/feeds/api/videos/[VIDEOID]/captions
That feed request also accepts some optional parameters, including language, max-results, etc. For more details, along with a sample that shows the returned format of the caption track list, see the documentation at https://developers.google.com/youtube/2.0/developers_guide_protocol_captions#Retrieve_Caption_Set
此外,这里有一些可能有用的参考资料:
截至 2019 年 8 月,您可以使用以下方法下载成绩单:
- 在浏览器中打开
https://www.youtube.com/watch?v=[Video ID]
- 来自控制台类型:
JSON.parse(ytplayer.config.args.player_response).captions.playerCaptionsTracklistRenderer.captionTracks[0].baseUrl
1 安装 youtube-transcript-api
(https://github.com/jdepoix/youtube-transcript-api),例如:
pip3 install youtube_transcript_api
2 使用以下代码创建 youtube_transcript_api-wrapper.py
(部分基于
from youtube_transcript_api import YouTubeTranscriptApi
#srt = YouTubeTranscriptApi.get_transcript(video_id)
videoListName = "youtubeVideoIDlist.txt"
with open(videoListName) as f:
video_ids = f.read().splitlines()
transcript_list, unretrievable_videos = YouTubeTranscriptApi.get_transcripts(video_ids, continue_after_error=True)
for video_id in video_ids:
if video_id in transcript_list.keys():
print("\nvideo_id = ", video_id)
#print(transcript)
srt = transcript_list.get(video_id)
text_list = []
for i in srt:
text_list.append(i['text'])
text = ' '.join(text_list)
print(text)
3 创建 youtubeVideoIDlist.txt
包含 video_ids
4 python3 youtube_transcript_api-wrapper.py