NeoDownloader 6
Шестая версия написана с нуля. Мы хотели сделать NeoDownloader лучше и удобнее: чтобы он работал не только под Windows; чтобы говорил на вашем языке и выглядел так, как нравится вам; чтобы поддержка нового сайта не требовала новой версии программы. Ниже - насколько это удалось.
Снимки на скриншотах: Katsushika Hokusai, The Met, NASA
Сколько сайтов поддерживается
Если коротко, то сотни и тысячи. Много дают два движка в поставке: Video Downloader и Gallery Downloader, а вместе это тысячи площадок - сколько у каждого, сказано в карточках ниже. Собственные рецепты уже есть для многих сайтов: и именные, под конкретную площадку, и общие, которые берут любую галерею, ветку форума или профиль с предсказуемой формой, - и список постоянно пополняется, потому что рецепт это файл, а не выпуск программы.
Что уже есть и что впереди
У каждого пункта стоит состояние: реализовано, частично или в планах.
Как это выглядит
Современный интерфейс: тёмная тема и двенадцать цветов
РеализованоСветлая тема, тёмная или «как в системе» - переключается на лету, без перезапуска. Акцентный цвет выбирается из двенадцати (бирюзовый, синий, фиолетовый, розовый, красный, оранжевый, зелёный и другие), и под него перекрашивается весь интерфейс, вместе с карточками проектов и полосами прогресса.
Тринадцать языков - и ваш, если попросите
РеализованоПрежние версии говорили только по-английски. Шестая - на тринадцати языках, и язык выбирается прямо в программе, без перезапуска. Вашего среди них нет? Напишите нам - переведём на любой, если вы готовы потом проверить перевод в живом интерфейсе.
Просмотрщик и плеер - быстрее и удобнее
РеализованоСмотреть скачанное, не выходя из проекта, стало заметно удобнее. Картинка открывается во весь экран, а внизу лента превью - остальные файлы проекта под рукой, и перелистывать их можно, не закрывая полноэкранный режим. Плеер стал быстрее: он декодирует видеокартой и тянет видео вплоть до 8K, тогда как пятая версия останавливалась на 4K. Появились PDF и текстовые форматы - txt, md, csv, json, - так что понять, то ли скачалось, теперь можно вообще без другой программы.
Чем оно качает
Плагины - из чего собран продукт
РеализованоРаньше программа была монолитом: браузер, разбор страниц и загрузка жили внутри одного файла, и новый способ качать означал новый выпуск целиком. Теперь работой с источником занимается плагин - отдельная программа со своей средой исполнения и своими зависимостями, вплоть до собственного браузера. В поставке их пока четыре: Video Downloader, Gallery Downloader, собственный краулер и плагин для прямой ссылки. Вставили адрес - они отвечают, кто из них с ним справится, и проект достаётся ответившему. Каждый добавляется, обновляется и убирается отдельно от остальных, а падение одного плагина остаётся падением плагина и не тянет за собой всю программу.
Плагин Video Downloader в поставке
РеализованоVideo Downloader знает больше девятисот площадок. Забирает ролик в лучшем доступном качестве, вместе со звуком, субтитрами и главами; берёт плейлисты и каналы целиком; трансляцию пишет с её начала, а не с того места, где вы подключились. Качество выбирается списком, а папку назначения и журнал ведёт приложение.
Плагин Gallery Downloader в поставке
РеализованоGallery Downloader - то же самое для картинок: почти три сотни сайтов, где важна не страница, а автор, альбом, тег или подборка. Он проходит постраничную навигацию до конца и умеет войти так же, как входите вы - паролем, куками из вашего браузера или через OAuth, - то есть видит то же, что видите вы. Файлы при этом раскладываются по правилам именования, а не сваливаются в кучу.
Собственный краулер и рецепты, которые им управляют
РеализованоПлагин, написанный нами, - для всего, что не покрывают два движка выше: он обходит сайт сам - галерею, профиль, борд, ветку форума, страницу поисковой выдачи - и забирает то, что нашёл. Что именно искать на конкретной площадке, описано рецептом: небольшой файл рядом с плагином, а не код внутри программы. Рецепты есть для 500px, Bing Images, Flickr, Google Images, IMDb, Reddit и других, а ещё общие - на ветку форума, галерею, отдельную страницу и обход сайта целиком.
Визуальный редактор рецептов
ЧастичноОкно, в котором программу учат новому сайту: рецепт под нужную площадку собирается прямо на живой странице - слева дерево того, что рецепт извлекает, справа сама страница, нужный элемент выбирается мышью. Указание мышью заменяет знание вёрстки, поэтому завести рецепт может и человек без всякого опыта в разметке. Тем же окном чинят и готовый рецепт, когда площадка сменила вёрстку. Пока дописывается - часть уже работает, часть ещё строится, и приложение предупреждает об этом заранее.
Прямые ссылки и fusker-диапазоны
РеализованоАдрес, ведущий прямо на файл, качается без разбора страницы. Сюда же диапазон вида photo[1-50].jpg - тот самый fusker из пятой версии: один шаблон разворачивается в полсотни адресов.
Открытый исходный код плагинов
РеализованоКод, который обслуживает сайт, лежит в папке установки обычным текстом на Python и читается как есть: откройте и посмотрите, как именно обходится площадка, поправьте под себя или возьмите за основу своего. Возможным это делает решение оставить плагины нескомпилированными, и принято оно ровно ради этого.
Свои плагины и свои рецепты - для разработчиков
В планахПлагин - это отдельный процесс на Python, а не класс внутри нашего кода, и SDK лежит под MIT именно затем, чтобы чужой плагин имел право с ним линковаться. Рецепт под конкретный сайт собирается в редакторе из селекторов, а там, где селекторов не хватает, - обработчиком на Python или JavaScript.
Как этим пользуются дальше
Повторный прогон берёт только новое
РеализованоЕсли запустить проект второй раз, он скачает только недостающие файлы, а не всё заново: что уже загружено, помнится пофайлово и повторно не тянется. В пятой версии это называлось smart update. Здесь это просто то, как ведёт себя прогон, и включать отдельно нечего.
Windows и macOS
РеализованоПрежние версии работали только под Windows - под неё они и были написаны. Шестая относится к операционной системе как к детали: сборки под Windows и macOS готовы, подписаны и лежат на странице загрузки.
Linux
В планахСледующая на очереди. Ядро уже кроссплатформенное, так что остаётся упаковать сборку под Linux.
Управление со смартфона или другого компьютера
В планахК запущенной копии можно будет обратиться извне - и выглядеть она будет точно так же, как на своём компьютере. Управлять загрузками с телефона или ноутбука в другой комнате, смотреть, как они идут, и листать уже скачанное: картинки, видео, звук, документы.
Полный HTTP-API
ЧастичноПрограммой можно управлять из своего скрипта: создать проект, запустить его и забрать результат - всё это обычные запросы к ядру. Тем же API пользуется и сам интерфейс, поэтому снаружи доступно ровно то же, что и ему. А само ядро можно запустить вообще без окна - например, на сервере.
Рецепты, которые приезжают сами
В планахРади этого рецепты и отделены от программы: сломался сайт - к вам приезжает файл, а не новая версия. Сегодня сломавшийся рецепт можно починить у себя, но сам он к вам не приедет: канала доставки ещё нет.
Запуск по расписанию
В планахПерезапустить проект по расписанию и забрать только новое - то, что в пятой версии называлось smart update, но без человека у клавиатуры. Ядро сделано так, чтобы работать без интерфейса; планировщик - следующее, что будет написано.
Самообновление
ЧастичноПрограмма замечает, что вышла новая версия, и говорит об этом. Скачать и поставить пока нужно самому.
Чего-то не хватает?
Список выше - то, что есть сегодня, а не то, чем всё кончится. Просьбам мы рады: если вы ждёте возможности, которой пока нет, или нужного вам сайта - напишите нам. Из таких писем и складывается то, что делается дальше, а сайты добавляются быстрее всего.
Ваша лицензия и ваши проекты
Купившим пятую версию ключ отправлен письмом
Покупка пятой версии даёт год бесплатных обновлений, и шестая версия в них входит. Ключ мы выслали отдельным письмом - оформлять ничего не нужно было и покупать заново тоже. Если вы покупали пятую версию, а письма с ключом так и не получили, напишите нам.
Ключ шестой версии регистрирует четвёртую и пятую
Страница активации, к которой обращаются те версии, понимает новый формат ключа и отвечает им действительной регистрацией. Один ключ покрывает три версии - шаг вперёд не снимает регистрацию с того, что уже установлено.
Проекты и настройки не переносятся
Внутреннее устройство шестой версии сильно отличается от пятой. Поэтому перенести настройки и проекты из пятой версии в шестую невозможно: то, что там было одной галочкой, здесь может жить внутри плагина, а не в самой программе. Зато обе версии можно держать одновременно - у каждой свои папки и свои настройки, и друг другу они не мешают. Новые проекты заводите в шестой, старые пусть спокойно докачиваются в пятой.
Что-то не работает?
Напишите нам: адрес страницы, что вы ожидали и что произошло вместо этого. Именно отчёты из реальной работы помогают найти ошибки, которые мы пропустили, и понять, действительно ли удобно то, что мы сделали.