相关疑难解决方法(0)

如何从YouTube视频中提取隐藏式字幕文字?

是否可以从Youtube视频中提取隐藏式字幕脚本?

我们在youtube上有200多个网络广播,每个网络广播至少有一个小时.Youtube已经关闭了所有视频的标题,但似乎用户无法获得它.

我在此博客中尝试过该网址,但它不适用于我们的视频.

http://googlesystem.blogspot.com/2010/10/download-youtube-captions.html

谢谢

youtube caption

48
推荐指数
7
解决办法
17万
查看次数

如果您不是它的所有者,YouTube API是否禁止下载视频字幕?

在我看来,如果您不是它的所有者,YouTube API 禁止下载视频字幕:

视频的字幕只能由该视频的所有者创建,检索,修改和删除.

上面的链接会导致YouTube API v2.0的文档被弃用,但似乎在v3.0中此政策保持不变.如果您尝试下载视频的标题,则会收到以下403错误:

与请求关联的权限不足以下载字幕轨道.该请求可能未得到适当授权,或者视频订单可能未启用此标题的第三方贡献.


在同一时间,你只需要API_KEY到列出任何的YouTube视频字幕没有任何授权(实例化对象的YouTube在此官方例子):

youtube = new YouTube.Builder(HTTP_TRANSPORT, JSON_FACTORY,
        new HttpRequestInitializer() {
            public void initialize(HttpRequest request)
                throws IOException {
            }
        }).setApplicationName("youtube-cmdline-search-sample").build();

CaptionListResponse captionListResponse = youtube
    .captions()
    .list("snippet", "jNhtbmXzIaM")
    .setKey(API_KEY)
    .execute();

List<Caption> captions = captionListResponse.getItems();
CaptionSnippet snippet;
for (Caption caption : captions) {
    snippet = caption.getSnippet();
    System.out.println("ID: " + caption.getId());
    System.out.println("Name: " + snippet.getName());
    System.out.println("Language: " + snippet.getLanguage());
    System.out.println();
}
Run Code Online (Sandbox Code Playgroud)

那么YouTube API …

java youtube-api youtube-data-api

6
推荐指数
0
解决办法
959
查看次数

获取YouTube字幕

如何以编程方式获取正在播放的YouTube视频的字幕?

最初,我尝试通过YouTube API离线进行此操作,但似乎 YouTube禁止获取您不是所有者的视频的字幕。

现在,我正在尝试在线进行。我没有找到用于字幕的YouTube Player Api方法,我也试图通过videojs播放器的方式将 YouTube字幕作为TextTrack与TextTrack一起使用,但是以下方法不起作用:

<html>
<head>
<link href="//vjs.zencdn.net/4.12/video-js.css" rel="stylesheet">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript" src="//vjs.zencdn.net/4.12/video.js"></script>
<script type="text/javascript" src="../lib/youtube.js"></script>
</head>

<body>
<video  id="myvideo"
        class="video-js vjs-default-skin vjs-big-play-centered" 
        controls 
        preload="auto" 
        width="640" 
        height="360">
</video>

<script type="text/javascript">
    var myvideo = videojs(
        "myvideo",
        {
            "techOrder": ["youtube"],
            "src": "https://www.youtube.com/watch?v=jNhtbmXzIaM" 
        },
        function() {
            console.log('Tracks: ' + this.textTracks().length); //zero here :(

            /*var aTextTrack = this.textTracks()[0];
            aTextTrack.on('loaded', function() {
                console.log('here it is');
                cues = aTextTrack.cues();
                console.log('Ready State', aTextTrack.readyState()) 
                console.log('Cues', …
Run Code Online (Sandbox Code Playgroud)

javascript java video youtube-api video.js

5
推荐指数
3
解决办法
3259
查看次数