Skip to content

Releases: RERCON0/SNATCH

SNATCH 0.6.1 - Windows x64

Choose a tag to compare

@RERCON0 RERCON0 released this 12 Oct 15:29

SNATCH 0.6.1 fixes a direct-download resume bug and updates the interface, networking, hashing and ZIP libraries while preserving existing download state.

Changes since 0.6.0

  • Do not resume another URL's partial file. Direct downloads handled by yt-dlp now use the same target-name lock and URL ownership record as aria2 downloads. A <name>.part file is resumed only when its record belongs to the same URL. An unrelated partial is refused before the downloader starts and is left untouched, with a warning in the GUI. This also covers direct-link retries that fall back from aria2 to yt-dlp; ordinary media-page downloads retain their existing behavior.
  • Preserve existing resume fingerprints. Upgrade SHA-2 from 0.10 to 0.11 with explicit lowercase hexadecimal formatting. Regression tests check known SHA-256 values so previously written ownership records keep the same representation.
  • Respect the Threads proxy. The plugin's auxiliary app-shell request now honors an explicitly configured HTTP(S) proxy. If that request cannot use the selected proxy type, it fails and falls back to the page already fetched by yt-dlp instead of bypassing the proxy.
  • Safe shutdown while minimized. Window-close handling runs even when the GUI is hidden. SNATCH requests cancellation and waits for active download workers before allowing the window to close. A regression test checks the cancellation and close veto.
  • Updated interface: eframe/egui 0.29 → 0.36.2, with lifecycle, panel, font and drag-and-drop API migration. The old ab_glyph/unmaintained ttf-parser font chain is removed.
  • Updated networking: reqwest 0.12 → 0.13.5, with explicit native TLS to retain Windows Schannel and system-proxy support. HTTP/2 remains disabled in the application configuration.
  • Updated archive handling: ZIP 2 → 9.0.2. Tool-package selection handles the new archive-name API and skips undecodable candidate names; existing package/signature tests pass.
  • Builds and maintenance: declare Rust 1.99; explicitly enable the X11 and Wayland backends required by the Linux build; separate interface/network/general Dependabot groups; update the CI artifact uploader and isolate push/security concurrency groups.

Download and update

Download snatch-windows-x64.zip, extract it and run snatch-app.exe for the GUI or snatch.exe for the CLI. This release asset is for Windows x64; Linux is checked in CI but no Linux binary is attached here.

To update, finish or cancel active jobs, close SNATCH and replace the application files. Existing configuration and resume records remain in their existing locations. Keep unrelated .part files until you decide how to handle them; SNATCH deliberately refuses to claim them as its own.

The portable ZIP carries an Ed25519-signed manifest under the existing SNATCH publisher key. This is a package signature, not Authenticode; Windows SmartScreen may still warn. No signing-key rotation is included.

English README · Русский README · Verification instructions · Full comparison

Русский

Главное исправление 0.6.1: yt-dlp больше не продолжает чужой <имя>.part при скачивании прямой ссылки с тем же именем файла. Продолжение разрешается только при совпадении записи владельца с URL загрузки. Чужой частичный файл остаётся на месте, а приложение объясняет отказ. Защита действует и при повторной попытке через yt-dlp после отказа aria2. Формат SHA-256 записей продолжения сохранён при обновлении библиотеки.

Дополнительный запрос плагина Threads теперь учитывает HTTP(S)-прокси; неподдерживаемый тип прокси не приводит к прямому запросу в обход него. Закрытие свёрнутого окна отменяет задания и ждёт остановки воркеров.

Обновлены eframe/egui до 0.36.2, reqwest до 0.13.5, SHA-2 до 0.11 и ZIP до 9.0.2. Сохранены Windows Schannel и системные прокси, убрано предупреждение неподдерживаемого ttf-parser. Исправлена Linux-сборка с явным включением X11/Wayland; опубликованный ZIP предназначен для Windows x64.

Для обновления завершите или отмените загрузки, закройте SNATCH и замените файлы программы. Настройки и записи продолжения сохраняются. Архив подписан прежним ключом Ed25519; это не Authenticode и не отмена предупреждения SmartScreen.

Verification and source

  • 261 Rust tests passed (2 intentionally ignored); formatting and Clippy with -D warnings passed on the release commit.
  • CI and Security both passed for that exact commit. RustSec reported no known dependency vulnerabilities or informational warnings at the release check date, 12 October 2026.
  • Fresh native Windows MSVC x64 build; the signed archive passes the project's signature, payload-hash and PE checks. The existing publisher key is retained.
  • Source: bdc796d.
  • Publisher public-key SHA-256 (Ed25519 SPKI DER): 22f55367a7a9bf635237c2da1e50e4c89338733d7fea5ab616615d75fc620afc.

Verify with the script and trusted key from the official checkout, without extracting or running the ZIP:

python -B scripts/release.py verify .\snatch-windows-x64.zip

SHA-256 of snatch-windows-x64.zip (also attached as snatch-windows-x64.zip.sha256):

703f79b6d8fa74129685a17d77a42334d9c0ded729b8e0224872f0e7648e24e9

SNATCH 0.6.0 — Windows x64

Choose a tag to compare

@RERCON0 RERCON0 released this 11 Oct 21:01

SNATCH stays lightweight: a portable Windows downloader with a native GUI, an interactive CLI and automatic engine selection.

  • Threads and Instagram CDN support: a bundled yt-dlp extractor plugin downloads Threads posts and share links, and instagram/cdninstagram/fbcdn/facebook/threads hosts are routed through yt-dlp on Windows, where aria2's TLS stack cannot handshake with them. Direct links are saved under the name from the response headers.
  • Automatic retry when aria2 is turned away: if a host refuses aria2 (TLS failure or a raw 403/429 that yt-dlp does not get), the link is retried once with yt-dlp and that host is remembered for the rest of the run; whatever the refused attempt left behind is cleared first, so a half-download can never be taken for finished.
  • Typed engines and a modular tree: the string-typed engine/format pairs became Engine and Format enums (the command-line identifiers are unchanged), and the large engines.rs / snatch-app.rs / snatch-cli.rs files were split into modules with their tests.
  • Audit hardening: download and browse folders that are symlinks or junctions to a UNC share are rejected; $VAR and ~ expansions in link-supplied names can no longer place files outside the download folder; secrets in URL fragments and signed-link keys are dropped before a link is remembered; the installer marker now records the executable's SHA-256 so "update" repairs a damaged tool; finished direct downloads are stamped with Mark-of-the-Web.

Download snatch-windows-x64.zip, extract it and run snatch-app.exe for the GUI or snatch.exe for the CLI. The application downloads yt-dlp, aria2c, ffmpeg and Deno separately when needed.

The ZIP includes an Ed25519-signed manifest covering its files and their SHA-256 hashes. This is separate from Windows Authenticode: SmartScreen may still warn. See the README and release verification instructions.

SNATCH 0.5.6 — Windows x64

Choose a tag to compare

@RERCON0 RERCON0 released this 11 Oct 11:54

SNATCH stays lightweight: a portable Windows downloader with a native GUI, an interactive CLI and automatic engine selection.

  • Subtitles-only downloads: the new subs format in the CLI (also an entry in the interactive format list) and in the GUI downloads just the subtitles, converted to .srt — the video itself is never downloaded. Languages come from --sub-langs (default ru,en).
  • Honest results: when a video has none of the requested subtitles, the job now fails with a clear message instead of reporting success with an empty folder.
  • HTTP 429 means "try cookies": after rate limiting the interactive CLI offers a retry and lets you pick the browser to read cookies from; -y prints a tip; the GUI retry button mentions rate limits too.
  • Audit hardening: aria2 links without a file name in their path get a pinned deterministic target; the cookie hint no longer fires on hint-like words inside downloaded titles; invisible bidi characters are stripped from loader output; .torrent fetches refuse HTTPS-to-HTTP redirects; the GUI redraws less and allocates less per line.

Download snatch-windows-x64.zip, extract it and run snatch-app.exe for the GUI or snatch.exe for the CLI. The application downloads yt-dlp, aria2c, ffmpeg and Deno separately when needed.

The ZIP includes an Ed25519-signed manifest covering its files and their SHA-256 hashes. This is separate from Windows Authenticode: SmartScreen may still warn. See the README and release verification instructions.


SNATCH 0.5.5 — Windows x64

Choose a tag to compare

@RERCON0 RERCON0 released this 07 Oct 09:18

SNATCH stays lightweight: a portable Windows downloader with a native GUI, an interactive CLI and automatic engine selection.

  • English and Russian interfaces, with a compact language switch next to the GUI theme button and snatch --lang en|ru in the CLI. The preference is shared and saved safely.
  • Audio downloads embed the source thumbnail and available tags. MP3, M4A and Opus are supported; original AAC/Opus audio is preserved without re-encoding. Requires ffmpeg from the built-in tool installer.
  • Torrent titles come from metadata or the magnet display name. Progress summaries no longer replace them with Desktop or a nested folder.
  • Refreshed English and Russian documentation, two GUI themes shown side by side and a CLI demo GIF.
  • Language and torrent regression tests, audio artwork checks and an installation check on a clean Windows profile.

Download snatch-windows-x64.zip, extract it and run snatch-app.exe for the GUI or snatch.exe for the CLI. The application downloads yt-dlp, aria2c, ffmpeg and Deno separately when needed.

The ZIP includes an Ed25519-signed manifest covering its files and their SHA-256 hashes. This is separate from Windows Authenticode: SmartScreen may still warn. See the README and release verification instructions.


SNATCH остаётся лёгким портативным загрузчиком для Windows: нативный GUI, интерактивный CLI и автоматический выбор движка.

  • Английский и русский интерфейсы. Компактная кнопка языка рядом с темой в GUI и snatch --lang en|ru в CLI; выбор сохраняется в общих настройках.
  • Аудио скачивается с превью и доступными тегами из источника. Поддерживаются MP3, M4A и Opus; исходные AAC/Opus сохраняются без перекодирования. Нужен ffmpeg из встроенного установщика инструментов.
  • Название торрента берётся из метаданных или magnet. Сводки прогресса больше не заменяют его на Desktop или вложенную папку.
  • Обновлённые README на двух языках, два скриншота GUI рядом и GIF с быстрым скачиванием в CLI.
  • Проверены языки, названия торрентов, встраивание обложек и установка инструментов на чистом профиле Windows.

Распакуйте snatch-windows-x64.zip и запустите snatch-app.exe для GUI или snatch.exe для CLI. Инструменты yt-dlp, aria2c, ffmpeg и Deno устанавливаются отдельно по необходимости.

В ZIP есть манифест с подписью Ed25519 и SHA-256 файлов. Это отдельная проверка целостности, не Windows Authenticode: SmartScreen может показать предупреждение. Инструкции — в русском README и RELEASING.md.

SNATCH 0.5.4

Choose a tag to compare

@RERCON0 RERCON0 released this 06 Oct 20:58

Улучшена установка внешних инструментов и уточнена документация.

  • После скачивания GUI и CLI показывают отдельные стадии: проверка контрольной суммы, распаковка и установка. Полностью скачанный архив больше не выглядит как зависшая установка на 100%.
  • В README возвращено главное преимущество SNATCH — лёгкость, без привязки к весу конкретного EXE.
  • Добавлена инструкция для предупреждения Windows SmartScreen и пояснение, что Ed25519-подпись ZIP не является Authenticode-подписью EXE.
  • Бейдж Dependency watch убран из шапки; сама проверка обновлений сохранена для сопровождения проекта.

Установка snatch --install-tools проверена на чистых профилях для опубликованной 0.5.3 и этой 0.5.4: yt-dlp, aria2, ffmpeg/ffprobe и Deno устанавливаются и запускаются. Текущий редирект ffmpeg остаётся на gyan.dev; строгая проверка источника сохранена.

ZIP подписан Ed25519 и проверен доверенным ключом репозитория. EXE пока не имеют Authenticode-подписи: SmartScreen может показать предупреждение при первом запуске.

Исходный коммит: b9c8f48a19ffec11e12cf9535257d0533f7ed00b.

SHA-256 snatch-windows-x64.zip:
766ca711be45caecab946437d3baad631f949df3d1a49f032f08e69675433d4f.

SNATCH 0.5.3 - Windows x64

Choose a tag to compare

@RERCON0 RERCON0 released this 06 Oct 16:00

SNATCH 0.5.3 — исправления выбора папки, тёмной темы и новый процесс проверенного выпуска.

Что изменилось

  • В CLI можно выбрать другой диск прямо в меню папок: C:, D: и другие подключённые диски. На корне диска больше нет пустого перехода «Наверх».
  • Полосы прокрутки GUI стали темнее; наведение и перетаскивание остаются заметными. Цвета текста и остальных элементов сохраняются.
  • README получил оформление с логотипом, динамическими шильдиками, навигацией и блоками NOTE/TIP/IMPORTANT/CAUTION. Справка CLI и подробности безопасности вынесены в отдельные документы.
  • Добавлены CI для Windows/Linux, ежедневный RustSec-аудит, проверка всей Git-истории на секреты и мониторинг закреплённых версий. Actions закреплены SHA, инструменты проверяются по SHA-256.
  • Установщик не следует перенаправлениям на HTTP и посторонние хосты; для метаданных и контрольных сумм действует отдельный таймаут. Обновлены зависимости и закреплён Rust 1.99.0.

Подписанный пакет

Скачайте snatch-windows-x64.zip. Внутри — CLI, GUI, лицензии, манифест сборки и подпись Ed25519. Манифест содержит размеры и SHA-256 файлов, точный commit/tree, сведения о Cargo.lock и компиляторе. Пакет собран из чистого checkout и проверен перед публикацией.

Из доверенного checkout SNATCH:

python scripts/release.py verify C:\Downloads\snatch-windows-x64.zip

Проверке нужны Python 3.13+ и OpenSSL 3 (есть в Git for Windows). Доверенный ключ берите из репозитория: ключ внутри ZIP сам по себе не устанавливает доверие. Это подпись пакета; Authenticode-подпись EXE не заявляется.

Отпечаток публичного ключа SHA-256 (DER SubjectPublicKeyInfo):

22f55367a7a9bf635237c2da1e50e4c89338733d7fea5ab616615d75fc620afc

SHA-256 архива:

90022bba7e1d355553a3b9b4c24488d9271c09b132ff8be99163f2fe6d44709e

Исходный commit a0012c9 · CI: passed · Security: passed · Инструкция проверки

Известных RustSec-уязвимостей не найдено. Информационное предупреждение о неподдерживаемом ttf-parser не скрывается и описано в SECURITY.md.

SNATCH 0.5.2 — Windows x64

Choose a tag to compare

@RERCON0 RERCON0 released this 04 Oct 13:26

Готовые сборки для Windows x64 — установка не нужна, просто распакуйте ZIP.

Внутри:

  • snatch-app.exe — GUI (окно, двойной клик)
  • snatch.exe — CLI (терминал)

Быстрая проверка:

snatch.exe --version
→ snatch 0.5.2 — by rercon prod.

Что нового в 0.5.2:

  • Защита от чужого файла докачки теперь видит percent-кодированные имена:
    aria2 сохраняет My%20File.zip как «My File.zip», SNATCH повторяет его
    правила и принудительно задаёт имя через -o — метки докачки, блокировки
    и файл на диске всегда совпадают, чужую пару не продолжит
  • Больше форматов: 2160p, 1440p, 1080p, 720p, 480p, а также аудио без
    перекодирования — исходное m4a/opus (audio-src)
  • Субтитры (--subs, --sub-langs ru,en), скачивание плейлистов
    целиком
    (--playlist) и произвольные аргументы движков
    (--yt-dlp-args, --aria2-args) — в CLI и в GUI («опции» и
    «доп. аргументы»)
  • Автоустановка ставит теперь и ffmpeg (склейка видео+звук, mp3),
    и Deno (JS-рантайм для YouTube) — с проверкой контрольных сумм;
    yt-dlp находит их автоматически
  • Живой прогресс установки в GUI: видно, какой компонент качается
    (yt-dlp, aria2c, ffmpeg, Deno), сколько уже скачано и сколько всего —
    вместо одного крутящегося спиннера
  • Учётные данные из ссылок (https://user:token@…) больше не попадают
    в историю config.json
  • Окно GUI чуть выше — новые опции помещаются без прокрутки
  • Финальные штрихи по аудиту: апострофы внутри кавычек в --yt-dlp-args/
    --aria2-args больше не ломают разбор; --aria2-args ограничен белым
    списком (лимиты, прокси, заголовки, таймауты, повторы) — значения можно
    писать через = или пробелом (--max-tries 3, -x 16), а сменить имя,
    папку, режим докачки, конфиг или входные файлы нельзя, включая сокращения
    флагов; чистка user:token@ работает и для ссылок без пути

SNATCH 0.5.1 — Windows x64

Choose a tag to compare

@RERCON0 RERCON0 released this 04 Oct 08:59

В SNATCH 0.5.1 графическая и терминальная версии получили разные белые
иконки: сложенная лента S для GUI и орбитальный знак для CLI.

Готовая сборка для Windows x64. Распакуйте ZIP и запустите нужную версию:

  • snatch-app.exe — графическое приложение.
  • snatch.exe — версия для терминала.

Иконки встроены в EXE в 10 размерах от 16 до 256 пикселей. Значок окна GUI
совпадает со значком его файла. Все 177 запущенных тестов прошли; иконки
проверены в готовых EXE.

Архив содержит обе программы, README, лицензии и SHA-256 файлов. Рядом с ZIP
опубликована его контрольная сумма. Дополнительный Visual C++ Redistributable
не требуется: CRT статически встроен.

SNATCH 0.5.0 — Windows x64

Choose a tag to compare

@RERCON0 RERCON0 released this 03 Oct 18:09

Готовые сборки для Windows x64 — установка не нужна, просто распакуйте ZIP.

Внутри:

  • snatch-app.exe — GUI (окно, двойной клик)
  • snatch.exe — CLI (терминал)

Никаких DLL и Visual C++ Redistributable не требуется: всё встроено в exe
(статический CRT, шрифт, значок).

Быстрая проверка:

snatch.exe --version
→ snatch 0.5.0 — by rercon prod.

Загрузчики (yt-dlp / aria2c) умеют ставиться сами: кнопка «установить
загрузчики» в GUI или snatch.exe --install-tools (SHA-512 для yt-dlp,
SHA-256 для архива aria2; оборванная загрузка автоматически докачивается).

Если GUI не открывает окно на виртуальной машине или в RDP-сеансе —
включите 3D-ускорение (нужен OpenGL 2.0+); программа покажет диалог с
причиной. CLI от графики не зависит и работает всегда.

Что нового в 0.5.0:

  • Выбор файлов торрента до старта загрузки: в CLI — интерактивный
    список с деревом папок, в GUI — модальное окно с чекбоксами; качаются
    только отмеченные файлы, выбор переживает паузу и очередь
  • magnet-ссылки и http(s)-ссылки на .torrent: метаданные добываются
    заранее, список файлов и сама загрузка используют один и тот же .torrent
  • Для aria2 выбор превращается в компактные диапазоны --select-file
    (тысячи разрозненных файлов не упираются в лимит длины командной строки)
  • Очередь в GUI: до трёх загрузок одновременно, остальные ждут своей
    очереди и стартуют автоматически
  • Упрочнение по мотивам аудита: лимиты на метаданные и дерево торрента,
    отменяемые HTTP-чтения, строгий разбор вывода aria2 и прогресса,
    защита списка файлов от подмены через поле Comment, NTFS-регистр в
    метках докачки и UNC/\??\-пути, nonblocking-открытие FIFO на
    Linux/macOS, дерево процессов загрузчиков в Job Object

SNATCH 0.4.2 — Windows x64

Choose a tag to compare

@RERCON0 RERCON0 released this 27 Sep 18:42

Готовые сборки для Windows x64 — установка не нужна, просто распакуйте ZIP.

Внутри:

  • snatch-app.exe — GUI (окно, двойной клик)
  • snatch.exe — CLI (терминал)

Никаких DLL и Visual C++ Redistributable не требуется: всё встроено в exe
(статический CRT, шрифт, значок).

Быстрая проверка:

snatch.exe --version
→ snatch 0.4.2 — by rercon prod.

Загрузчики (yt-dlp / aria2c) умеют ставиться сами: кнопка «установить
загрузчики» в GUI или snatch.exe --install-tools (SHA-512 для yt-dlp,
SHA-256 для архива aria2; оборванная загрузка автоматически докачивается).

Если GUI не открывает окно на виртуальной машине или в RDP-сеансе —
включите 3D-ускорение (нужен OpenGL 2.0+); программа покажет диалог с
причиной. CLI от графики не зависит и работает всегда.

Что нового в 0.4.2 (по мотивам очередного offensive-аудита):

  • aria2: докачка привязана к источнику по отпечатку — продолжается только
    своя загрузка, совпадающая по URL, файлу состояния .aria2 и метке
    SNATCH; повторный запуск HTTP/FTP с той же ссылкой возобновляет файл
  • aria2: чужой паре «файл + .aria2» (например, оставшейся от другой
    программы) запуск теперь отказывает — раньше aria2 мог автоматически
    продолжить чужой файл и молча смешать данные двух разных загрузок
  • GUI: задача завершается и освобождается только после полной остановки
    всей цепочки процессов загрузчика
  • GUI: текст в полях ввода отцентрован по вертикали (раньше сидел чуть ниже)