web-dev-qa-db-ja.com

pythonプログラムからyoutube-dlを使用する方法

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__.pyyoutube_dl/youtube_DL.pyinfo_extractors ...

61
JulienFr

難しくはありません 実際に文書化されています

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)
103
jaimeMF

ここに方法があります。

コマンドライン引数を設定するのと同じように、オプションの文字列をリストで設定します。この場合、opts=['-g', 'videoID']。次に、youtube_dl.main(opts)を呼び出します。このようにして、カスタムの.pyモジュールimport youtube_dlを記述し、main()関数を呼び出します。

3
cogitoergosum

私はこれが欲しい

from subprocess import call

command = "youtube-dl https://www.youtube.com/watch?v=NG3WygJmiVs -c"
call(command.split(), Shell=False)
1
Krishna Deepak

youtube-dlが端末プログラムの場合、subprocessモジュールを使用して、必要なデータにアクセスできます。

詳細については、次のリンクを参照してください。 Pythonで外部コマンドを呼び出す

0
user2286078