Files

2.6 KiB
Raw Permalink Blame History

Stream Playlist Tools

Консольная утилита для преобразования M3U-плейлиста в каталог .strm-файлов. Проект вырос из скрипта GenerateStream.py, но оставляет только полезную и независимую часть: локальный разбор плейлиста и создание файлов для медиасервера.

Что делает

  • читает пары #EXTINF и URL из UTF-8 M3U;
  • берёт имя из tvg-name, а при его отсутствии — из текста после запятой в #EXTINF;
  • заменяет недопустимые для имён файлов символы;
  • сохраняет один URL в каждом файле <название>.strm;
  • различает одинаковые названия, добавляя суффикс (2), (3) и т. д.

Утилита не выполняет HTTP-запросов, не скачивает медиа, не проверяет доступность ссылок и не хранит токены либо адреса серверов. Она подходит для плейлистов и источников, которыми вы вправе пользоваться.

Установка

Требуется Python 3.10 или новее.

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.

Использование

playlist-to-strm ./input/channels.m3u ./output/strm

Например, запись

#EXTINF:-1 tvg-name="Новости / HD",Новости
https://media.example.org/news.m3u8

создаст файл output/strm/Новости _ HD.strm с единственной строкой — URL потока. Повторный запуск в тот же каталог перезапишет файлы с совпавшими именами, поэтому для нового импорта лучше выбирать отдельный каталог.

Структура

src/stream_playlist_tools/
  m3u.py   # разбор M3U и запись STRM
  cli.py   # аргументы командной строки

Проверка

python -m compileall -q src
PYTHONPATH=src python -m stream_playlist_tools.cli input.m3u output

Лицензия

Код распространяется по лицензии MIT.