Как просматривать медиа с торрентов?

В статье показываю как использовать набор общедоступных технологий, а использовать их или нет и в каком порядке пусть решает каждый для себя самостоятельно.

Будем рассматривать вопрос просмотра торрентов, при этом мы не будем скачивать их полностью на сервер.

.torrent - файл метаданных с расширением .torrent является словарём в bencode-формате — используется в p2p-сети BitTorrent и содержит информацию о файлах, трекерах и др

wikipedia.org

docker-compose

  1. Создаем папки для хранения данных:

# Создаем папки для хранения данных
mkdir ./torrserver
mkdir ./torrserver/config_torrserver
# Переходим в torrserver и создаем пустой файл docker-compose.yml
cd ./torrserver && touch docker-compose.yml
  1. Редактируем docker-compose.yml через nano docker-compose.yml и вставляем данные:

services:
  torrserver:
    image: ghcr.io/yourok/torrserver
    container_name: torrserver
    network_mode: host
    environment:
        - TS_PORT=5665
        - TS_DONTKILL=1
        - TS_HTTPAUTH=0
        - TS_CONF_PATH=/opt/ts/config
        - TS_TORR_DIR=/opt/ts/torrents
    volumes:
        - './config_torrserver/CACHE:/opt/ts/torrents'
        - './config_torrserver/CONFIG:/opt/ts/config'
    restart: unless-stopped
  1. Запускаем docker: docker-compose up -d

  2. Переходим по пути http://<ip>:5665. Внутренний IP можно посмотреть через: hostname -I. При желании можно сделать сервис доступным из интернета.

Если необходима авторизация, то в docker-compose.yml изменяем переменную TS_HTTPAUTH:

 environment:
        - TS_HTTPAUTH=1

Также создаем файл touch ./config_torrserver/CONFIG/accs.db и в нем добавляем данные для авторизации (nano ./config_torrserver/CONFIG/accs.db) :

{
    "user": "password"
}

Теперь в UI мы можем заходить с помощью Basic authentication.

Работа с торрентами

В интерфейсе можно добавлять торрент или делать это автоматически через связанные сервисы. Также можем увидеть и контролировать отдельные детальные настройки работы сервиса: размер кеша, размер предзагрузки и т.д. В локальной сети можно увидеть устройства с DLNA и просматривать медиа как будто они уже загружены локально. Пример из VLC:

DLNA (англ. Digital Living Network Alliance) — набор стандартов, позволяющих совместимым устройствам передавать и принимать по домашней сети различный медиаконтент (изображения, музыку, видео), а также отображать его в режиме реального времени. То есть — технология для соединения домашних компьютеров, мобильных телефонов, ноутбуков и бытовой электроники в единую цифровую сеть. Устройства, которые поддерживают спецификацию DLNA, по желанию пользователя могут настраиваться и объединяться в сеть в автоматическом режиме.

wikipedia.org

Локальная установка на отдельные устройства

  1. Для Android устанавливаем через F-Droid.

  2. На Arch Linux:

# Устанавливаем torrserver
yay -S torrserver-bin
# Запускаем службу
systemctl start torrserver.service
# Проверяем работу
systemctl status torrserver.service
# Включаем автозапуск
sudo systemctl enable torrserver.service
# Проверяем автозапуск, должно быть enabled
sudo systemctl is-enabled
# Прописываем путь к плееру
/usr/bin/vlc

Запуск сервера при этом будет по адресу: localhost:8090

Ссылки:

  1. Как установить Proxmox?

  2. Как установить Docker?

  3. Зачем нужен собственный сервер в 2025?