Справочник настроек
Все настройки TorrPlay управляются через единый эндпоинт:
PATCH /api/v1/settingsТело запроса представляет собой объект JSON. Обновляются только переданные поля — поля, не включённые в запрос, сохраняют текущие значения.
Настройки верхнего уровня
| Поле | Тип | Значение по умолчанию | Ограничения | Описание |
|---|---|---|---|---|
enable_dlna | boolean | false | — | Включение встроенного медиасервера DLNA |
enable_downloader | boolean | false | — | Включение фоновой загрузки для торрентов с файловым хранением |
enable_stremio | boolean | false | — | Включение поддержки протокола Stremio — см. раздел Интеграция со Stremio |
cors_allowed_origins | array of strings | [] | валидные URI | Дополнительные веб-источники для доступа к API через CORS (loopback, Tauri и Capacitor всегда доверенные) |
file_storage_path | string | "" | — | Путь в файловой системе для файлового хранения частей торрента |
friendly_name | string | "TorrPlay" | 3–15 символов | Имя DLNA-сервера, транслируемое в локальной сети |
http_server_port | integer | 8090 | 1–65535 | TCP-порт, на котором работает HTTP-сервер |
log_format | string (enum) | "text" | "text" | "json" | Формат вывода журнала — используйте "json" для структурированного логирования при работе с внешними системами агрегации |
log_level | string (enum) | "INFO" | "DEBUG" | "INFO" | "WARN" | "ERROR" | Минимальный уровень важности записей журнала — установите значение "DEBUG" для подробной диагностики |
log_store_size | integer | 100 | 0–1000 | Количество последних записей журнала, хранимых в кольцевом буфере в оперативной памяти; доступны через GET /api/system/logs |
max_memory | integer (байт) | 67108864 (64 MiB) | 33554432–2147483648 (32 MiB – 2 GiB) | Максимальный объём оперативной памяти, выделяемой для кэширования частей торрента |
torrent_trackers | array of strings | [] | — | Пользовательский список трекеров (см. Формат трекеров) |
auth | object | — | — | Настройка аутентификации — см. раздел Аутентификация |
torrent_client | object | — | — | Настройки торрент-клиента — см. раздел Настройки торрент-клиента |
Tip
auth определяет, кто имеет доступ к API. Задайте значения enabled, type (basic или bearer), username и password.
torrent_client определяет поведение торрент-клиента. Доступные параметры включают ограничения скорости, ограничения количества соединений, флаги протокола и настройки DHT/PEX.
Поля только для чтения
При включённой аутентификации GET /api/v1/settings также возвращает два ограниченных токена. Через PATCH их изменить нельзя — сервер игнорирует эти поля в запросе:
| Поле | Описание |
|---|---|
playback_token | Краткосрочный токен только для маршрутов воспроизведения — см. раздел Аутентификация |
stremio_token | Токен для ссылок аддона Stremio; не меняется, пока не изменятся настройки аутентификации — см. раздел Интеграция со Stremio |
Фоновая загрузка
Если включён параметр enable_downloader, TorrPlay автоматически скачивает в фоне торренты с файловым хранилищем. Фоновая загрузка автоматически ставится на паузу, как только начинается стриминг видео, чтобы не забивать интернет-канал, и возобновляется после окончания просмотра. Новые раздачи для загрузки проверяются каждую минуту.
Память для потокового воспроизведения
Подсистема потокового воспроизведения рассчитывает бюджет опережающего чтения из max_memory. При лимите до 64 MiB на него выделяется 50% памяти, а при лимите от 512 MiB — 75%. Этот бюджет делят потоки воспроизведения и предзагрузка, работающие с оперативной памятью, причём подсистема всегда оставляет запас для новых сеансов просмотра. Для файлового хранилища используется окно фиксированного размера.
Формат трекеров
Поле torrent_trackers задаётся массивом строк. Каждый элемент соответствует одному уровню трекеров (tier). Чтобы объединить несколько трекеров в один уровень, перечислите их адреса через запятую в одной строке.
Пример:
[
"udp://explodie.org:6969",
"udp://tracker.opentrackr.org:1337,udp://tracker.leechers-paradise.org:6969"
]В этом примере первый уровень содержит один трекер, а второй — два.
Настройки торрент-клиента
Объект torrent_client определяет поведение BitTorrent-клиента.
| Поле | Тип | Значение по умолчанию | Ограничения | Описание |
|---|---|---|---|---|
disable_dht | boolean | false | — | Отключение обнаружения пиров через DHT |
disable_ipv6 | boolean | true | — | Отключение соединений по IPv6 |
disable_pex | boolean | false | — | Отключение обмена пирами (Peer Exchange, PEX) |
disable_tcp | boolean | false | — | Отключение TCP-соединений |
disable_utp | boolean | false | — | Отключение протокола μTP (Micro Transport Protocol) |
download_rate_limit | integer (байт/с) | 0 | ≥ 0 | Глобальное ограничение скорости загрузки; значение 0 означает отсутствие ограничения |
upload_rate_limit | integer (байт/с) | 0 | ≥ 0 | Глобальное ограничение скорости отдачи; значение 0 означает отсутствие ограничения |
established_conns_per_torrent | integer | 50 | ≥ 10 | Максимальное количество установленных соединений на один торрент |
half_open_conns_per_torrent | integer | 25 | ≥ 5 | Максимальное число полуоткрытых (в процессе установки) соединений на торрент |
total_half_open_conns | integer | 100 | ≥ 10 | Максимальное общее число полуоткрытых соединений по всем торрентам |
torrent_peers_low_water | integer | 50 | ≥ 10 | Минимальное количество пиров перед началом поиска дополнительных пиров |
torrent_peers_high_water | integer | 500 | ≥ 60 | Максимальный размер пула пиров на один торрент |
max_alloc_peer_request_data_per_conn | integer (байт) | 1048576 (1 MiB) | ≥ 262144 | Ограничение буфера данных запросов на соединение для экономии памяти |
prefer_header_obfuscation | boolean | false | — | Запрос обфускации заголовка протокола BitTorrent для исходящих соединений |
seed | boolean | false | — | Продолжение раздачи после полной загрузки торрента |
Пример: обновление нескольких параметров
Этот запрос за один вызов задаёт лимит оперативной памяти, включает фоновую загрузку, переключает логи в формат JSON и настраивает параметры торрент-клиента:
curl -X PATCH http://localhost:8090/api/v1/settings \
-H "Content-Type: application/json" \
-d '{
"max_memory": 134217728,
"enable_downloader": true,
"log_level": "DEBUG",
"log_format": "json",
"log_store_size": 500,
"torrent_trackers": [
"udp://explodie.org:6969",
"udp://tracker.opentrackr.org:1337,udp://tracker.leechers-paradise.org:6969"
],
"torrent_client": {
"download_rate_limit": 10485760,
"upload_rate_limit": 2097152,
"disable_ipv6": true,
"established_conns_per_torrent": 80,
"seed": true
}
}'В случае успешного выполнения запроса сервер возвращает ответ 204 No Content.