← На главную

tubedrop — drop ссылку, получи файл

Приложение для macOS в два клика: ссылка на YouTube → чистый файл на Mac. Локальный веб-UI поверх yt-dlp, честная HD-разлочка без сомнительных сайтов-конвертеров. Open source, MIT.

Роль UI, packaging, vibe-coding с Claude Code
Сроки Собрано за вечер
Репозиторий RebSem/tubedrop
Результат Перестал открывать сомнительные сайты-конвертеры, и сам, и те, кому отдаю приложение

tubedrop: личная боль, закрытая за вечер

Мне просто нужно было сохранить видео с YouTube. Любой конвертер-сайт встречал одинаково: попапы, редиректы, фейковые кнопки «Download», 360p в потолок, и в половине случаев в итоге ничего.

Поэтому я собрал себе маленькое приложение под macOS. Вставил ссылку, выбрал качество, нажал download. Файл оказывается на твоём Mac. Без сайта, без аккаунта, без рекламы.

Открыть на GitHub
Главное окно tubedrop: вставленная ссылка на YouTube, превью видео, лесенка качества от 144p до 4K с выбранным 1080p и кнопка download
Всё приложение — это одно окно: ссылка внутрь, файл наружу

Проблема

Скачать видео с YouTube должно быть тривиально. На практике открытый веб делает это мучительным намеренно:

  • Сайты-конвертеры — это adware-ловушки. Каждый «бесплатный YouTube downloader» — это лабиринт из фейковых кнопок и редиректов, спроектированный так, чтобы ты кликнул на что угодно, кроме самого файла.
  • Они режут качество. Анонимные веб-тулы регулярно упираются в 360p, потому что форматы получше YouTube отдаёт только залогиненным клиентам.
  • Хорошие инструменты — только из терминала. yt-dlp + ffmpeg — золотой стандарт, и он бесплатный, но это командная строка с флагами. Такое не отдашь другу, которому просто нужно видео.

kaifcodec/ytconverter уже сделал сложную часть: аккуратно склеил yt-dlp и ffmpeg. Но это всё ещё CLI с промптами. tubedrop — недостающий слой сверху: UI, чтобы было два клика вместо десяти нажатий, и штука, которой я не стесняюсь поделиться с не-программистом.

Что он делает

Весь продукт — это одно локальное окно, без дашборда и лабиринта настроек. Открываешь, и сценарий очевиден:

  • Вставил ссылку, получил превью. Бросаешь URL (или просто перетаскиваешь его в любое место окна), и tubedrop подтягивает название, канал, длительность и обложку: видно, что схватил именно то.
  • Выбираешь ровно то качество, что нужно. Настоящая лесенка форматов, от best и ниже до 4K / 1440p / 1080p / 720p, с живой оценкой размера рядом, чтобы не гадать, во сколько мегабайт обойдётся загрузка.
  • Видео или аудио. Один тумблер переключает MP4-видео в MP3-рип, удобно для подкастов и музыки.
  • Куда сохранять, выбираешь сам. Чипы быстрого выбора: Downloads, Desktop, Movies, Music или отдельная папка tubedrop, плюс нативный пикер папок.
  • Субтитры в один тап. Опциональный .srt на всех доступных языках.

Приложение работает как локальный сервер на твоей же машине. Файлы никогда не покидают Mac, и между тобой и видео нет третьей стороны.

Честная HD-разлочка

Единственная по-настоящему хитрая часть скачивания с YouTube: иногда он прячет всё выше 360p от анонимных тулов. Честное решение — прочитать YouTube-куки браузера, в котором ты уже залогинен; это поднимает потолок до 720p / 1080p / 4K.

Загвоздка в том, что «пусть приложение прочитает куки твоего браузера» — это ровно та фраза, от которой должно становиться подозрительно. Поэтому tubedrop прямо проговаривает, что он делает и чего не делает:

Модалка HD-разлочки в tubedrop: куки читает локально yt-dlp, они не покидают Mac, и приложение обращается только к youtube.com, плюс выбор браузера
Модалка HD-разлочки объясняет сделку до того, как о чём-то просит
  • Куки читает локально yt-dlp. Они никогда не покидают Mac.
  • Обращается только к youtube.com. Куки не видит ни один другой сайт.
  • Это разово и обратимо. Твой выбор — одна строчка в .tubedrop.config; чип hd · safari в шапке отключает его в любой момент.

Пет-проект всё равно зарабатывает или теряет доверие на таких деталях. Лучше я переобъясню единственную пугающе звучащую фичу, чем выкачу её молча.

Установка: реально два клика

Вторая половина «делюсь с не-программистом» — это установка. Без Homebrew, без sudo, без хирургии над глобальным Python.

  1. Скачал zip, распаковал куда угодно.
  2. Дважды кликнул install.command.

Примерно за 30 секунд установщик:

  • использует системный Python, если он 3.10+, иначе скачивает self-contained Python 3.12 (~30 МБ), и ад с версиями просто не наступает;
  • кладёт статический бинарь ffmpeg в папку проекта;
  • ставит yt-dlp в локальное виртуальное окружение;
  • добавляет ярлык Tubedrop на рабочий стол.

Всё остаётся внутри папки. Удаление — это rm -rf: стёр папку, и его нет, без хвостов. Кнопка Quit в углу окна гасит локальный сервер чисто, так что зомби-процессов на портах не остаётся.

Как я это собрал

Это был vibe-coding с Claude Code: я описывал, что хочу, а потом гонял итерации по UI, установщику и cookie-флоу. Сам код не претендует на инженерный шедевр, он претендует на полезность. Интересная работа была в продуктовых решениях: где быть мнением (одно окно, очевидный сценарий), где быть громким (сделка с HD-разлочкой) и как сделать установку достаточно скучной, чтобы её осилил кто угодно.

Два принципа, которых держался:

  • Отдаю кредит ядру. yt-dlp, ffmpeg и особенно kaifcodec/ytconverter делают тяжёлую работу; в README это сказано прямо. Я оборачиваю хорошие инструменты в лучший UX, а не переклеиваю чужую работу на себя.
  • Закрываю собственные боли быстро и в открытую. Когда натыкаюсь на хороший CLI без UX-обвязки, оборачиваю его так, чтобы пользоваться мог не только я, и выкладываю результат в open source.

Лицензия MIT, полный исходник лежит на GitHub. Бери, форкай, шли PR.

Для личного использования. Уважайте условия использования YouTube.