Skip to content

Conversation

@aliferne
Copy link
Contributor

@aliferne aliferne commented Nov 2, 2025

相关 Issue

#26

@aliferne aliferne marked this pull request as draft November 2, 2025 12:04
@aliferne aliferne marked this pull request as ready for review November 9, 2025 06:51
@aliferne
Copy link
Contributor Author

aliferne commented Nov 9, 2025

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

@aliferne aliferne changed the title [Added]: 初步支持 MP3 视频的下载 [Added]: 支持 MP3 和 M3U8 的下载 Nov 9, 2025
@Predidit
Copy link
Owner

Predidit commented Nov 9, 2025

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

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

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

@aliferne
Copy link
Contributor Author

aliferne commented Nov 9, 2025

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

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

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

@Predidit
Copy link
Owner

Predidit commented Nov 9, 2025

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

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

@aliferne
Copy link
Contributor Author

aliferne commented Nov 9, 2025

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

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

@Predidit
Copy link
Owner

Predidit commented Nov 9, 2025

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

测试用例:

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

@aliferne
Copy link
Contributor Author

aliferne commented Nov 9, 2025

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants