# 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`; - доступ на чтение к этим таблицам. В используемой исторической схеме требуются поля: ```text categorys(site_code, name) torrents(category_id, name, year, quality, seeds, infohash) ``` ## Установка ```bash 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: ```bash 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` не загружается программой автоматически: экспортируйте значения в оболочку либо используйте ваш менеджер секретов. ## Экспорт ```bash emby-strm-export ./library 1 ``` Где `./library` — корневой каталог медиатеки, а `1` — `site_code` категории. Пример результата: ```text library/ Фильмы/ 2024/ Пример (2024)/ Пример (2024)-WEB-DL.strm ``` Повторный запуск может перезаписать `.strm` того же качества. Перед массовым экспортом удобно сначала выполнить его в тестовый каталог. ## Структура и проверка ```text src/emby_strm_exporter/ exporter.py # запрос к БД и запись файлов cli.py # интерфейс командной строки ``` ```bash python -m compileall -q src ``` ## Лицензия Код распространяется по лицензии [MIT](LICENSE).