Files
vlc-server/docs/vlc-sender.md
2026-02-06 16:53:11 +03:00

2.2 KiB
Raw Blame History

VLC Sender

Веб-приложение для отправки медиафайлов на VLC через WiFi Upload API.

Архитектура

  • Backend: Express (TypeScript) — API для навигации по файлам и отправки на VLC
  • Frontend: Single-file HTML/CSS/JS в src/public/index.html
  • Docker: multi-stage build на node:22-alpine

API

Endpoint Метод Описание
/api/files?path= GET Список файлов/папок (name, size, isDir). Корень — список томов
/api/send POST Отправка файлов на VLC, возвращает SSE с прогрессом

POST /api/send

{ "ip": "243", "files": ["Torrents/movie.mkv"] }

Путь файла: {volume_label}/{subpath}. Ответ — SSE stream с событиями: start, done, error, complete.

VLC API

VLC принимает файлы через POST http://192.168.1.{ip}:80/upload.json (multipart/form-data, поле file).

Переменные окружения

Переменная Значение по умолчанию Описание
PORT 3000 Порт сервера
MEDIA_PATHS /media Тома для отображения (см. ниже)

MEDIA_PATHS

Поддерживает несколько томов через запятую. Два формата:

# С лейблами
MEDIA_PATHS=Torrents:/data/torrents,Media:/data/media

# Без лейблов (имя директории = лейбл)
MEDIA_PATHS=/data/torrents,/data/media

Обратная совместимость: MEDIA_PATH (без S) тоже поддерживается для одного тома.

Docker

docker build -t vlc-sender .

compose.yaml использует network_mode: host для доступа к устройствам в локальной сети. Тома настраиваются в .env (см. .env.example).

Структура

src/
├── index.ts          # Express сервер + API
└── public/
    └── index.html    # Фронтенд (single file)