3

を使用して、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-dlPython クラスとして使用することを好みます。だから私は今これをやっています:

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 が必要なため、カスタム出力ストリームへのリダイレクトは機能しません。

手伝って頂けますか?

4

2 に答える 2