从 API 获取 YouTube 自动转录?

Posted

技术标签:

【中文标题】从 API 获取 YouTube 自动转录?【英文标题】:Getting YouTube auto-transcript from API? 【发布时间】:2017-08-09 14:44:01 【问题描述】:

是否可以从任何 YouTube API 中提取自动(非用户)生成的视频脚本?

【问题讨论】:

到现在你有解决办法吗? @manish1706 我能找到的解决方案都不允许我检索自动生成的字幕。因此,我自己实现了一个 API 客户端,它允许您为您选择的语言自动生成字幕。如果还有人感兴趣,可以在我的 GitHub 上找到代码:github.com/jdepoix/youtube-transcript-api 【参考方案1】:

截至 2019 年 8 月,您可以通过以下方式下载成绩单:

    在浏览器中打开

https://www.youtube.com/watch?v=[Video ID]

    来自控制台类型:JSON.parse(ytplayer.config.args.player_response).captions.playerCaptionsTracklistRenderer.captionTracks[0].baseUrl

【讨论】:

编辑:不适用于所有视频 哪个浏览器和哪个控制台?【参考方案2】:

你可以参考这个帖子:How to get "transcript" in youtube-api v3

如果您使用 oAuth2 进行身份验证,您可以快速调用 这个提要:

http://gdata.youtube.com/feeds/api/videos/[VIDEOID]/captiondata/[CAPTIONTRACKID]

获取你想要的数据。检索可能的字幕轨道列表 具有 API v2 的 ID,您可以访问此提要:

https://gdata.youtube.com/feeds/api/videos/[VIDEOID]/captions

该提要请求还接受一些可选参数,包括 语言,最大结果等。有关更多详细信息,以及一个示例 显示字幕轨道列表的返回格式,请参阅 文档在 https://developers.google.com/youtube/2.0/developers_guide_protocol_captions#Retrieve_Caption_Set

另外,这里有一些可能有帮助的参考资料:

https://www.quora.com/Is-there-any-way-to-download-the-YouTube-transcripts-that-are-generated-automatically http://ccm.net/faq/40644-how-to-get-the-transcript-of-a-youtube-video

【讨论】:

gdata 端点不可用:“404。这是一个错误。”【参考方案3】:

1 安装youtube-transcript-api (https://github.com/jdepoix/youtube-transcript-api),例如:

pip3 install youtube_transcript_api

2 使用以下代码创建youtube_transcript_api-wrapper.py(部分基于https://***.com/a/65325576/2585501):

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 创建包含 video_id 列表的 youtubeVideoIDlist.txt

4python3 youtube_transcript_api-wrapper.py

【讨论】:

以上是关于从 API 获取 YouTube 自动转录?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Youtube v3 API 获取 Youtube 视频的 mp4 url

对于YouTube视频,如何自动显示交互式记录?

如何使用API (针对MCN)从YouTube CMS帐户获取收入报告?

如何在 android 的 Youtube API V3 中按频道 ID 获取 Youtube 直播?

如何在 YouTube api v3 中获取 YouTube 视频的 cc 字幕

如何获取 YouTube JSON GData 网址