Чтобы создать исполняемый скрипт bash для решения вашей проблемы, вставьте этот блок кода в файл с именем «download. sh» в той же директории, где у вас есть файл «links.txt» do c:
#!/bin/bash
topics=($(grep -v "http" links.txt))
for ((i = 0 ; i < ${#topics[@]} ; i++))
do
mkdir ${topics[$i]}
cd ${topics[$i]}
sed -n "/^${topics[$i]}/,/^${topics[$i+1]}/p" ../links.txt |\
sed '1d;$d' > to_be_downloaded.txt
youtube-dl -a to_be_downloaded.txt
rm to_be_downloaded.txt
cd ../
done
Сохраните сценарий, затем измените разрешения сценария на «исполняемый», вставив его в терминал:
chmod +x download.sh
И затем выполните команду скрипт из терминала:
./download.sh
Как и раньше, это не удастся для последней topi c в вашем файле links.txt: выполните эти пропущенные URL-адреса вручную. Дайте мне знать, если у вас возникнут проблемы.