Сломался даунлоадер с Ютуба yt-dlp
, который я пользовал в качестве альтернативы youtube-dl
, поскольку youtube-dl
медленный. Но ютубовские уроды опять что-то поменяли и старая версия yt-dlp
перестала работать. Решил обновить.
Новой версии yt-dlp
нужна и новая версия Python. У меня стояла 3.7, а нужна 3.9.
1. Сносим старую версию (название пакета у вас может быть другим, у меня был python3-3.7.2-i586-1_SBo
):
removepkg python3-3.7.2-i586-1_SBo
2. Качаем SlackBuild и исходники от Alien
3. Кладем их в отдельный каталог и делаем пакет:
./python3.SlackBuild Python-3.9.5.tar.xz
4. Устанавливаем пакет:
installpkg python3-3.9.5-i586-1alien.txz
Копии:
Слакбилд и исходники (RAR)
Готовый пакет (TXZ)
1. Сносим старый пакет, если есть (название пакета ниже может быть другим):
removepkg yt-dlp
2. Делаем временный каталог:
cd /tmp
mkdir yt-dlp2024
3. Создаем в нем каталог bin
:
cd yt-dlp2024
mkdir bin
4. Качаем в bin
с GitHub готовую версию yt-dlp
:
Ссылка на страницу установки
Ссылка на бинарник для Linux
5. Устанавливаем скачанному файлу права на исполнение:
chmod 755 yt-dlp
6. Создаем пакет:
cd ..
makepkg ../yt-dlp2024.txz
7. В каталоге /tmp
будет создан пакет yt-dlp2024.txz
, нужно его установить:
cd ..
installpkg yt-dlp2024.txz
При первом использовании нового yt-dlp
возникла ошибка:
[youtube] Extracting URL: https://www.youtube.com/watch?v=3zyZ-Ya7FJE
[youtube] 3zyZ-Ya7FJE: Downloading webpage
[youtube] 3zyZ-Ya7FJE: Downloading ios player API JSON
[youtube] 3zyZ-Ya7FJE: Downloading android player API JSON
WARNING: [youtube] Skipping player responses from android clients (got player responses for video "aQvGIIdgFDM" instead of "3zyZ-Ya7FJE")
[youtube] 3zyZ-Ya7FJE: Downloading m3u8 information
[info] 3zyZ-Ya7FJE: Downloading 1 format(s): 137+251
ERROR: 'latin-1' codec can't encode character '\u29f8' in position 6: ordinal not in range(256)
Ну все, пиздец, подумал я, настала та самая жопа, когда ебался пол ночи, а звуки для новых сэмплов так и не скачаю, а друзья неделю пилили, что из «жужжалки» UVB-76 (это такая всем известная номерная радиостанция), я себе семплов нужных и нарежу, а тут такой облом. Пошел в ресторацию, выпил хорошего немецкого пива под сосисочки, и решение нагуглилось!
При вышеуказанной ошибке yt-dlp
надо запускать с параметром --restrict-filenames
:
yt-dlp --restrict-filenames <url>
где
<url>
— адрес видео, которое хотим скачать, например:
yt-dlp --restrict-filenames https://www.youtube.com/watch?v=3zyZ-Ya7FJE
Все! Качается:
[youtube] Extracting URL: https://www.youtube.com/watch?v=3zyZ-Ya7FJE
[youtube] 3zyZ-Ya7FJE: Downloading webpage
[youtube] 3zyZ-Ya7FJE: Downloading ios player API JSON
[youtube] 3zyZ-Ya7FJE: Downloading android player API JSON
WARNING: [youtube] Skipping player responses from android clients (got player responses for video "aQvGIIdgFDM" instead of "3zyZ-Ya7FJE")
[youtube] 3zyZ-Ya7FJE: Downloading m3u8 information
[info] 3zyZ-Ya7FJE: Downloading 1 format(s): 137+251
[download] Destination: UVB-76_The_buzzer_4625_kHz_USB_Live-[3zyZ-Ya7FJE].f137.mp4
[download] 16.6% of 260.26MiB at 252.20KiB/s ETA 14:41
Решение нашел здесь