Больше сидов
Пользователи начинают раздавать то, что уже было скачано, но отвязано от трекера. На старые раздачи мгновенно появляются новые сиды.
ReSeeder API — серверная утилита на Python, которая индексирует .torrent файлы трекера и отдаёт пользователям готовые раздачи по сигнатурам их медиатеки. Пользователь подключает свои файлы — получает торренты без ручного поиска по сайту. Поддерживаются два уровня интеграции: выгрузка архива личной истории юзера и полноценный match API.
Матч между тем, что у пользователя уже лежит на диске, и тем, что раздаётся на трекере. Никаких файлов на сервер не отправляется — только сигнатуры.
Пользователи начинают раздавать то, что уже было скачано, но отвязано от трекера. На старые раздачи мгновенно появляются новые сиды.
Клиент отправляет только имена, размеры и SHA1 по первым 32 МБ файлов. Сами файлы никогда не покидают компьютер пользователя.
FastAPI + SQLite в WAL-режиме. Держит сотни тысяч торрентов на любом дешёвом VPS. Авто-бэкап с ротацией включён.
Четыре HTTP-эндпоинта, JSON-протокол. Авторизация и rate-limit — на стороне трекера (через reverse-proxy или свой middleware).
Трекеру не обязательно сразу разворачивать полноценный match API. Можно начать с «лайт» — отдавать пользователю архив его личной истории скачиваний, а матч выполнять на стороне клиента.
Для трекера: один авторизованный эндпоинт, отдающий архив с .torrent файлами только тех раздач, которые скачал конкретный пользователь. У большинства трекеров эти данные уже есть — страница «мои скачивания» в профиле. Ни БД, ни индексирования, ни фонового сервиса.
Для пользователя: клиент ReSeeder авторизуется одним из поддерживаемых трекером способов (пасскей, логин/пароль или API-ключ), скачивает свой персональный архив и выполняет матч с медиатекой локально. Архив маленький (десятки/сотни торрентов, а не миллионы), приватный, матч гарантированно по «своим» раздачам.
Для трекера: развернуть FastAPI-утилиту (описание ниже). Индексация, БД, четыре HTTP-эндпоинта, авторизация через reverse-proxy.
Для пользователя: клиент отправляет только сигнатуры (имя, размер, SHA1 по первым 32 МБ), сервер отвечает готовыми .torrent. Матч шире личной истории — ловит и раздачи, которые юзер скачивал не с этого трекера.
Оба варианта описываются в trackers.json через секции archive и match. Трекер может поддерживать только одну из них, обе или ни одной. Кнопки в UI всегда на месте — при клике по неподдерживаемой возможности клиент просто сообщает в лог, что функционал для этого трекера не реализован.
Клиент ReSeeder вызывает эндпоинты последовательно. Каждый шаг независим и идемпотентен.
POST /match/handshake — рукопожатиеКлиент получает параметры утилиты: минимальный размер файла, лимиты на запрос/ответ. Сразу знает, сколько файлов можно отправить за раз и какие фильтры применить локально.
POST /match/phase1 — матч по имени + размеруКлиент отправляет список файлов с именами и размерами. Сервер возвращает найденные .torrent в base64 с метаданными. Это быстрый путь для файлов с оригинальными именами.
POST /match/phase2 — матч только по размеруФайлы, не найденные в фазе 1 (например, переименованные), отправляются без имени. Совпадения проверяются клиентом по SHA1 кусков — сервер отдаёт все торренты с подходящим размером, клиент сам выбирает нужный.
POST /match/report — отчёт (опционально)Клиент отправляет результат матча — что было успешно подтверждено. Сервер логирует для статистики (ретеншн, популярные раздачи). Не влияет на работу клиента.
Подробная инструкция по установке, CLI, HTTP-эндпоинтам, настройкам, бэкапу, развёртыванию через systemd + nginx и troubleshooting — на отдельной странице. Это единый источник правды по утилите, обновляется по мере развития.
FastAPI + SQLite, CLI и опциональный Tkinter GUI (5 вкладок: сканирование, статистика, настройки, бэкап, тестирование API). MIT-лицензия, используйте и модифицируйте свободно.
Нужна помощь с развёртыванием на вашем трекере или хотите попасть в дефолтный список поддерживаемых — напишите.
Готов помочь с интеграцией, написать middleware под авторизацию вашего трекера или добавить поддержку нестандартных схем .torrent-хранилища.