Перейти к содержимому
Возможности

Возможности

TorrPlay создан для быстрого и плавного воспроизведения торрентов: с умным кэшированием в оперативной памяти, интеграцией с медиаплеерами и мониторингом.

Потоковая передача по HTTP

Воспроизводите видео и открывайте файлы напрямую из торрента без ожидания полной загрузки. Адрес потока:

/api/v1/stream/{hash}?path={url_encoded_path}

Если в TorrPlay включена аутентификация, укажите токен воспроизведения в параметре запроса token:

/api/v1/stream/{hash}?path={url_encoded_path}&token={playback_token}

Подробнее о токенах читайте в руководстве по Аутентификации.

Предзагрузка и буферизация

Потоки воспроизведения и предзагрузка работают в общей подсистеме потокового воспроизведения. Она распределяет приоритеты частей торрента и память для опережающего чтения так, чтобы активное воспроизведение получало ресурсы первым, а уже загруженные данные не пропадали:

  • Адаптивное опережающее чтение: TorrPlay рассчитывает общий бюджет из max_memory (см. Память для потокового воспроизведения). Активные потоки чтения при хранении в памяти делят этот бюджет между собой.
  • Плавное увеличение опережающего чтения: для нового потока или чтения после перемотки TorrPlay задаёт окно по меньшему из двух значений: выделенной доле бюджета или начальному пределу. Предел составляет не менее 1 MiB, округляется вверх до целого числа частей торрента и по мере просмотра растёт до выделенной потоку доли. Благодаря этому TorrPlay не загружает лишние данные сразу после заголовка контейнера, если плеер затем переходит к медиаданным.
  • Приоритет воспроизведения: ближайшие к текущей позиции части загружаются раньше данных предзагрузки. После завершения HTTP-запроса поток чтения остаётся открытым до 30 секунд, чтобы продолжить загрузку перед следующим диапазонным запросом плеера.
  • Предзагрузка позиции продолжения: подсистема кэширует начало и конец файла, а при передаче playback_position_seconds — ещё и диапазон возле сохранённой позиции после разбора индекса контейнера.
  • Ограничение параллелизма: для каждого торрента хранится не более одной предзагрузки, одновременно скачиваются не более двух. Остальные ожидают со статусом queued.
  • API предзагрузки (PUT /api/v1/torrents/{hash}/preload): запускает или заменяет предзагрузку выбранного файла и необязательной позиции продолжения.
  • Мониторинг буфера (GET /api/v1/torrents/{hash}/preload): возвращает целевой и загруженный объём, прогресс, число пиров, скорость и статус idle, queued, preloading, ready, failed или evicted.
  • Индикация в интерфейсе: карточки торрентов в веб-панели TorrPlay показывают анимированный прогресс буферизации.
  • Защита от вытеснения: диапазоны активного воспроизведения и данные предзагрузки защищены от обычного вытеснения LRU. Если память исчерпана и освободить её иначе нельзя, TorrPlay может вытеснить и защищённые части.
  • Короткое хранение готового буфера: если воспроизведение не началось, готовая предзагрузка хранится 10 секунд. После использования TorrPlay освобождает её, когда закроется последний поток чтения файла, включая оставленный открытым в ожидании следующего запроса.

Веб-клиент и видеоплеер

Встроенный плеер позволяет смотреть любые видео в браузере:

  • Переключение звуковых дорожек: плеер сам находит все аудиодорожки в файле. Кодеки без встроенной поддержки в браузерах (AC-3, E-AC-3, DTS) декодируются на лету через WASM и выводятся через Web Audio API.
  • Встроенные и внешние субтитры: субтитры извлекаются из контейнеров Matroska (.mkv) и WebM через диапазонные запросы без полного скачивания файла. Также можно загружать внешние файлы субтитров.
  • Навигация по раздаче: переключайте серии и файлы в панели управления плеером.
  • Уведомления об обновлениях: плеер сообщает о выходе новых релизов TorrPlay на GitHub, показывает список изменений и ссылку на скачивание.

Интеграция со Stremio

TorrPlay содержит встроенную реализацию протокола Stremio Addon Protocol v3. Библиотека торрентов TorrPlay подключается к Stremio на ПК, Android TV и телефонах с автоматическим разделением на фильмы и сериалы.

Подробнее см. в руководстве по Интеграции со Stremio.

Поддержка Model Context Protocol (MCP)

В TorrPlay встроен сервер MCP (torrplay mcp), с помощью которого ИИ-ассистенты (Claude Desktop, Cursor и другие агенты) могут управлять библиотекой раздач, следить за оперативной памятью и создавать ссылки на видео.

Подробнее см. в руководстве по Model Context Protocol (MCP).

Медиасервер DLNA / UPnP

Встроенный медиасервер DLNA с автоматической категоризацией, пагинацией и поддержкой событий GENA позволяет смарт-телевизорам (LG webOS, Samsung Tizen, Sony Bravia), игровым приставкам и медиаплеерам в локальной сети находить TorrPlay и воспроизводить активные раздачи.

Подробнее см. в руководстве по DLNA / UPnP.

Бэкенды хранения

TorrPlay поддерживает два режима хранения данных:

Части торрента загружаются и кэшируются в оперативной памяти до достижения настраиваемого лимита (max_memory). При заполнении лимита алгоритм LRU сначала вытесняет незащищённые части, затем границы файлов и лишь в крайнем случае — диапазоны активного воспроизведения или предзагрузки.

Преимущества:

  • Максимальная скорость работы
  • Отсутствие износа накопителя
  • Оптимально для онлайн-просмотра

Недостатки:

  • Эфемерность (данные удаляются при перезапуске)
  • Ограничение объёмом доступной оперативной памяти

Note

Примечание для пользователей Windows: на платформе Windows TorrPlay не удаляет файлы торрентов с диска автоматически при удалении раздачи или смене типа хранилища. Может потребоваться ручная очистка.

Фоновый загрузчик

Если включён параметр enable_downloader: true, TorrPlay автоматически скачивает в фоне раздачи с файловым хранилищем. Загрузка сама ставится на паузу, когда кто-то запускает воспроизведение, чтобы не забивать канал, и возобновляется после окончания просмотра.

Метрики Prometheus и мониторинг

Полный набор метрик Prometheus доступен по адресу /metrics, а /api/system/metrics возвращает краткую сводку активности в JSON. Метрики позволяют отслеживать фоновые загрузки (torrplay_downloading_torrents), торренты с открытыми сеансами просмотра (torrplay_streaming_torrents), обрабатываемые запросы потокового воспроизведения (torrplay_stream_requests_in_flight), задержки запросов и состояние среды Go.

Подробнее см. в руководстве по Метрикам и мониторингу.

Обновление метаданных

TorrPlay умеет автоматически обновлять метаданные раздач (постеры, названия, категории) из базы TheTVDB:

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

ФлагОписаниеПо умолчанию
--backup <path>Входной файл резервной копииtorrplay.backup
--output <path>Путь к выходному файлуtorrplay.backup
--categoryВключить обновление категорийОтключено
--posterВключить загрузку постеровОтключено
--titleВключить обновление названийОтключено
--language <lang>Код языка метаданных (например eng)—
--provider <provider>Поставщик метаданных (tvdb)—
--api-key <key>API-ключ сервиса—

Пример использования

./torrplay --backup torrplay.backup --poster --title --provider tvdb --api-key YOUR_API_KEY

Совместимость с TorrServer и qBittorrent

  • TorrServer: поддержка вызовов API (/torrents, /stream, /play, /cache, /viewed) для работы со сторонними клиентами (Kodi, VLC, TorrServe).
  • qBittorrent: эмуляция /api/v2/torrents/add для интеграции с сервисами автоматизации Prowlarr, Sonarr и Radarr.

Приложения для ПК и мобильных платформ

Базовая логика оформлена в виде библиотеки Go (pkg/torrplay), которая компилируется для мобильных устройств с помощью gomobile и Capacitor. Также доступны нативные приложения для ПК на базе Tauri под Windows, macOS и Linux.

Последнее обновление