Как передать файл, содержащий запросы youtube-dl?

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'
1
задан 5 February 2018 в 06:55

1 ответ

Я не знаю о 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 дизайном, циклом с помощью тестовой команды [.

3
ответ дан 7 December 2019 в 12:30

Другие вопросы по тегам:

Похожие вопросы: