# -*- 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)