Столкнулся с необходимостью загрузить плейлист с Youtube Music через youtube-dl. Однако, при скачивании, некоторые загрузки обрывались. Решил поискать как можно сделать докачку.
К счастью, не я один был с такой проблемой, поэтому нашел уже готовое решение, выглядит оно вот так
youtube-dl --download-archive downloaded.txt --no-post-overwrites -ciwx --audio-format mp3 -o "%(title)s.%(ext)s" --audio-quality 0 "https://music.youtube.com/<путь-к-плейлисту>"
Для себя немного доработал его и положил в bash скрипт youtube-dl-mp3-playlist, в папку добавленную в Path
#!/bin/bash
if [ "$#" -ne 1 ]
then
echo "Usage: youtube-dl-mp3-playlist link"
exit 1
fi
youtube-dl --download-archive downloaded.txt --no-post-overwrites -ciwx --audio-format mp3 -o "%(title)s.%(ext)s" --audio-quality 0 "$1"
соответственно теперь достаточно открыть консоль в нужной папку и выполнить
youtube-dl-mp3-playlist "https://music.youtube.com/<путь-к-плейлисту>"
работает это таким образом, что после загрузки хеш видео сохраняется в файл downloaded.txt и при перезапуске скрипта просто скипается.
Ну, и бонусом, скачать видео и конвертировать его в mp3 (youtube-dl-mp3)
#!/bin/bash
if [ "$#" -ne 1 ]
then
echo "Usage: youtube-dl-mp3 link"
exit 1
fi
youtube-dl --extract-audio --audio-format mp3 --audio-quality 0 "$1"
Скачать видео и конвертировать его в mp4 (youtube-dl-mp4)
#!/bin/bash
if [ "$#" -ne 1 ]
then
echo "Usage: youtube-dl-mp4 link"
exit 1
fi
youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio' --merge-output-format mp4 "$1"