Когда находите интересное видео на YouTube, вам хотелось ли его сохранить в архив или что бы посмотреть его в офлайн в путешествии?
Для сохранения видео будем использоваться утилиту youtube-dl, написанной на Python.
Установка youtube-dl
Установка youtube-dl в Debian
apt-get install pip pip install —upgrade youtube_dl -g
Установка youtube-dl в Ubuntu
apt-get install youtube-dl
Установка youtube-dl в CentOS
Для установки в CentOS предварительно необходимо установить EPEL репозиторий
yum install youtube-dl
Скачивание YouTube видео youtube-dl
После установки, достаточно просто указать ссылку, youtube-dl загрузит видео и сохранит его в формате mp4 / flv.
youtube-dl https://www.youtube.com/watch?v=dQw4w9WgXcQ
Скачивание видео с YouTube в разных форматах
Большинство видео на YouTube доступны в разных форматах и разном качестве. Для начала необходимо проверить какие форматы доступны
youtube-dl -F https://www.youtube.com/watch?v=dQw4w9WgXcQ
Install youtube-dl in Windows with ffmpeg | fossfrog
Выбираем необходимый формат и скачиваем его
youtube-dl -f 140 https://www.youtube.com/watch?v=dQw4w9WgXcQ
Пакетное скачивание видео с YouTube
для скачивания множества видео с YouTube используем параметр -a
youtube-dl -a video.list.txt
Извлечь аудио (MP3) из видео YouTube
Если необходимо извлечь звук видео и сохранить его в аудио формате (mp3), необходимо установить ffmpeg, после этого можно будет конвертировать видео YouTube в аудио файлы.
youtube-dl https://www.youtube.com/watch?v=dQw4w9WgXcQ —extract-audio —audio-format mp3
Источник: g-soft.info
Youtube-dl
Youtube-dl — кросс-платформенный менеджер загрузок видео и аудиоконтента с открытым исходным кодом.
Youtube-dl был создан в 2006 году Рикардо Гарсией. Первоначально поддерживался только YouTube, но по мере роста проекта он начал поддерживать другие сайты для обмена видео. На данный момент поддерживает более 1000 сайтов с видео контентом.
Возможности
Youtube-dl может скачать в самом высоком качестве, вплоть до 4320p (8K), как отдельное видео, так и целый плейлист и даже весь ютуб канал.
Как пользоваться
Для скачивания с максимальном качеством звука и видео, надо ввести команду
youtube-dl https://youtu.be/jNQXAC9IVRw
Удаление с GitHub
23 октября 2020 года, Американская ассоциация звукозаписывающей индустрии (RIAA) отправила уведомление GitHub, в котором просила удалить Youtube-dl и 17 публичных форк проектов.
16 ноября GitHub публично восстановил репозиторий после того, как Фонд Electronic Frontier направил GitHub документ, оспаривающий уведомление о снятии, в котором разъяснялось, что программное обеспечение не способно нарушать коммерческие системы DRM. GitHub также объявил, что будущие претензии по изъятию, будут тщательно изучаться вручную в каждом конкретном случае юридическими и техническими экспертами.
Источник: vjon.ru
Сравнение yt-dlp и youtube-dl
Посты на тему скачивания видео с видеохостингов с помощью утилиты YouTube-DL можно найти вот по этому тегу.
Всем хороша YouTube-DL, кроме одного – низкая скорость скачивания. Ни для кого не секрет, что это самое слабое место данной утилиты. Примечательно, что эта проблема проявляется только при скачивании как раз с того самого видеохостинга, название которого фигурирует в имени программы. В общем, неувязочка вышла…
В поисках альтернативы я набрёл на программу Yt-dlp и решил сравнить скорость скачивания видео этой утилиты с YouTube-DL в равных условиях для решения простой задачи.
Yt-dlp это форк YouTube-DL, основанный на YouTube-dlc. Написан Yt-dlp на Python (отсюда и такой postpic). Скачать его можно со странички релизов утилиты или по прямой ссылке. Для запуска утилиты не нужны какие-либо внешние библиотеки или компоненты Python. Распространяется программа в виде самодостаточного exe-файла.
Итак, задача: необходимо скачать представленный ниже ролик продолжительностью 5 минут 13 секунд в контейнер mp4 с высотой кадра равной 1080р, максимально возможным качеством аудиодорожки и избежать потокового кодирования или замены кодеков. Исключением здесь будет только микширование в конечный контейнер для которого потребуется ffmpeg.
Передача команд утилитам будет осуществляться c помощью PowerShell. Для замера времени выполнения скрипта я воспользовался командлетом Measure-Command . Скорость скачивания видео и время работы утилит будут отмечены в файле лога. Коды скриптов и логи выложу ниже. Поехали!
Спустя час и пару бокалов чая…
YouTube-DL справился с задачей за 54 минуты 58 секунд, но у него удалось сохранить видео только в формат webm. Какие только комбинации настроек я не использовал, но контейнера mp4 так и не получил. Вполне возможно, что я применил не корректную связку атрибутов опций и где-то программа обходила возникшее исключение. Впрочем, это всё же мелочи… А вот скорость скачивания едва превышала 90 KiB/s. Конечный файл весит 263 мегабайта.
Код тестового скрипта для YouTube-DL:
$time = Measure-Command < $cmd = ‘-f («bestvideo[height=1080]»/best) + bestaudio/bestvideo + bestaudio —merge-output-format mp4’ cd C:test .youtube-dl.exe $cmd https://youtu.be/LXb3EKWsInQ | Out-File log_youtube-dl.txt -Append >$finish = $time.ToString() Write-Host «Видео скачано за: $finish» -ForegroundColor Red Read-Host «Нажмите любую клавишу для выхода. »
Yt-dlp управился за полминуты (33 секунды, если быть точным). Видео и аудио помещены в контейнер mp4. Размер файла остался таким же – 263 мегабайта. Скорость скачивания подскакивала до показателя в 10 MiB/s.
Код тестового скрипта для Yt-dlp:
$time = Measure-Command < cd C:test .yt-dlp.exe -f ‘bv*[height=1080]+ba’ —merge-output-format mp4 https://youtu.be/LXb3EKWsInQ | Out-File log_yt-dlp.txt -Append >$finish = $time.ToString() Write-Host «Видео скачано за: $finish» -ForegroundColor Red Read-Host «Нажмите любую клавишу для выхода. »
Думаю, выводы очевидны.
Пока что не тестировал взаимодействие Yt-dlp с другими видеохостингами, но в рамках поставленной задачи – утилита превзошла все ожидания.
В ближайшем будущем выкачу пост с PS1-скриптом для скачивания роликов с помощью Yt-dlp.
P.S.: архив с логами можно скачать здесь.
Источник: ngdream.ru