Shellコマンドの結果にアクセスしたい:
youtube-dl -g "www.youtube.com..."
出力direct url
をファイルに出力します。 pythonプログラム内から:
import youtube-dl
fromurl="www.youtube.com ...."
geturl=youtube-dl.magiclyextracturlfromurl(fromurl)
それは可能ですか?ソースのメカニズムを理解しようとしましたが、迷子になりました:youtube_dl/__init__.py
、youtube_dl/youtube_DL.py
、info_extractors
...
難しくはありません 実際に文書化されています :
import youtube_dl
ydl = youtube_dl.YoutubeDL({'outtmpl': '%(id)s%(ext)s'})
with ydl:
result = ydl.extract_info(
'http://www.youtube.com/watch?v=BaW_jenozKc',
download=False # We just want to extract the info
)
if 'entries' in result:
# Can be a playlist or a list of videos
video = result['entries'][0]
else:
# Just a video
video = result
print(video)
video_url = video['url']
print(video_url)
ここに方法があります。
コマンドライン引数を設定するのと同じように、オプションの文字列をリストで設定します。この場合、opts=['-g', 'videoID']
。次に、youtube_dl.main(opts)
を呼び出します。このようにして、カスタムの.pyモジュールimport youtube_dl
を記述し、main()
関数を呼び出します。
私はこれが欲しい
from subprocess import call
command = "youtube-dl https://www.youtube.com/watch?v=NG3WygJmiVs -c"
call(command.split(), Shell=False)
youtube-dl
が端末プログラムの場合、subprocess
モジュールを使用して、必要なデータにアクセスできます。
詳細については、次のリンクを参照してください。 Pythonで外部コマンドを呼び出す