Как скачивать видео из терминала без лишней головной боли

18 апр 2026

Репозиторий давно не обновлялся

Последнее обновление было 6 месяцев назад.

31,696
3,315
385
6 месяцев

Знакомая ситуация: нужно сохранить видео с YouTube, Bilibili или какого-нибудь специфического китайского сервиса, а под рукой только браузерные расширения, которые либо не работают, либо засыпают рекламой. Обычно в таких случаях вспоминают про легендарный youtube-dl или его форк yt-dlp. Но сегодня я наткнулся на Lux — инструмент на Go, который делает всё то же самое, только быстрее и без лишнего пафоса.

Что это за зверь

Lux — это CLI-утилита и библиотека для скачивания видео, написанная на Go. Раньше проект назывался Annie, но после ребрендинга стал Lux. Если вы привыкли к тяжеловесным Python-скриптам, то Lux вас приятно удивит. Он компилируется в один бинарник, работает шустро и поддерживает кучу площадок, включая те, о которых вы, возможно, даже не слышали.

Главная фишка проекта — простота. Вам не нужно заучивать десятки флагов, чтобы просто вытянуть ролик в нормальном качестве. При этом под капотом скрывается поддержка многопоточности и работа с плейлистами.

Чем он хорош на практике

Я погонял Lux на паре задач и выделил несколько моментов, которые реально экономят время.

Информативный режим

Перед тем как забивать диск гигабайтами, хочется понять, что вообще доступно. Флаг -i выводит список всех потоков, разрешений и кодеков. Выглядит это так:

Реклама
lux -i "https://www.youtube.com/watch?v=dQw4w9WgXcQ"

В ответ вы получите четкую структуру: какой ID у потока, сколько он весит и какой командой скачать именно его. Никакого гадания на кофейной гуще.

Многопоточность из коробки

Lux умеет качать видео в несколько потоков. Для этого есть флаг -m (или --multi-thread). По умолчанию он использует 10 потоков, но это число можно подкрутить через -n. В моей практике это сократило время загрузки тяжелых 4K-роликов почти втрое. Главное — не переборщить, а то некоторые сервисы (например, mgtv) быстро выдают 403 ошибку, если видят слишком много соединений.

Работа с плейлистами и списками

Если нужно выкачать целый сериал или курс с Bilibili, флаг -p — ваш лучший друг. Можно гибко настраивать диапазон: качать с 1 по 10 серию или выбрать конкретные эпизоды через запятую. Если же ссылки накиданы в текстовый файл, Lux съест и его через флаг -F.

Как это работает внутри

Проект написан на Go, что дает ему преимущество в скорости запуска и кроссплатформенности. Для сборки финального файла (склейки видео и аудио дорожек) Lux использует FFmpeg. Это стандарт индустрии, так что сюрпризов здесь нет.

Интересно, что Lux умеет работать с куками. Это критично для сервисов вроде Weibo или «Си瓜» (Xigua Video), где без авторизации вам либо не дадут скачать ничего, либо ограничат качество. Вы просто подсовываете текстовый файл с куками через -c, и Lux прикидывается вашим браузером.

Кому пригодится

В первую очередь тем, кто живет в терминале и ценит Unix-way. Lux отлично вписывается в пайплайны автоматизации. Например, если вы пишете свой сервис для обработки видео, Lux можно использовать как библиотеку прямо в вашем Go-коде.

Список поддерживаемых сайтов впечатляет: от мейнстримных YouTube, TikTok и Twitter до специфических Douyin, Bilibili и даже образовательных платформ вроде Geekbang. Есть даже поддержка VK, что для зарубежных инструментов редкость.

Стоит ли переходить на Lux, если вы уже используете yt-dlp? Если вам хватает текущего инструмента и вы не чувствуете тормозов — возможно, и нет. Но если вам нужен легкий, быстрый и понятный инструмент на Go, который не тянет за собой зависимости Python, Lux — отличный кандидат.

Проект живой, у него больше 30 тысяч звезд на GitHub, а коммиты прилетают регулярно. Из минусов — документация в README местами лаконична, а некоторые китайские сервисы требуют специфических настроек ccode, но сообщество быстро фиксит такие моменты в выпусках.

Попробовать установку можно одной командой (если у вас есть Go):

go install github.com/iawia002/lux@latest

Или через Homebrew: brew install lux. Просто, быстро и без лишних слов.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.