web-dev-qa-db-ja.com

YouTubeビデオから自動キャプションを抽出する

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コードをキャプチャするだけではないかと思います(それも可能ですが)。方法があるに違いない...助けてください!

25

最初に別の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

5

しばらく過ごした後の私の提案は次のとおりです。

2
Solominh

ページからデータを取得するための優れた方法は、file_get_contentsを使用することですが、これは機能しますifビデオには「CC」またはキャプションボタンがありますが、そうすると、からすべてのテキスト要素を取得できます。残念ながら、「Youtube tocaption」サービスの1つで文書化されているxmlファイルでは、キャプションを取得するにはyoutuberがキャプションを有効にする必要があると述べているため、残念ながら「CC」が有効になっていない動画からキャプションを取得することはできませんが、それでも必要な場合はfile_get_contentsを使用できますxmlファイルですべての「text」タグを見つけて、それらをキャプションに変換します。

2
Mhsjlw
1
maxymoo