# Stream Playlist Tools Консольная утилита для преобразования M3U-плейлиста в каталог `.strm`-файлов. Проект вырос из скрипта `GenerateStream.py`, но оставляет только полезную и независимую часть: локальный разбор плейлиста и создание файлов для медиасервера. ## Что делает - читает пары `#EXTINF` и URL из UTF-8 M3U; - берёт имя из `tvg-name`, а при его отсутствии — из текста после запятой в `#EXTINF`; - заменяет недопустимые для имён файлов символы; - сохраняет один URL в каждом файле `<название>.strm`; - различает одинаковые названия, добавляя суффикс `(2)`, `(3)` и т. д. Утилита не выполняет HTTP-запросов, не скачивает медиа, не проверяет доступность ссылок и не хранит токены либо адреса серверов. Она подходит для плейлистов и источников, которыми вы вправе пользоваться. ## Установка Требуется Python 3.10 или новее. ```bash git clone https://github.dfv24.com/fofanov.dmitry/stream-playlist-tools.git cd stream-playlist-tools python -m venv .venv . .venv/bin/activate python -m pip install --editable . ``` На Windows активируйте окружение командой `.venv\Scripts\activate`. ## Использование ```bash playlist-to-strm ./input/channels.m3u ./output/strm ``` Например, запись ```m3u #EXTINF:-1 tvg-name="Новости / HD",Новости https://media.example.org/news.m3u8 ``` создаст файл `output/strm/Новости _ HD.strm` с единственной строкой — URL потока. Повторный запуск в тот же каталог перезапишет файлы с совпавшими именами, поэтому для нового импорта лучше выбирать отдельный каталог. ## Структура ```text src/stream_playlist_tools/ m3u.py # разбор M3U и запись STRM cli.py # аргументы командной строки ``` ## Проверка ```bash python -m compileall -q src PYTHONPATH=src python -m stream_playlist_tools.cli input.m3u output ``` ## Лицензия Код распространяется по лицензии [MIT](LICENSE).