Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

403处理方式问题 #49

Open
Mishasama opened this issue Sep 17, 2024 · 12 comments
Open

403处理方式问题 #49

Mishasama opened this issue Sep 17, 2024 · 12 comments

Comments

@Mishasama
Copy link

#41 相关
当m3u8有部分mute的ts时,这通常会出现403无法下载该分段的问题。结果程序就自动生成了无法读取的ts文件,导致合并成功启动,但走到问题部分时就会失败。

那么就有两个问题:

  1. 为什么要生成无效序列文件?
  2. 当有403的ts时,无法正常完成合并是可以预见的,能不能不启动合并直接报错?
@orestonce
Copy link
Owner

“无效序列文件”

  • 这个表述没看懂,在下载m3u8进行分析时,就已经在内存里确定了需要下载的ts的url、最后保存的文件名,如果后续发现此ts需要跳过,则最终不会保存为实际的ts文件。
    • 例如:分析m3u8得到 需要下载保存 00001.ts、00002.ts、00003.ts,但下载时发现下载 00002.ts 的时候http服务器返回403,并且跳过表达式中指出 http.code=403,则会直接跳过此ts文件的保存逻辑。最终得到的文件只有2个: 00001.ts,00002.ts,这是符合预期的。

当有403的ts时,无法正常完成合并是可以预见的,能不能不启动合并直接报错?

  • 这个功能现在已经有的,如果在下载过程中,如果有403的ts,并且跳过表达式包含 http.code=403
    • 如果跳过表达式包含 if-http.code-merge_ts ,则会直接合并
    • 如果跳过表达式不包含 if-http.code-merge_ts ,则会报错

@Mishasama
Copy link
Author

image
我什么都不懂,什么都没动的情况下默认值是什么?

@orestonce
Copy link
Owner

默认情况下,服务器返回403则客户端认为下载错误,直接报错并终止下载。

@orestonce
Copy link
Owner

  • 跳过403并且跳过403后不自动合并: http.code=403

@Mishasama
Copy link
Author

默认情况下,服务器返回403则客户端认为下载错误,直接报错并终止下载。

但是在我实际使用中,在那些特异的403ts的分块会出现一个非常小的ts文件,实际并没有任何音像内容。
软件在下载过程没有报错,而是在合并的过程中,且合并到无效ts的时候才报错。

@orestonce
Copy link
Owner

那就是说服务端并没有返回403代码给客户端,这样客户端是无法识别出来的

@Mishasama
Copy link
Author

服务端并没有返回403代码给客户端

但奇怪的是,IDM对同一个ts链接显示的是error,无法下载的。

@orestonce
Copy link
Owner

开启调试日志,把debug.log 和具体是哪一个ts文件异常发一下

@Mishasama
Copy link
Author

debuglog.txt
image
所有带-unmuted的都出问题

@orestonce
Copy link
Owner

已确认此问题是个bug,,最新版本v1.24.38 修复了

@orestonce
Copy link
Owner

你再确认一下此问题是否已修复,已修复我就关闭此issue了

@Mishasama
Copy link
Author

再确认一下此问题

我不好测……毕竟这些录像是会过期的,我只能等新的录像被mute了才能验证,待我确认修复后我会帮你close。

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

No branches or pull requests

2 participants