如何通过Youtube v3下载youtube隐藏式字幕?

问题描述 投票:0回答:1

[我用Java编写了一个程序,用于下载YouTube视频的隐藏式字幕:

YouTube.Captions.List request = youtube.captions()
            .list("snippet", videoId).setKey(apiKey);
        CaptionListResponse response = request.execute();

        List<Caption> captions = response.getItems();

        for (Caption caption : captions) {
            CaptionSnippet snippet = caption.getSnippet();
            System.out.println("ID: " + caption.getId());
            System.out.println("Name: " + snippet.getName());
            System.out.println("Language: " + snippet.getLanguage());

            String captionID = caption.getId();
            OutputStream output = new FileOutputStream("captions"+captionID);

            YouTube.Captions.Download req = youtube.captions()
                .download(captionID).setKey(apiKey);
            req.getMediaHttpDownloader();
            req.executeMediaAndDownloadTo(output);
        }

但是req.executeMediaAndDownloadTo(output);调用将引发以下异常:

There was an IO error: null : 401 Unauthorized
Login Required

我做错什么了吗?为什么要授权下载隐藏式字幕?特别要考虑到可以通过Youtube本身免费获得隐藏式字幕的事实:

- "..." below the youtube player
- Open transcript
java youtube-data-api
1个回答
0
投票

根据the docs,访问Caption.list端点需要满足以下条件:

授权

此请求需要具有以下至少一个范围(read more about authentication and authorization)的授权。

范围

https://www.googleapis.com/auth/youtube.force-sslhttps://www.googleapis.com/auth/youtubepartner

© www.soinside.com 2019 - 2024. All rights reserved.