Запрещает ли API YouTube загружать подписи к видео, если вы не являетесь его владельцем?
Как мне кажется, API YouTube запрещает скачивать подписи к видео, если вы не являетесь его владельцем:
Подписи к видео могут быть созданы, извлечены, изменены и удалены только владельцем этого видео.
Ссылка выше ведет к документации 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();
}
Так действительно ли API YouTube v3.0 ограничивает доступ для чтения к заголовкам, когда они являются общедоступными данными, и есть даже сервисы и сценарии, позволяющие вам загружать заголовки любого видео YouTube? Как можно получить подписи к любому видео на YouTube (предпочтительнее использовать решения с использованием API)?