Emby STRM Exporter
Утилита экспорта одной категории медиатеки PostgreSQL в дерево .strm-файлов
для Emby. Она переработана из GenerateEmbyContent.py: устаревшие жёстко
заданные IP-адреса, пароль, загрузка постеров и генерация NFO исключены. Осталась
только главная задача — безопасно подготовить ссылки на поток для локальной
медиатеки.
Возможности и границы
- получает категорию по
site_codeиз таблицыcategorys; - для каждой комбинации названия и качества выбирает строку с максимумом
seeds; - строит каталог
<категория>/<год>/<название (год)>; - создаёт UTF-8
.strm, содержащий URL, сформированный изinfohash; - получает параметры подключения исключительно из переменных окружения.
Экспортёр не изменяет базу данных, не загружает изображения, не обращается к API Emby и не содержит учётных данных. Используйте его только для своей базы данных и разрешённых источников потоков.
Требования
- Python 3.10+;
- PostgreSQL с таблицами
categorysиtorrents; - доступ на чтение к этим таблицам.
В используемой исторической схеме требуются поля:
categorys(site_code, name)
torrents(category_id, name, year, quality, seeds, infohash)
Установка
git clone https://github.dfv24.com/fofanov.dmitry/emby-strm-exporter.git
cd emby-strm-exporter
python -m venv .venv
. .venv/bin/activate
python -m pip install --editable .
Конфигурация
Скопируйте шаблон, но не добавляйте заполненный .env в Git:
cp .env.example .env
export DATABASE_URL='postgresql://reader:password@db.example.org:5432/media'
export ACE_STREAM_URL='http://stream.example.org/ace/getstream?infohash={infohash}&.mp4'
ACE_STREAM_URL обязан содержать литерал {infohash}. Он будет заменён на
значение строки БД. Переменная .env не загружается программой автоматически:
экспортируйте значения в оболочку либо используйте ваш менеджер секретов.
Экспорт
emby-strm-export ./library 1
Где ./library — корневой каталог медиатеки, а 1 — site_code категории.
Пример результата:
library/
Фильмы/
2024/
Пример (2024)/
Пример (2024)-WEB-DL.strm
Повторный запуск может перезаписать .strm того же качества. Перед массовым
экспортом удобно сначала выполнить его в тестовый каталог.
Структура и проверка
src/emby_strm_exporter/
exporter.py # запрос к БД и запись файлов
cli.py # интерфейс командной строки
python -m compileall -q src
Лицензия
Код распространяется по лицензии MIT.