web-dev-qa-db-fra.com

Comment utiliser youtube-dl depuis un programme python

J'aimerais accéder au résultat de la commande Shell:

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

imprimer sa sortie direct url à déposer; depuis 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 le source mais je me suis perdu: youtube_dl/__init__.py, youtube_dl/youtube_DL.py, info_extractors ...

61
JulienFr

Ce n'est pas difficile et en fait 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)
103
jaimeMF

Voici un moyen.

Nous définissons la chaîne des options dans une liste, tout comme nous définissons les arguments de la ligne de commande. Dans ce cas, opts=['-g', 'videoID']. Ensuite, appelez youtube_dl.main(opts). De cette façon, nous écrivons notre module personnalisé .py, import youtube_dl, Puis appelons la fonction main().

3
cogitoergosum

Je voudrais ceci

from subprocess import call

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

Si youtube-dl est un programme terminal, vous pouvez utiliser le module subprocess pour accéder aux données souhaitées.

Consultez ce lien pour plus de détails: Appel d'une commande externe en Python

0
user2286078