youtube-dl "ytsearchall:" -x --audio-format "mp3" --min-views 20000 -i --audio-quality 1 --no-playlist --skip-unavailable-fragments --match-filter 'duration < 900'
Je souhaite que le paramètre ytsearchall soit un fichier contenant les requêtes de recherche. c'est le python code que j'essaie.
from __future__ import unicode_literals
import youtube_dl
f = open('b.txt', 'r')
for line in f:
youtube-dl "ytsearchall:line" -x --audio-format "mp3" --min-views 20000 -i --audio-quality 1 --no-playlist --skip-unavailable-fragments --match-filter 'duration < 900'
Je ne sais pas à propos de python, mais vous pouvez utiliser GNU parallel
pour cela (Sudo apt install parallel
; j'omets la plupart de vos options pour améliorer la clarté ici):
parallel youtube-dl "ytsearchall:{}" -ix :::: /path/to/b.txt
Par défaut, parallel
exécute autant de travaux en parallèle que de cœurs de processeur, ce qui est normalement un bon choix. Si vous souhaitez définir le nombre de processus youtube-dl
exécutés en parallèle, vous pouvez utiliser l'option -j
, par exemple. -j2
pour deux processus.
Vous pouvez également utiliser une boucle while
:
while IFS='' read -r l || [ -n "$l" ]; do youtube-dl "ytsearchall:$l" -ix; done </path/to/b.txt
Les deux méthodes peuvent traiter la dernière ligne de votre fichier ne se terminant pas par un saut de ligne - parallel
de par sa conception, la boucle à l'aide de la commande de test [
.