#youtube #youtube-dl
#YouTube #youtube-dl
Вопрос:
Я пытаюсь загрузить видео с канала, у которого есть субтитры. Существует более тысячи файлов, но лишь немногие имеют субтитры.
youtube-dl --all-subs -ciw -o "./tmp/%(playlist_index)s - %(title)s.%(ext)s" https://www.youtube.com/watch?v=eVW0Xz85qSAamp;list=PLElG6fwk_0UmBgC02jKJePx
Если я могу запускать команду после каждой загрузки URL, этого может быть достаточно. В этом случае я проверю наличие любого файла субтитров и приму решение сохранить его или удалить.
может --exec
быть, это и хорошо, но у меня это сработало не так, как я ожидал.
Ответ №1:
Вероятно, это можно было бы сделать более элегантным способом. Но у меня это работает.
Сначала извлеките URL-адреса с субтитрами (конечно, замените «playlist_url» фактическим URL-адресом списка воспроизведения).
youtube-dl --write-sub -ij playlist_url | jq -r ".subtitles"
| grep -Eo "v=[^amp;] " | sort -u > urls.txt
amp;amp; sed -i -e s7^7https://www.youtube.com/watch?7 urls.txt
а затем загрузите эти файлы с помощью пакетного ввода
youtube-dl -cia urls.txt
* обратите внимание, что правильный playlist_url для указанного вами адреса канала — «https://www.youtube.com/user/SonechkoProject/videos »
Комментарии:
1. у меня это не сработало. Я протестировал его для этого URL-адреса плейлиста
//www.youtube.com/watch?v=iy9J81i-Y-kamp;list=PLElG6fwk_0UmBgC02jKJePxzFRne4OCHy
. он включает в себя видео с субтитрами. Я вижу вывод json. он включает «.subtitles», но urls.txt пусто в конце. Я даже удалил команды grep, sort и sed. но результат тот же.2. Ваш адрес — это отдельный видеоадрес с прикрепленным списком воспроизведения. Вам нужно заключить его в кавычки, поскольку в нем есть сущность.