Как загрузить YouTube Closed Captions через Youtube v3? - PullRequest
0 голосов
/ 19 апреля 2020

Я написал программу на 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); call вызывает следующее исключение:

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

Я что-то не так делаю? Почему следует авторизоваться для загрузки скрытых титров? Особенно учитывая тот факт, что скрытые титры свободно доступны через сам Youtube:

- "..." below the youtube player
- Open transcript

1 Ответ

0 голосов
/ 19 апреля 2020

Согласно документам , для доступа к конечной точке Captions.list требуется следующее:

Авторизация

Этот запрос требует авторизации по крайней мере с одной из следующих областей ( подробнее об аутентификации и авторизации ).

Область действия

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

То же требование распространяется и на конечную точку Captions.download.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...