# yt-dlp упаковали в GUI для Windows: Flask, свой Python и архив на 170 КБ

> 2026-10-28 · AI Release · @ai_release1

> #yt-dlp #Windows #Python #Flask #yt #OpenSource #инструменты #видео

### ⚡ Главное за 5 секунд - OlegChe77 выложил на Хабре кейс «Универсальный скачиватель»: обёртка над yt-dlp, один zip и двойной щелчок вместо консоли. - Внутри — Flask на 127.0.0.1:8765, значок в трее через pystray, встроенный Python с python.org, ffmpeg и Deno через pip. - Архив весит 170 КБ, тяжёлые зависимости докачиваются при первом запуске. ### 🔍 Что случилось 26 октября на Хабре вышел разбор OlegChe77 — программа «Универсальный скачиватель», которая прячет yt-dlp за понятной страницей с кнопками. Задача бытовая: дома регулярно спрашивают, как скачать видео, а ответ «поставь yt-dlp» упирается в консоль, Python, ffmpeg и ключи командной строки. Цель — один zip, двойной щелчок, без установки Python, рекламы, регистрации и чужих серверов. Полный текст лежит на Хабре. Механика простая до наглости. Интерфейс — обычная HTML+JS-страница без фреймворков, её отдаёт Flask на `127.0.0.1:8765`, сама программа живёт значком у часов через pystray и окна не имеет. Цепочка внутри — yt-dlp, ffmpeg, Deno (без JS-движка YouTube отдаёт не все форматы). Всё тяжёлое описано в одном `requirements.txt`: `yt-dlp[default,curl-cffi]`, `flask`, `imageio-ffmpeg`, `deno`, `pystray`, `pillow`. Отдельная строка — curl-cffi: без браузерного TLS-отпечатка TikTok и Instagram отвечают «Unexpected response» и «empty media response». Грабли автор разбирает подробно, и они полезнее самого скачивателя. В embeddable-Python нет pip: wheel приходится распаковывать в `site-packages`, а потом ставить тем же `python -m pip install --force-reinstall`. Каталог скрипта не виден — путь правится файлом `python312._pth` (`python312.zip`, `.`, `..`, `import site`). Режим изолированный, так что `PYTHON*`, включая `PYTHONIOENCODING`, не действуют. tkinter нет — диалог выбора папки сделан через FolderBrowserDialog из PowerShell. Установщик сверяет SHA-256 архива Python и wheel pip, у `python.exe` и `python312.dll` проверяет Authenticode, собирает всё в `python.new` и переименовывает только после проверок. ### 🧠 Наш разбор Меня тут цепляет не скачиватель, а честно вскрытая боль: в 2025-м сложно не достать видео, а довезти консольный инструмент до человека, который не хочет знать слово «терминал». Каждая «простая» задача на Windows оказалась с подвохом — это цитата из текста, и она точнее любого маркетинга про «интуитивный интерфейс». Вторая вещь — архитектурный выбор. 170 КБ против Electron-сборок, которые обычно весят сотни мегабайт: браузер уже стоит у всех, локальный порт и HTTP-API дают и страницу, и расширение, и букмарклет разом. По опыту, это самый дешёвый способ сделать GUI для утилиты, у которой уже есть CLI. Наша оценка: приём недооценён, и его стоит скопировать всем, кто тянет Qt ради одной формы с двумя кнопками. Кто выигрывает? Пользователь, которому не надо ставить Python и объяснять родителям, что такое PATH. Кто проигрывает? Скорее никто — готовые программы с рекламой и платным «Pro» просто получили конкурента без рекламы. Но есть цена: программа сама качает и запускает код из интернета и обновляет yt-dlp раз в сутки, а себя — с GitHub, с откатом. Автор это понимает, раз зашил подписи и хеши. Всё равно самодокачивающийся Python — это доверие, а не безопасность. ### ⚠️ Чего мы не знаем Мы видели только фрагмент статьи: нет ссылки на репозиторий, нет замеров скорости, размера готовой сборки и качества сжатия в H.265. Нет ни слова про реакцию антивирусов на скрипт, который тянет python.exe из сети, — а это типичное ложное срабатывание. Источник один: автор рассказывает про собственный продукт и сам себя тестирует. Проверять придётся вручную, на своей машине. ### 💬 О чём спорить - Один zip со встроенным Python или установщик, который требует Python в системе: что честнее по отношению к пользователю? - Автообновление yt-dlp раз в сутки и себя с GitHub — это забота или лишняя дырка, которую пользователь не контролирует? - Стоит ли тащить интерпретатор внутрь архива, если завтра его придётся обновлять вместе с зависимостями, или проще оставить yt-dlp в консоли и не плодить обёртки? **Прогноз:** в течение квартала появится хотя бы одна независимая сборка по той же схеме — Flask на localhost вместо Electron. Приём слишком дешёвый (170 КБ против сотен мегабайт), чтобы его не скопировали, если автор не спрячет код. **Дисклеймер:** один источник — авторский кейс, независимой проверки нет. **Источник:** Хабр

[Источник](https://habr.com/ru/articles/1099750/)
