Kazumi icon indicating copy to clipboard operation
Kazumi copied to clipboard

[Added]: 支持 MP3 和 M3U8 的下载

Open aliferne opened this issue 1 month ago • 7 comments

相关 Issue

#26

aliferne avatar Nov 02 '25 12:11 aliferne

@Predidit 我认为这个实现应该可以满足你下载 M3U8 文件的需求了

aliferne avatar Nov 09 '25 06:11 aliferne

抱歉,我今天在忙于一些其他事情,现在才来得及cr这个pr,这个PR看上去相当不错

但是合并的方法似乎过于粗暴,直接将 ts 片段拼在了一起,我的直觉告诉我这里有兼容性问题,你实际上运行过那几个规则的测试,合并后的文件可以被 mpv 播放器正确播放吗

这里兼容性更好的方案应该是把片段放在一个文件夹内,不进行合并,然后手动生成一个 index.m3u8 指向这些 ts 片段,这也是大部分带有下载功能的软件的做法

Predidit avatar Nov 09 '25 10:11 Predidit

我只测试了两个视频,均是可以支持的。

使用 windows media 打开和正常播放没有问题, 我随意拖动和快进均可支持, 借助 ffmpeg 工具扫描也没有问题

后者那个方案我似乎不知道应当怎么处理, 但是原 ts 文件是存在的,可以通过设定 delTemp=false 保留源文件, 如果直接合成会导致奇怪的问题,也可以通过源文件播放,我没有太多时间测试其他用例

aliferne avatar Nov 09 '25 10:11 aliferne

我会在进行一些测试后给出反馈,直接合并绝对会破坏时间戳,这也是 animeko 的做法,它们的缓存功能至今存在严重的兼容性问题,包括但不限于无法 seek ,或是播放时闪退

此外这个PR包括了简单的 m3u8 解密功能,我的印象中没有规则带有加密 m3u8 流,这是为了兼容哪一条规则加入了该功能

Predidit avatar Nov 09 '25 10:11 Predidit

我简单学习了 M3U8 文件格式,因为不太确定是否有带加密的 M3U8 文件流,为了避免出错而额外加上的

我会等待测试用例的结果,倘若确实有问题,那我会尝试把 tsFiles 写入 index 文件中,之后也许你可以通过该文件来逐个打开 ts 文件

aliferne avatar Nov 09 '25 10:11 aliferne

我简单测试了一下,甚至 m3u8 清单文件解析本身都存在问题

测试用例:

https://ai.girigirilove.net/zijian/oldanime/2025/10/cht/GNOSIACHT/04/playlist.m3u8

Predidit avatar Nov 09 '25 11:11 Predidit

这……这似乎是我第一次遇到这样子的,我的代码只考虑到了 index.m3u8 里面指向 mixed.m3u8,然后由 mixed.m3u8 提供 ts 文件路径的样例,我会修改代码

aliferne avatar Nov 09 '25 12:11 aliferne