質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

OAuth 2.0

OAuth 2.0(Open Authorization 2.0)は、APIを通して保護されたリソース(サードパーティのアプリケーション)へアクセスする為のオープンプロトコルです。

YouTube API

YouTube APIはYouTubeのビデオコンテンツと機能性をウェブサイト、アプリケーション、デバイスに統合することを可能にします。

ウェブアプリケーション

ウェブアプリケーションとは、ウェブ上でアクセスされるアプリケーションのことを呼びます。この場合におけるウェブとは、インターネットやイントラネット上を意味します。

Q&A

解決済

1回答

6605閲覧

Youtube Data API による字幕取得について

fightTT

総合スコア27

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

OAuth 2.0

OAuth 2.0(Open Authorization 2.0)は、APIを通して保護されたリソース(サードパーティのアプリケーション)へアクセスする為のオープンプロトコルです。

YouTube API

YouTube APIはYouTubeのビデオコンテンツと機能性をウェブサイト、アプリケーション、デバイスに統合することを可能にします。

ウェブアプリケーション

ウェブアプリケーションとは、ウェブ上でアクセスされるアプリケーションのことを呼びます。この場合におけるウェブとは、インターネットやイントラネット上を意味します。

0グッド

1クリップ

投稿2019/04/19 05:52

ウェブアプリの作成を学習中のものです。
的外れな質問がございましたら申し訳ございません。

表題のとおり、Youtubeの動画URLから、字幕を取得するツールを考えています。
現状、Node+Expressの構成で開発をしておりまして、npmから下記のモジュールを見つけインストールし実行しましたところ字幕が取得できました。
YouTube Captions scraper

しかし、Youtubeの規約でスクレイピングを禁止しているとの記事もterateil内で見つけましたので、個人ツールではありますが、技術向上のためにもYoutube Data APIによる正攻法での字幕取得をしたいと考えています。

そこでAPIのリファレンスを読んでいるのですが、そもそも他者のアップロードした動画の字幕を、APIを通して取得できるのか分からず質問させていただきました。

OAuthによる認証認可後、動画のvideoIdをリクエストし、以下のようなJSON形式のcaptionsリソースが返ってきます。
Captions | YouTube Data API | Google Developers

{ "kind": "youtube#caption", "etag": etag, "id": string, "snippet": { "videoId": string, ...........省略........... } }

その後、上記JSON内のidを指定して字幕の種類(言語)を特定し、取得という流れになっているという理解なのですが、下記ページのコードサンプルを見るとidの入力欄にはYOUR_CAPTION_TRACK_IDという文言が書かれております。
これは自分でアップロードした動画の字幕しか取得できず、他者がアップロードした動画に関してはAPIによる字幕取得はできないということなのでしょうか?
Captions: download

長くなりましたが、**「他者アカウントのアップした動画含め、URLからAPIによって字幕を取得するのは可能か」**ということを質問させていただきました。

OAuth含め、足りない知識がある中での質問となり恐縮ですが、そもそもできるのかできないのかを知りたく、皆様にご教示いただければと思っています。よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

こちら自己解決しました。
APIs Explorerでcaptions.downloadを試したところ以下の403エラーが出たため、そのエラー内容を検索したら該当するStackOverflowの記事がいくつかあり、その中に答えがございました。

APIs Explorerで出たエラー

The permissions associated with the request are not sufficient to download the caption track. The request might not be properly authorized, or the video order might not have enabled third-party contributions for this caption.

StackOverflowの記事
・Downloading captions always returns a 403
・Permission denied when using captions.download to get auto-generated captions[YouTube Data API]
・Downloading captions using Youtube v3 API

the captions.download endpoint only works for videos your google account owns. It is not usable for other videos unless the owner of the video enables third party contribution for the caption.
captions.downloadエンドポイントはアカウントが所有する動画にのみ機能する。
動画の所有者がキャプションに対する第三者の投稿を有効にしていない限り、他の動画には使用できない。

投稿2019/04/19 09:37

編集2019/04/19 09:43
fightTT

総合スコア27

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問