少数投稿 on 音声のダウンロード を使用してYouTubeからyoutube-dl
、しかし、それらはどれも具体的でも役に立たない。 Pythonスクリプトからそれを行う最良の方法は何だろうと思っています。
たとえば、動画をダウンロードするためのREADMEの例:
import youtube_dl
ydl_opts = {}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
ydl.download(['http://www.youtube.com/watch?v=BaW_jenozKc'])
もちろん、オーディオだけを気にするなら、ビデオ全体をダウンロードするのではなく...
youtube-dl ソースは非常に有用です(つまり、あまり役に立ちません)。
これをスクリプト化する方法はありますか?
修正された例については、 開発者向け手順 をお読みください。
from __future__ import unicode_literals
import youtube_dl
ydl_opts = {
'format': 'bestaudio/best',
'postprocessors': [{
'key': 'FFmpegExtractAudio',
'preferredcodec': 'mp3',
'preferredquality': '192',
}],
}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
ydl.download(['http://www.youtube.com/watch?v=BaW_jenozKc'])
これにより、可能/サポートされている場合、音声ファイルがダウンロードされます。ファイルがまだmp3でない場合、ダウンロードしたファイルは ffmpeg または avconv を使用してmp3に変換されます。詳細については、現在のバージョンのyoutube-dlの format
および postprocessors
ドキュメントエントリを参照してください。
postprocessors
引数を使用します。使用可能なすべてのポストプロセッサーのリストは、 here にあります。
追加のffmpeg
またはavconv
オプションを渡す場合は、youtube-dl
ライブラリに含まれません(オーディオビットレート-ffmpeg
の-ar <BR>
など)、postprocessor_args
をリストとして追加します。
ffmpeg
よりもavconv
を優先して、prefer_ffmpeg
をTrue
に設定することもできます。
元のオーディオファイルと変換されたオーディオファイルの両方を保持するには、'keepvideo'
をTrue
に設定します。
例えば:
from __future__ import unicode_literals
import youtube_dl
ydl_opts = {
'format': 'bestaudio/best',
'postprocessors': [{
'key': 'FFmpegExtractAudio',
'preferredcodec': 'wav',
'preferredquality': '192'
}],
'postprocessor_args': [
'-ar', '16000'
],
'prefer_ffmpeg': True,
'keepvideo': True
}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
ydl.download(['http://www.youtube.com/watch?v=BaW_jenozKc'])
利用可能なすべてのオプションのリストは documentation にあります。 ffmpeg posprocessorのコード here を読むことができます。
それほど複雑ではない例は、GitHub [〜#〜] readme [〜#〜] にあります。