Comment utiliser youtube-dl à partir d'un programme python

j'aimerais accéder au résultat de la commande shell:

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

pour imprimer sa sortie direct url vers un fichier; à partir d'un programme python:

import youtube-dl
fromurl="www.youtube.com ...."
geturl=youtube-dl.magiclyextracturlfromurl(fromurl)

est-ce possible ? J'ai essayé de comprendre le mécanisme dans la source, mais je me suis perdu.: youtube_dl/__init__.py , youtube_dl/youtube_DL.py , info_extractors ...

43
demandé sur esnadr 2013-08-05 13:16:36

4 réponses

ce n'est pas difficile et réellement documenté :

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)
74
répondu jaimeMF 2014-12-08 16:27:53

Voici un.

nous configurons La chaîne d'options, dans une liste, tout comme nous configurons les arguments en ligne de commande. Dans ce cas opts=['-g', 'videoID'] . Puis, invoquez youtube_dl.main(opts) . De cette façon, nous écrivons notre coutume .PY module, import youtube_dl et puis invoquer la fonction main() .

4
répondu cogitoergosum 2013-12-19 09:41:56

si youtube-dl est un programme de terminal, vous pouvez utiliser le module subprocess pour accéder aux données que vous voulez.

vérifier ce lien pour plus de détails: appeler une commande externe en Python

2
répondu Community 2017-05-23 12:10:31

je voudrais que cette

from subprocess import call

command = "youtube-dl https://www.youtube.com/watch?v=NG3WygJmiVs -c"
call(command.split(), shell=False)
2
répondu Krishna Deepak 2014-05-02 13:25:12