Как использовать youtube-dl из программы python

Я хотел бы получить доступ к результатом командной строки:

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 ...

4 ответов


Это не сложно и на самом деле документально:

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 а затем вызовите .


Если youtube-dl является терминальной программой, вы можете использовать subprocess модуль для доступа к данным требуется.

проверить эту ссылку для получения более подробной информации: вызов внешней команды в Python


Я хотел бы это

from subprocess import call

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