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
...
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)
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()
.
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
je voudrais que cette
from subprocess import call
command = "youtube-dl https://www.youtube.com/watch?v=NG3WygJmiVs -c"
call(command.split(), shell=False)