Независимый и автономный
В интернете много сервисов по скачиванию видео с ютуба. Сегодня мы сделаем свой — простой, понятный и полностью настраиваемый. Для этого мы расчехлим Python — он хорошо справляется с подобными задачами. Если вы совсем новичок в Python — почитайте сначала нашу вводную статью:
Как установить Python на компьютер и начать на нём писать
Подключаем библиотеки
Для загрузки видео нам понадобится библиотека pytube — в ней уже есть всё, что нам нужно. Ещё мы будем использовать библиотеку tkinter для отрисовки интерфейса — мы уже работали с ней, когда писали свою игру на Python.
Для установки библиотек пишем в командной строке:
pip install tkinter
pip install pytube
Теперь подключаем библиотеки в коде:
Рисуем интерфейс
Задача интерфейса — сделать так, чтобы мы смогли вставить ссылку на видео и нажать кнопку «Скачать». Для этого мы нарисуем:
- поле ввода адреса, откуда надо скачать видео;
- кнопку «Скачать» рядом с полем;
- кнопки очистки и выхода.
Это самый простой и минимальный интерфейс, но он уже позволит решить нашу задачу.
Разместим элементы на форме с помощью кода. Если вам непонятно, что тут происходит, посмотрите статью про программу для ведения бюджета — мы там разобрали, как работает графический интерфейс.
Настраиваем кнопки
Начнём с простых — очистки и выхода:
Теперь сделаем самое главное — настроим всё так, чтобы скрипт скачивал видео с ютуба в наилучшем качестве, которое там доступно. Логика такая:
- Берём адрес и с его помощью подключаемся к ютубу.
- Выясняем, какое у видео максимальное разрешение.
- Скачиваем это видео и сообщаем об этом пользователю.
- Если не получилось скачать видео по ссылке или получить данные о его качестве — выводим сообщение об ошибке.
Как обычно, мы прокомментировали каждую строку, чтобы было проще разобраться в том, что происходит в коде:
Что дальше
Можно развивать этот проект дальше и подтянуть его до уровня обычных облачных сервисов. Например, можно добавить такое:
- выбор разрешения видео;
- скачивание плейлистов;
- скачивание нескольких видео друг за другом;
- скачивание только аудиодорожки.
Сделаем это в другой раз, а пока попробуйте сами добавить эти функции, используя библиотеку pytube.