youtube-dl, или как выкачать видео с YouTube в качестве 1080p и выше

Видеохостинг YouTube — второй по посещаемости сайт в мире. Его смотрят с умных телевизоров, игровых и телевизионных приставок, настольных компьютеров и ноутбуков, планшетов и смартфонов. Не все из этих устройств требуют одинаковой картинки. Сетевая природа сервиса и потокового видео предполагает, что на сайте должны быть доступны опции просмотра в разном качестве.

Качество картинки на YouTube варьируется от 144p (144 строчки в прогрессивной развёртке) до 8K 4320p. Последнее видео в четыре раза крупнее 4К 2160p, в шестнадцать — 1080p, в тридцать шесть — 720p, который также называют HD.


Мало какой компьютер может проиграть это видео в его полном разрешении, а доступных по цене 8K-мониторов в мире просто нет.

Технология MPEG-DASH разбивает контент на куски, а браузер запрашивает эти сегменты автоматически. Логично хранить и отдавать отдельно видео и звук. У DASH есть жирный плюс: адаптивность воспроизведения.

Несколько лет назад пользователи YouTube заметили введение DASH по тому, что буферизация видео больше не шла до конца ролика, а ограничивалась примерно минутой. Около того же времени другая проблема возникла у скачивающих видео с YouTube. Внезапно обнаружилось, что ролики с качеством 1080p доступны в виде файлов без звука. Сайты-сервисы, которые раньше выдавали ссылки на скачивание видео, отдавали лишь 720p, не выше. Около 1080p стояло «без звука» или «только видео».
Простое решение: скачать файл видео, скачать файл звука и объединить их с помощью, к примеру, FFmpeg. Сайты скачивания на это не решились: для этого нужен трафик, дисковое пространство для хранения, наконец, можно получить бан по IP от самого YouTube. Подобные сервисы живут на доходах от баннеров, а на эти деньги подобное не позволить.

Проблему можно решить на стороне клиента. Пользователю же нужно разобраться, как скачать исходные данные с YouTube, определиться с их качеством и выбрать лучшие варианты. Видео хранится в VP9 и MP4, звук — M4A, Vorbis или Opus в WebM. Есть много вариантов с разным битрейтом. После этого нужно сшить всё в контейнер .mp4 или .mkv. В зависимости от выбранных форматов команда для FFmpeg может выглядеть как ffmpeg -i videoplayback.mp4 -i videoplayback.webm -c:v copy -c:a copy videoplayback.mkv, где videoplayback.mkv — наш готовый файл.

Процесс однообразен, почему бы его не автоматизировать? Есть утилита, которая выполняет всё это самостоятельно и поддерживает ещё несколько видеохостингов.


youtube-dl — кроссплатформенный свободный проект с открытым исходным кодом на Python. Разработку начал Рикардо Гарсиа, сегодня проект ведут несколько контрибьюторов.

На странице скачивания доступны версия для Windows и инструкции по установке для UNIX-подобных систем (Linux, OS X, FreeBSD и прочие). Для работы в Windows обязательно наличие Microsoft Visual C++ 2010 Redistributable Package x86, для всех остальных — версия Python 2.6, 2.7, 3.2 или выше.

youtube-dl есть в каталогах пакетов некоторых дистрибутивов Linux: sudo apt-get install youtube-dl, sudo yum install youtube-dl, sudo pacman -S youtube-dl — всё это должно установить утилиту. Вернее, одну из её версий, которые быстро устаревают. Логичнее установить python-pip, а затем устанавливать оттуда: sudo pip install youtube-dl. Для сравнения: на момент написания статьи в репозиториях Debian лежит версия 2014.08.05, в то время как актуальной является 2016.11.4.

Часть из дальнейших инструкций относится только к пользователям на Windows 10, но общие принципы работают везде. Переместите скачанный файл youtube-dl.exe в любую папку, к примеру, создайте папку Downloads в Videos. В «Проводнике» в меню «Файл» откройте «Командную строку».

922e530772474d43b1b14869ba4b2747.png

Итак, чтобы выкачать видео в максимальном разрешении и с наилучшим звуком, необходимо ввести команду вида

youtube-dl https://www.youtube.com/watch?v=miVRaoR_8xQ

То есть нужна ссылка на страницу с роликом. В Windows 10 в «Командной строке» работает вставка по Ctrl + V. В более ранних версиях нужно правым щелчком мыши открыть контекстное меню и выбрать пункт меню «Вставить».

23d9e5e22a2f4d73a79d4ee68b5a649e.png

Скачивание плейлистов происходит аналогичным образом. Формат ссылки на плейлист — https://www.youtube.com/playlist?list=PL94A83DC128CC6B4B, то есть нужно зайти на главную страницу плейлиста. Осторожно: youtube-dl выкачает все видео в плейлисте.

05adfa0729554a27986c9776e993617a.png

Можно выкачать все видео пользователя: нужно лишь подставить ссылку на канал в виде https://www.youtube.com/user/username.

По флагу -F будут показаны все доступные форматы. Если ввести флаг -f с числовым кодом формата, он будет выкачан. Комбинация -f bestaudio выкачает аудио в лучшем формате.

756329563c694e38ae7d785ddec49f3e.png
Процесс выкачивания 981 роликов в виде аудио с канала корейской АСМР-щицы.

Одним YouTube дело не ограничивается: программа умеет качать с большого числа сайтов. Если закачку прервать по Ctrl + C, а затем начать снова, утилита распознает недокачанный фрагмент и начнёт качать остаток.

9743ee2171024afab0e5db27efd2949b.png

Видеосервисы регулярно обновляют свои плееры, часть борется с «качальщиками», youtube-dl добавляет в список поддерживаемых новые и новые сайты. Поэтому иногда желательно обновляться. В самостоятельно выкачанных версиях обновление выполняется по youtube-dl -U (sudo по необходимости). В случае pip нужно запустить sudo pip install -U youtube-dl.

70d3ac993c7e4a2f82f2eac42f34f2d5.png

Официальная документация youtube-dl


В качестве аналога небольшой свободной утилитки без графического интерфейса можно привести Freemake Video Downloader. Этот софт содержит эталонный набор отвратительных практик дешёвого софта для Windows.

На странице скачивания продукт рекламируется как бесплатный. Как это часто случается, в дополнение к самой программе инсталлятор пытается поставить сторонний продукт. Это уже настолько привычно, что стало нормой. Установки ненужностей можно избежать только, если выбрать установку с опциями. Лучше всего установщик не запускать вообще: программу обвиняли в подкидывании троянов, шпионского ПО и adware даже при снятии всех галочек.

d18cae620cf9469a8dfcbe802d6ef00a.png

Программа умеет скачивать видео со звуком с YouTube в разрешении в 1080p и выше. Есть лишь одна проблема: в бесплатной версии можно качать только на скорости в 4 мегабайта в секунду. Чтобы снять ограничение, нужно выложить 10 долларов. Всё это немного противоречит заявлениям о бесплатности. Сам интерфейс программы безвкусен и содержит много рекламы других продуктов фирмы-изготовителя.

b746167da35741f39168971432b114f0.png

Другой подобный софт для выкачивания видео выполняет тривиальную задачу, но требует плату за снятие ограничений. Добросовестным можно назвать разве что Free Download Manager, но его возможности по скачиванию видео слабее: нет поддержки плейлистов и каналов, список поддерживаемых сайтов ограничивается YouTube и Google Videos.


На самом деле этот пост не про конкретную программу, которая что-то умеет. И не про то, что консольные приложения лучше.

Современный пользователь приобрёл положительную привычку: когда ему нужно решить некую проблему, он набирает её описание в поисковой системе и тыкается в результаты на первой странице. За более чем полтора десятка лет существования поисковых систем и благодаря расцвету систем искусственного интеллекта вопрос «убрать морщинки» гарантированно выдаст пять—десять статей, которые почти всегда решат проблему.

На другом конце появилась другая хорошая привычка: писать софт для Windows, который решает задачу, которую можно описать с помощью поискового запроса. К примеру, «скачать видео youtube 1080p». Подобных запросов у пользователей много. Можно наделать программ под каждый из них, предоставлять бесплатную версию с возможностью апгрейда до полной за 10—30 долларов. Или продавать установки: распространять с программой нежелательный софт или вообще вирусы.

Есть прекрасный бесплатный софт с открытыми исходными кодами, который решает эти, возникающие у пользователей, запросы. Но поисковая оптимизация никогда не даст ему поселиться на первых строчках выдачи. Там сидят разнообразные программы сомнительного происхождения. Они не внушают доверия ни качеством, ни тем, что подсунет инсталлятор. В этом и есть трагедия жизни полезного софта уровня youtube-dl.

© Geektimes