从API获取YouTube自动转录本?

时间:2017-03-17 21:59:48

标签: youtube-api youtube-data-api

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

4 个答案:

答案 0 :(得分:2)

您可以参考此主题:How to get "transcript" in youtube-api v3

  

如果您使用oAuth2进行身份验证,则可以快速拨打电话   这个饲料:

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

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

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

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

此外,以下是一些有帮助的参考文献:

答案 1 :(得分:2)

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

pip3 install youtube_transcript_api

2 使用以下代码创建 youtube_transcript_api-wrapper.py(部分基于 https://stackoverflow.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

4 python3 youtube_transcript_api-wrapper.py

答案 2 :(得分:1)

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

  1. 在浏览器中打开

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

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

答案 3 :(得分:-1)

您还可以使用我创建的此API-

https://rapidapi.com/yashagarwal/api/subtitles-for-youtube

免费计划每天可以发出100个请求。

只需在输入框中输入视频ID ,然后选择“以SRT格式获取字幕” ,然后也可以强制自动生成的字幕选择 type < / strong>为自动