を使用して、YouTube から動画をダウンロードするプログラムを作成していますyoutube-dl
。
私はyoutube-dlを次のように呼び出していましたsubprocess
:
import subprocess
p = subprocess.Popen([command], \
stdout=subprocess.PIPE, \
stderr=subprocess.STDOUT, \
universal_newlines = True)
次に、次のように呼び出してプロセスの出力を読み取ります。
for line in iter(p.stdout.readline, ""):
hide_some_stuff_using_regex()
show_some_stuff_using_regex()
ただし、youtube-dl
Python クラスとして使用することを好みます。だから私は今これをやっています:
from youtube_dl import YoutubeDL as youtube_dl
options = {"restrictfilenames": True, \
"progress_with_newline": True}
ydl = youtube_dl(options)
ydl.download([url])
youtube-dl
コードは機能しますが、の出力をパイプする方法を見つけるのに苦労しています。youtube-dl の出力の一部を使用してリアルタイムで印刷したいので、sys.stdout
印刷するには sys.stdout が必要なため、カスタム出力ストリームへのリダイレクトは機能しません。
手伝って頂けますか?