2017-09-10 3 views
-1

python Si je fais cmd:Télécharger des vidéos YouTube à l'aide de sous-processus

youtube-dl -i -w "ytsearch: animaux drôles"

Ensuite, il téléchargera avec succès le premier fichier vidéo avec nom de requête animaux drôles mais quand je l'ai écrit la même chose en utilisant le code python

from subprocess import call 

command = 'youtube-dl -i -w ytsearch:funny animals' 
call(command.split(), shell=False) 

Il télécharge drôle au lieu de animaux drôles. S'il vous plaît aider!

Répondre

2

Votre nom de vidéo contient un espace ... vous pourriez essayer de séparer sur un délimiteur différent à la place.

command = 'youtube-dl|-i|-w|ytsearch:funny animals' 
call(command.split('|'), shell=False) 

Plus de problème si votre nom vidéo contient les mêmes délimiteurs. Une meilleure solution serait de simplement passer la liste explicitement:

call(['youtube-dl', '-i', '-w', 'ytsearch:funny animals'], shell=False) 
+1

Merci beaucoup! Je dois attendre 7 minutes pour accepter votre réponse comme la bonne. – blacklight

+0

@blacklight Quand vous faites 'command.split()' il devient '['youtube-dl', '-i', '-w', 'ytsearch: drôle', 'animaux']'. Ici 'animals' agit comme une autre option de' subprocess.call() 'au lieu de faire partie de' ytsearch: '. – ritiek