English | Русский
Загрузчик видео, аудио и галерей изображений с автоматическим выбором сетевого маршрута. Объединяет yt-dlp (видео и аудио), gallery-dl (галереи) и ffmpeg (конвертация), а когда сайт не открывается напрямую, сам подбирает рабочий маршрут на вашем компьютере, без сторонних серверов. Без ручного подбора параметров в командной строке.
Состояние: ранняя версия. Есть консольный режим и окно (
python routedl_gui.py), установка: двойной клик по install.bat. Лицензия GPL-3.0.
напрямую ──нет соединения──► локальная сетевая стратегия (ByeDPI на 127.0.0.1)
└─ по желанию (--nodes): резервные узлы (xray-core)
- Сначала сайт проверяется напрямую (до 4 с).
- Если не вышло, подбирается локальная стратегия ByeDPI: локальный SOCKS5 на 127.0.0.1, без драйверов, прав администратора и без сторонних серверов. Трафик идёт напрямую к сайту.
- Резервные узлы из публичного списка по умолчанию выключены: они анонимные, часто медленные, и многие выходят в той же стране. Включаются флагом
--nodesили"nodes": trueвroutedl.json. Если сайт отказывает по IP или стране, а узлы выключены, программа так и скажет.
Если сайт отвечает, но файлы не приходят в течение 45 секунд, программа не ждёт дольше и переходит к следующему маршруту (последний маршрут ждёт до 3 минут). Удачный маршрут запоминается для сайта и перепроверяется с прямого каждые 3 часа. Движок выбирается автоматически: yt-dlp или gallery-dl, в зависимости от ссылки.
- Видео, аудио и галереи по одной ссылке, движок выбирается автоматически.
- Видео в аудио: любое видео можно сохранить как MP3, FLAC, WAV или в исходном аудиоформате (подходит для подкастов, лекций, концертов).
- В окне перед загрузкой показываются реально доступные качества (4K, 2K, 1080, 720, 480, 360, 240) и исходный формат звука с честной пометкой, есть ли потери.
- По умолчанию качается только выбранный ролик, а не весь плейлист из ссылки; плейлист целиком включается отдельной галочкой.
Двойной клик по install.bat (скачает собственный портативный Python в папку runtime (системный не нужен) и xray, ByeDPI, ffmpeg, deno из апстрима), затем ярлык RouteDL на рабочем столе (или RouteDL.bat). Антивирус может ругаться на ciadpi.exe и xray.exe: это инструменты обхода блокировок, решение об исключении принимаете вы.
Вручную:
- Python 3.12,
pip install -r requirements.txt(в том числе PySide6 для окна и yt-dlp-ejs для YouTube) - Положите в папку
bin\:xray.exe(Xray-core),ciadpi.exe(ByeDPI),ffmpeg.exeиffprobe.exe(сборка gyan.dev). - Для YouTube нужен JS-рантайм Deno:
winget install DenoLand.Deno.
python routedl_cli.py "https://www.youtube.com/watch?v=..."
python routedl_cli.py --quality 720 "https://vk.ru/video..."
python routedl_cli.py --audio best "https://soundcloud.com/..." # без пережатия
python routedl_cli.py --audio mp3 --cover "https://soundcloud.com/..."
python routedl_cli.py --audio mp3 "https://vk.ru/video..." # аудиодорожка из видео
python routedl_cli.py --playlist "https://www.youtube.com/playlist?list=..."
python routedl_gui.py # окно
python routedl_cli.py --report # последние запуски для issue
Файлы сохраняются в downloads\ рядом со скриптом, по подпапкам video, audio, gallery. Необязательный конфиг routedl.json рядом со скриптом: {"downloads": "D:\\Media", "nodes": false}.
SoundCloud отдаёт сжатые потоки (чаще всего AAC 160 kbps). Конвертация такого потока в FLAC или WAV не повышает качество, а лишь увеличивает файл. Поэтому по умолчанию рекомендуется --audio best (исходный кодек без пережатия). Оригинал без потерь доступен только если автор трека разрешил скачивание.
- Стратегии ByeDPI зависят от провайдера, универсальной нет. Проверено пока на одном провайдере, нужны тестеры.
- Сайты, отказывающие по IP или стране, без резервных узлов не открываются (локальная стратегия меняет способ соединения, но не адрес).
- Резервные узлы (по желанию) публичные и анонимные: через них не передаются cookies и логины (поддержка авторизации намеренно не реализована).
- Массовая загрузка галерей через резервные узлы может быть медленной.
- Часть узлов выходит в РФ и не помогает при блокировке по стране.
- Нет установщика и автообновления компонентов.
- imx.to: gallery-dl 1.32.19 не читает страницы этого сайта (исправлено в разработке, ждём следующий релиз gallery-dl).
Один тестер, один провайдер (домашний интернет). Время включает подбор маршрута.
| Сценарий | Без дополнительных средств | С обходом на уровне роутера |
|---|---|---|
| YouTube 1080p, первый запуск | 9-10 с | 5 с |
| YouTube, повторный запуск (маршрут в кэше) | 3-6 с | |
| SoundCloud, аудио без пережатия (~98 МБ) | 23-53 с (зависит от скорости потока) | |
| Галерея на частично недоступном сайте (главная открывается, файлы нет) | 70 с (45 с ожидания + 22 с загрузка) | 18 с |
| VK, файл 2+ ГБ напрямую | ~30 с |
Быстрая проверка сети без загрузок: python routedl_cli.py --selftest покажет, какие сайты открываются напрямую, а каким нужен обход. Вставьте вывод в issue.
Самая полезная помощь: протестируйте RouteDL на своём провайдере. Запустите несколько загрузок, затем выполните python routedl_cli.py --report --redact и приложите вывод к issue.
Используйте программу только для контента, на который у вас есть права, и в соответствии с законодательством вашей страны и правилами сайтов.
Проект собран из чужих работ, спасибо авторам: yt-dlp (Unlicense), gallery-dl (GPLv2), ByeDPI (MIT), Xray-core (MPL-2.0), FFmpeg (GPLv3-сборка gyan.dev), публичные списки узлов igareck. RouteDL распространяется под GPL-3.0.
Средства обхода сетевых ограничений могут регулироваться законом в вашей юрисдикции: ответственность за их использование на вас. Возрастные и приватные ролики не поддерживаются намеренно (куки и логины не используются).
