昨天夜里十一点四十分,我在书房把那台 2019 年的旧笔记本打开,屏幕上是一段西瓜视频的播放地址,结尾是 18m3u8。
播放到第 47 秒,它停了。
进度条还在走,声音还在,画面卡在一个人转身的瞬间。我拖动、回退、再点播放,还是那个位置。
我打开控制台,看到一长串 .ts 的请求,每隔四秒一个,像心跳。到第 12 个,全部返回 403。
就这样。
我开始查「18m3u8」这三个字
搜索出来的东西很杂。
有人说这是某个播放器的版本号,有人说是分片索引的编号。也有人只是把它当成一个入口的名字。
我翻到一篇 2021 年的技术帖,作者叫「季文斌」,在南京做流媒体。他写了一句我记住了:m3u8 不是视频,是一张清单。
清单里写着切片的名字、时长、顺序。播放器照着清单去取。取不到,就停。
他还在帖子里贴了一段代码,把 18 个切片合并成一个文件,命令行只用了 3 行。
我照着试了。没成功。
403 是一个门槛,不是错误
我不太懂鉴权,但也知道 403 意味着服务器认出了请求,只是不愿给。
可能是时效过期。可能是来源不符。可能两者都有。
清单本身是会过期的。每刷新一次页面,签名换一遍,旧清单就作废。
这让我想到一个问题。
我们把「能不能看」当成默认,把「为什么不能看」当成意外。
顺序其实是反的。
每一次播放,背后都是一次谈判:客户端出示令牌,服务端核验,然后才放出那段四秒的视频。
第 47 秒停下,不是技术故障。是谈判在那一刻破裂了。
关于这个站,说句实话
建这个站,不是为了教人抓流。
我只是想留下一些记录:哪些地址会断、在什么时间断、断之前有什么征兆。
像一本故障笔记。
顺便把相关的工具和旧链接整理在一个地方,比如 tg-x旧版本下载,还有 899ut.+com,都是我自己会回头翻的。
最近在整理一批短剧的入口,2048ai短剧网.com 也在这一批里,记下来以备对照。
这不是一份指南。指南需要确定的东西,我没有。
我的一个判断,可能有争议
说实话,我觉得大部分人根本不需要知道 m3u8 是什么。
他们只是想知道,为什么点开之后,卡住了。
而这个问题的答案,写代码的人给不了,写文章的人也未必给得了。
它取决于那天晚上,服务器的策略、网络的路径,还有那一次签名的有效期。
所以我把这些都记下来。具体的、琐碎的、没法做成口号的。
剩下的一半,我还没想明白。