
Для начала, позвольте сделать пару ремарок, господа и дамы!
1. Надеюсь, Вам не нужно напоминать о различного рода ответственности за использование видео контента, который Вам не принадлежит? Поэтому тщательно изучите лицензию на этот контент и приобретите четкое понимание прав, обязанностей и ответственности за свои действия. Незнание законов не освобождает от ответственности!
2. Существует множество платных и бесплатных программ для macOS, справляющихся с этой задачей отлично, удовлетворительно и просто отвратительно. Про программы для Windows я вообще молчу… с бесплатными “качалками” можно даже какой-нибудь цифровой “сифилис” для своего компьютера подцепить. Так что выбирайте софт вдумчиво, “с чувством такта и расстановкой”.
Одну из таких программ, довольно качественную, я однажды купил. Но со временем, я столкнулся с тем, что её авторы за новую версию попросили денег, а купленная мной перестала выполнять то, что мне нужно по причине изменений в алгоритме хранения и обработки данных онлайн-сервиса. Она просто не могла скачивать уже ничего.
Я решил “Баста!”… и нашел бесплатную замену, работающую безукоризненно! Более того, осмелюсь утверждать, что большинство платных программ являются только своего рода графической оболочкой данной утилиты! Да, это консольная утилита, но к этому неудобству привыкаешь довольно быстро, глядя как аккуратно понравившееся видео ложится к тебе на жесткий диск. А если вдруг, утилита перестает делать то, что раньше делала, то её, или программные компоненты от которых она зависит, просто нужно обновить!
Эта утилита — youtube-dl! Доступна также версия для UNIX/Linux и Windows (youtube-dl gui — утилита с графическим интерфейсом). Но далее речь пойдет о версии для macOS / OS X. Кроме всего прочего, утилита позволяет скачивать видео с множества сайтов. YouTube, Vimeo, Facebook — те, откуда я лично успешно пробовал скачивать видео. Полный список впечатляет!
Примечание для пользователей Windows
Кстати сказать, что пользователи Windows тоже имеют возможность “прикоснуться к прекрасному”. Для них есть уже готовый вариант установщика этой программы, который лежит здесь. Для того, чтобы он работал, нужно дополнительно установить Распространяемый пакет Microsoft Visual C++ 2010 (x86).
Установка youtube-dl на Mac
Для работы youtube-dl требуется установить интерпретатор языка Python. Требуется версия 2.6, 2.7 или 3.2+. Скорее всего, у Вас на Mac уже есть то, что нужно. Введите в Терминале команду python -V и посмотрите что Вам покажут в ответ. Вот например что выдало у меня (macOS Sierra 10.12.6):
MacMini-SERGII:~ sergio$ python -V
Python 2.7.10
Отлично! Подходит. Но если у Вас версия ниже 2.6, интерпретатор нужно Python обновить. Тогда Вам нужно заглянуть сюда. Скачайте любую понравившуюся стабильную сборку ветки 2.7.x или 3.x.x. Например, последней стабильно версией в ветке 2.7 является эта сборка python-2.7.15-macosx10.9.pkg. Можно смело выбрать её, если вера и убеждения не запрещают. После установки Python, приступайте к установке непосредственно youtube-dl.
Примечание
Возможно, с настройками по умолчанию, macOS / OS X не позволит Вам установить содержимое пакета. Для того чтобы это сделать, в “Системных настройках” в пункте “Защита и безопасность” (вкладка “Общие”) нужно установить “Разрешить использование программ, загруженных из: Любого источника.” Если у Вас такого пункта нет, то Вам сюда. Сделайте так, чтобы был, и возвращайтесь.
Теперь, собственно, установим youtube-dl прямо с репозитория в интернет. Для этого нужно ввести в Терминале две команды: первая для загрузки и установки, вторая для назначения файлу программы быть исполняемым (т.е. использоваться как программа). Вот они в порядке очередности выполнения:
sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl
Но это еще не все с установкой! Для великолепной работы youtube-dl потребуется программа FFmpeg. Объясню почему…
Дело в том, что Youtube хранит контент раздельно. То есть, видео представлено как нескольких видеодорожек и аудиодорожек с разным размером кадра / битрейтом и в разных форматах. Для того, чтобы иметь возможность выбрать из них нужные дорожки и тут же объединить их в один видеофайл нужна FFmpeg. Сама эта программа обладает умопомрачительными возможностями для работы с видео, является бесплатной, но… она консольная, то есть, она не имеет графического интерфейса.
Скачиваем FFmpeg от сюда. Нам нужен только FFmpeg, первая в списке. Можно скачать в сжатом архиве .7z или .DMG (образ диска) — все равно, лишь бы Вы смогли извлечь из них саму программу и скопировать её на Рабочий стол (~/Desktop) к примеру. После того, как Вы это сделаете, выполните следующие команды:
sudo mv ~/Desktop/ffmpeg /usr/local/bin/
Первая команда (выше) переместит ffmpeg с Рабочего стола (~/Desktop) в специальную папку (/usr/local/bin/) для консольных программ. Это нужно для того, чтобы другие программы, при необходимости, могли найти её и обратится к ней. Именно это нужно youtube-dl для того, чтобы иметь возможность объединять дорожки видео и аудио в одно целое — видеофайл mp4.
И со второй Вы уже знакомы:
sudo chmod +x /usr/local/bin/ffmpeg
Она назначит файл ffmpeg исполняемым, т.е. даст ему право быть программой.
Теперь, с установкой закончено. Перейдет непосредственно к использованию youtube-dl.
Использование youtube-dl
Откройте страницу с интересующим Вас видео. Скопируйте из адресной строки полную ссылку на эту страницу. Например, я хочу загрузить вот это видео:
Полная ссылка на него выглядит вот так: https://www.youtube.com/watch?v=SRMH-EHscb8
Для начала мне интересно узнать, какие варианты загрузки мне доступны. Для этого, я введу в окне Терминала команду:
cd ~/Desktop/
для того, чтобы моим текущим рабочим каталогом была папка «Рабочий стол» (т.е. всё что я делаю, происходило в ней, иными словами, чтобы все загруженные видео аккуратно сложились именно у меня на «Рабочем столе»).
Затем, следующую команду, которая мне и даст всю интересующую меня информацию:
MacMini-SERGII:~ sergio$ youtube-dl -F https://www.youtube.com/watch?v=SRMH-EHscb8
[youtube] SRMH-EHscb8: Downloading webpage
[youtube] SRMH-EHscb8: Downloading video info webpage
[youtube] SRMH-EHscb8: Downloading js player vflWb9AD2
[info] Available formats for SRMH-EHscb8:
format code extension resolution note
249 webm audio only DASH audio 52k , opus @ 50k, 1.21MiB
250 webm audio only DASH audio 70k , opus @ 70k, 1.61MiB
140 m4a audio only DASH audio 128k , m4a_dash container, mp4a.40.2@128k, 3.14MiB
171 webm audio only DASH audio 138k , vorbis@128k, 3.17MiB
251 webm audio only DASH audio 140k , opus @160k, 3.21MiB
278 webm 256x144 144p 96k , webm container, vp9, 25fps, video only, 2.29MiB
160 mp4 256x144 144p 114k , avc1.4d400c, 25fps, video only, 2.03MiB
242 webm 426x240 240p 221k , vp9, 25fps, video only, 4.30MiB
133 mp4 426x240 240p 335k , avc1.4d4015, 25fps, video only, 4.91MiB
243 webm 640x360 360p 409k , vp9, 25fps, video only, 8.44MiB
134 mp4 640x360 360p 755k , avc1.4d401e, 25fps, video only, 10.87MiB
244 webm 854x480 480p 763k , vp9, 25fps, video only, 15.33MiB
135 mp4 854x480 480p 1287k , avc1.4d401e, 25fps, video only, 18.63MiB
247 webm 1280x720 720p 1470k , vp9, 25fps, video only, 25.50MiB
136 mp4 1280x720 720p 2233k , avc1.4d401f, 25fps, video only, 28.13MiB
248 webm 1920x1080 1080p 2475k , vp9, 25fps, video only, 40.67MiB
137 mp4 1920x1080 1080p 2972k , avc1.640028, 25fps, video only, 39.83MiB
17 3gp 176x144 small , mp4v.20.3, mp4a.40.2@ 24k, 1.97MiB
36 3gp 320x180 small , mp4v.20.3, mp4a.40.2, 5.41MiB
18 mp4 640x360 medium , avc1.42001E, mp4a.40.2@ 96k, 14.79MiB (best)
Сама команда выделена жирным, а ответ на неё — обычным шрифтом. Из ответа видно в каких форматах, какого разрешения и какого битрейта нам доступно видео и аудио. Можно также загрузить только видео-дорожку или аудиотрек.
Обратите внимание на последнюю строчку с идентификатором 18, отмеченную в конце припиской (best). Это предлагаемый “лучший” по мнению Youtube вариант видео со звуком для показа: контейнер mp4, с видео в формате avc1 с разрешением картинки 640×340 и звуком aac (m4a, stereo) с битрейтом 96 кбит/сек. Общий размер этого видео 14,97 Мбайт. Это видео можно загрузить выполнив вот такую простую команду:
youtube-dl -f 'best' https://www.youtube.com/watch?v=SRMH-EHscb8
или так, указав его цифровой код 18:
youtube-dl -f 18 https://www.youtube.com/watch?v=SRMH-EHscb8
Но!.. В списке присутствуют отдельно видео (например, поз.137) с более высоким разрешением 1920х1080, и аудио (например, поз.140) с более высоким битрейтом 128 кбит/сек. А давайте-ка попросим youtube-dl загрузить именно эти… при этом, сразу собрав их в один видеофайл, используя контейнер mp4 и именем test.mp4:
youtube-dl -f 137+140 -o test.mp4 https://www.youtube.com/v=SRMH-EHscb8
Можно и не указывать имя файла. Тогда youtube-dl назовёт его сама, используя название видео из Youtube прибавив к нему идентификатор видео SRMH-EHscb8.
Если мне нужно только аудио с именем файла test.m4a, то пожалуйста:
youtube-dl -f 140 -o test.m4a https://www.youtube.com/v=SRMH-EHscb8
Через несколько секунд после введения команд, получаем то, что хотели в рабочем каталоге (если помните, то он в моём примере — «Рабочий стол»). Вот и все!
Хотите больше знать? Изучайте синтаксис команд для упомянутых программ. Вариантов масса! Но об основном я рассказал. Успехов!