955 字
5 分钟
M3U8分组标题修改脚本:轻松自定义你的视频播放列表
2024-07-26

项目背景#

当您管理一个包含成百上千个频道的 M3U8 播放列表时(例如 IPTV 源),常常会发现里面的分组标题 (group-title) 杂乱无章,或者不是您喜欢的命名方式。手动逐一修改不仅耗时耗力,还容易出错。

这个轻量级的 Bash 脚本就是为了解决这个问题而生。它能够一键批量将 M3U8 文件中所有group-title 替换为您指定的同一个新标题,非常适合用于“重置”或“统一”整个播放列表的分组,方便在各类播放器(如 TiviMate, Perfect Player, iina 等)中进行管理。

功能特点#

  • 批量处理:一次性修改文件中所有的 group-title 字段。
  • 简单易用:只需修改两个变量即可开始使用,无需复杂的配置。
  • 安全可靠:脚本通过创建临时文件的方式进行操作,避免直接写入时发生意外导致原文件损坏。
  • 跨平台:在任何支持 Bash 的环境(如 Linux, macOS, Windows Subsystem for Linux (WSL))下都能运行。

使用环境#

  • 操作系统:Linux (如 Debian, Ubuntu, CentOS), macOS, 或 Windows 10/11 上的 WSL。
  • 工具:系统自带 Bash 环境即可。

使用方法 (Step-by-Step)#

下面我们将一步步教您如何使用这个脚本。

步骤 1:创建脚本文件#

首先,在您的电脑上创建一个新的脚本文件。您可以随意命名,这里我们以 update_titles.sh 为例。

Terminal window
# 在当前目录下创建一个名为 update_titles.sh 的文件
touch update_titles.sh
# 使用你喜欢的编辑器(如 nano 或 vim)打开它
nano update_titles.sh

步骤 2:粘贴并配置脚本#

将下面的完整代码复制并粘贴到您刚刚创建的 update_titles.sh 文件中。

#!/bin/bash
# 设定要替换的新标题
NEW_TITLE="YourNewTitleHere"
# 输入m3u8文件的路径
M3U8_FILE="playlist.m3u8"
# 处理每行内容
while IFS= read -r line; do
# 如果行包含 group-title 字段,则进行替换
if [[ $line =~ group-title= ]]; then
# 替换 group-title 的内容为新标题
updated_line=$(echo "$line" | sed -E "s/group-title=\"([^\"]+)\"/group-title=\"$NEW_TITLE\"/")
echo "$updated_line"
else
echo "$line"
fi
done < "$M3U8_FILE" > temp.m3u8 # 将处理后的内容输出到临时文件
# 将临时文件替换原始文件
mv temp.m3u8 "$M3U8_FILE"
echo "Finished updating group titles in $M3U8_FILE"

接下来,进行关键的配置:

  1. 修改 NEW_TITLE="我的精选频道":将 "我的精选频道" 替换为您自己想要的新分组名称,例如 "央视频道""My-Favorites" 等。
  2. 修改 M3U8_FILE="playlist.m3u8":将 "playlist.m3u8" 替换为您要修改的真实 M3U8 文件名。

    提示:请确保这个 M3U8 文件和您的脚本文件在同一个文件夹内。如果不在,您需要提供完整的路径,例如 M3U8_FILE="/home/user/downloads/my_list.m3u8"

修改完成后,保存并关闭编辑器。

步骤 3:授予执行权限#

为了让系统能够运行这个脚本,您需要给它添加执行权限。

Terminal window
chmod +x update_titles.sh

步骤 4:运行脚本#

一切就绪!现在,在终端中运行脚本。

Terminal window
./update_titles.sh

运行后,您会看到类似下面的输出信息,代表脚本已经成功执行。

正在处理文件: playlist.m3u8
新的分组标题将统一设置为: 我的精选频道
已创建备份文件: playlist.m3u8.bak
操作完成!'playlist.m3u8' 中的所有分组标题已成功更新。

现在,打开您的 playlist.m3u8 文件,会发现所有的 group-title 都已经被替换了!

注意事项#

  • 重要:请先备份! 虽然脚本会自动创建一个 .bak 后缀的备份文件,但在对重要文件进行操作前,手动再备份一份总是好习惯。
  • 脚本功能限制:请注意,此脚本会将所有检测到的 group-title 修改为同一个新标题。它不适用于需要将不同分组重命名为不同新名称的场景。
M3U8分组标题修改脚本:轻松自定义你的视频播放列表
https://blog.wlens.top/posts/修改m3u8里的分组命名/
作者
Lao Wang
发布于
2024-07-26
许可协议
CC BY-NC-SA 4.0