Очередная инструкция на случай амнезии.
YT-DLP - БАЗИРОВАННАЯ тулза для скачивания контента с медиахостингов, и многие проги ей завидуют хранят под капотом именно её ядро. Оседлав этого жеребца, смотришь на других наездников, как на бедолаг с раздолбанным очком. Приступим.
yt-dlpработает в связке сffmpeg, поэтому скачиваем свежие релизы первого и второго и распаковываем исполняемые файлы в одну папку.
- Поскольку yt-dlp работает через CLI, чтобы вызывать его из любого места добавим путь к программе в переменную среды Windows
PATH.
Note
Напомню: при вызове .EXE из командной строки без указания полного пути до него, Windows сначала шерстит каталоги, перечисленные в переменной среды PATH, и если ничего не находит, пишет:
Поэтому заходим в Пуск, начинаем печатать «перемен...», как нам уже предлагают пункт «Изменение системных переменных среды». Его и выбираем. Далее (можно сразу к картинке):
1) кликаем «Переменные среды...»;
2) в «Переменные среды пользователя...» дабл-клик по Path;
3) «Создать» и указываем путь к каталогу с yt-dlp.exe;
4) После перезагрузки или даже выхода из учётки (или сразу?) изменения вступят в силу, и можно будет обращаться из любого места по имени:
> yt-dlp <URL>- А теперь самое главное — КОНФИГ. Он нужен, чтобы не указывать ключи всякий раз, когда хотим что-то скачать. У меня он лежит там же, где всё остальное, и называется
yt-dlp.conf. >> САМ КОНФИГ <<.
Note
Поскольку я по-прежнему стою на том, что пишу ДЛЯ СЕБЯ, будет шизофренией объяснять значение всех команд себе же. Если что-то забыл, чекай документацию.
Где-то в системе лежит папка с содержимым:
Открываем командную строку и обращаемся к yt-dlp, добавляя в конце URL нужного видоса/плейлиста/канала. Делаем это по имени, т.к. уже добавили путь в PATH.
> yt-dlp https://www.youtube.com/watch?v=SSVybV2_cW8Благодаря настроенному конфигу после инициализации запроса начнется скачивание видосов в нужном качестве с нужным обвесом в указанный каталог.
Note
Решил вычистить конфиг от большинства комментов и перенести сюда в виде заметок.
Нужно запомнить всего три команды:
-U - обновляет yt-dlp до актуальной версии. Если видео не хочет скачиваться или скачивается медленно.
-F - анализирует переданный URL и показывает доступные варианты скачивания.
-f - скачивает выбранный формат.
https://dtf.ru/howto/2026499-kak-polzovatsya-yt-dlp
- В командной строке из под админа находим папку c yt-dlp.
- Пишем:
mklink yt.exe yt-dlp.exe- В каталоге создается символьная ссылка на
yt-dlp.exe. Теперь можем вызывать:
yt <URL>
Пытаюсь вспомнить, что же меня так зацепило в идиотской идее автора скачать видеоклип, а затем извлечь из него аудиодорожку с последующей её конвертацией. Вероятно, сама возможность так сделать. Наверняка этому есть обоснованное применение, которое я пока не догнал.
-x, --extract-audio Convert video files to audio-only files
-c, --continue Resume partially downloaded files/fragments (default)
-i, --ignore-errors Ignore download & postprocessing errors. Download will be considered successful
-w, --no-overwrites Do not overwrite any files
--audio-quality Specify quality when converting audio with -x. Insert value between 0 (best) and 10
(worst) or specific bitrate like 128K (default 5)
The result:
yt-dlp <URL> -xciw -f "bestaudio/best" --audio-quality 0 --audio-format mp3 --embed-thumbnail --embed-metadata -o "%(title)s.%(ext)s"If video doesn’t have artist in the title, use following output template instead:
-o "%(creator,uploader,channel)s - %(title)s.%(ext)s"
https://blog.elijahlopez.ca/posts/yt-dlp-audio-download/
--sleep-interval SECONDS минимальная задержка в сек перед стартом следующей загрузки
--max-sleep-interval SECONDS максимальная задержка. Min и Max используются СОВМЕСТНО!!
Задавая минимальный и максимальный интервалы, фактический выбирается случайным образом. Рассмотрите также возможность добавления --sleep-requests:
--sleep-requests 1.5 --min-sleep-interval 60 --max-sleep-interval 90
Or, are you asking to convert unicode characters to their "equivalent" ASCII counterparts when using --restrict-filenames?
yt-dlp/yt-dlp#1330 (comment)
Unicode already has the concept of "equivalent" characters; and you can tell yt-dlp to replace them using NFKC normalization (We could consider using this as default when --restrict-filenames is given)
- Unicode normalization: The format type U can be used for NFC unicode normalization. The alternate form flag (#) changes the normalization to NFD and the conversion flag + can be used for NFKC/NFKD compatibility equivalence normalization. Eg:
%(title)+.100Uis NFKC
If you want more characters to be replaced, use --replace-in-metadata.
yt-dlp/yt-dlp#1330 (comment)
Use the 02d flags instead of the s conversion type (string).
The d signifies that it is an integer decimal type, the 0 that it should be padded with 0's, and the 2 that it should be 2 digits in length.
yt-dlp -o "S%(season_number)02d - E%(episode_number)02d - %(episode)s - %(id)s.%(ext)s" <URL>https://askubuntu.com/a/1305098
There's no way to easily rename previously renamed files. If you grabbed the metadata with --write-info-json then you have the a file with most of the variables available at least.
--extractor-args "youtube:player_client=ios;player_skip=webpage"
yt-dlp/yt-dlp#10085 (comment)
| Формат | Потоки |
|---|---|
| b* | ?ВИДЕО ?АУДИО |
| b | ВИДЕО+АУДИО |
| bv | ВИДЕО |
| bv* | ВИДЕО ?АУДИО |
| ba | АУДИО |
| ba* | АУДИО ?ВИДЕО |
Полезно к ознакомлению:







А как выполнить скачивание с видео возрастным ограничением 18+ ?
Когда включаю --cookies-from-browser firefox - оно работает:
Extracting cookies from firefox
Extracted 1294 cookies from firefox
но доступны только форматы изображения...
(на примере публичный ролик без ограничения, но у меня есть и те что имеют такое ограничение, поведение такое, что просто он вообще не доступен, а с куками только изображения, и их никак не удаётся скачать(((