Files
aptv-live-source-builder-20…/generator.py
T

31 lines
898 B
Python

# -*- coding: utf-8 -*-
"""生成 M3U 播放列表"""
import os
def generate_m3u(channels, output_file, category_order=None):
"""生成标准 M3U 文件"""
if category_order is None:
category_order = []
# 按分类排序
def sort_key(ch):
cat = ch.get("category", "")
if cat in category_order:
return (category_order.index(cat), ch["name"])
return (len(category_order), ch["name"])
channels = sorted(channels, key=sort_key)
os.makedirs(os.path.dirname(output_file), exist_ok=True)
with open(output_file, "w", encoding="utf-8") as f:
f.write("#EXTM3U\n")
for ch in channels:
name = ch["name"]
category = ch.get("category", "")
url = ch["url"]
f.write(f'#EXTINF:-1 group-title="{category}",{name}\n')
f.write(f"{url}\n")
return len(channels)