YouTubeビデオから自動キャプションを抽出するのに問題があります。
http://video.google.com/timedtext?type=track&v=3wszM2SA12E&name=Automatic&lang=en メソッドを使用してみましたが、これはトラックに名前が付けられているビデオでのみ機能します。たとえば、これには名前付きトラックがなく(自動キャプションのみ)、ロードされません:rrkrvAUbU9Y
それを実行できるWebアプリケーションがいくつかあります( http://www.serpsite.com/youtube-subtitles-download-tool/ や http:// mo。 dbxdb.com/ )ですが、研究に使用したいので、スクリプトが必要です。
誰かがこれを取得する正しい方法は何ですか? YouTubeのAPIにはキャプションに関するものがありますが、登録ユーザーのみが対象ですが、上記のアプリはすべての動画で機能し、ページからhtmlコードをキャプチャするだけではないかと思います(それも可能ですが)。方法があるに違いない...助けてください!
最初に別のAPIを呼び出す必要があります: http://video.google.com/timedtext?type=list&v=3wszM2SA12E
これにより、利用可能なトラックのリストが表示されます。あなたの場合、1つのトラックしか取得できません:id="0" name="Automatic" lang_code="en" lang_original="English" lang_translated="English" lang_default="true"
この特定のビデオでは、いくつかの理由でのみname=Automatic
でトラックをアドレス指定できました。しかし、別のビデオではうまくいきました:
http://video.google.com/timedtext?type=track&v=zenMEj0cAC4&id = 0&lang = en
しばらく過ごした後の私の提案は次のとおりです。
Jsライブラリ: https://github.com/syzer/youtube-captions-scraper =>自動生成されたキャプションをサポートします。
以下の2つの簡単な方法は、自動生成されたキャプションをサポートしていません
クイックダウンロード: http://downsub.com/?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Dag_EJRhMfOM
ページからデータを取得するための優れた方法は、file_get_contentsを使用することですが、これは機能しますifビデオには「CC」またはキャプションボタンがありますが、そうすると、からすべてのテキスト要素を取得できます。残念ながら、「Youtube tocaption」サービスの1つで文書化されているxmlファイルでは、キャプションを取得するにはyoutuberがキャプションを有効にする必要があると述べているため、残念ながら「CC」が有効になっていない動画からキャプションを取得することはできませんが、それでも必要な場合はfile_get_contentsを使用できますxmlファイルですべての「text」タグを見つけて、それらをキャプションに変換します。
Downsub.comを調べていたところ、自動生成されたキャプションで機能するように見える次のAPI呼び出しが見つかりました。