2.6 KiB
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.