youtube-dl "ytsearchall:" -x --audio-format "mp3" --min-views 20000 -i --audio-quality 1 --no-playlist --skip-unavailable-fragments --match-filter 'duration < 900'
Я хочу для ytsearchall параметра быть файлом, содержащим поисковые запросы. это - код Python, который я пробую.
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'
Я не знаю о Python, но Вы могли использовать GNU parallel
для этого (sudo apt install parallel
; Я опускаю большинство Ваших опций увеличить ясность здесь):
parallel youtube-dl "ytsearchall:{}" -ix :::: /path/to/b.txt
По умолчанию parallel
выполнения столько заданий параллельно, сколько у Вас есть ядра процессора, который обычно является хорошим выбором. Если Вы хотите определить номер youtube-dl
процессы работают параллельно, можно использовать -j
опция, например. -j2
для двух процессов.
Кроме того, Вы могли использовать a while
цикл:
while IFS='' read -r l || [ -n "$l" ]; do youtube-dl "ytsearchall:$l" -ix; done </path/to/b.txt
Оба пути могут справиться с последней строкой Вашего файла, не заканчивающегося в разрыве строки – parallel
дизайном, циклом с помощью тестовой команды [
.