[python] 파이썬 프로그램에서 youtube-dl을 사용하는 방법은 무엇입니까?

다음 셸 명령의 결과에 액세스하고 싶습니다.

youtube-dl -g "www.youtube.com/..."

direct url파이썬 프로그램 내에서 파일로 출력을 인쇄합니다 . 이것이 내가 시도한 것입니다.

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)


답변

간단한 코드의 경우 생각할 수 있습니다.

import os
os.system('youtube-dl [OPTIONS] URL [URL...]')

위는 파이썬 내부에서 명령 줄을 실행하는 것입니다.

기타는 Python
에서 youtube-dl 사용 설명서에 언급되어 있습니다 . 방법은 다음과 같습니다.

from __future__ import unicode_literals
import youtube_dl

ydl_opts = {}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
    ydl.download(['https://www.youtube.com/watch?v=BaW_jenozKc'])


답변

방법이 있습니다.

명령 줄 인수를 설정하는 것처럼 옵션의 문자열을 목록으로 설정합니다. 이 경우 opts=['-g', 'videoID']. 그런 다음 youtube_dl.main(opts). 이런 식으로 사용자 지정 .py 모듈을 작성한 import youtube_dl다음 main()함수 를 호출합니다 .


답변

경우 youtube-dl터미널 프로그램입니다, 당신은 사용할 수 있습니다 subprocess당신이 원하는 데이터에 액세스 할 모듈을.

자세한 내용은이 링크를 확인하십시오. Python에서 외부 명령 호출


답변

나는 이것을 원한다

from subprocess import call

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


답변