bbaimu.com / 2026

旧硬盘里躺着 412 个 m3u8 文件,其中 9 个的同一行时间戳,对不上。

一个播放列表,就是一个人看视频的习惯切片。我花了三个晚上,把它们一行一行读完。

陈默 · 发布于 2026-09-12
近期写过的

上周四晚上十一点四十,我在整理一块 2019 年买的 2TB 移动硬盘。

目的很简单。找一张旧照片。

结果照片没找到,翻出一个从来没注意过的文件夹,叫 temp_m3u8。里面有 412 个 .m3u8 文件,创建时间集中在 2020 年 3 月到 2021 年 8 月之间。都是纯文本。每行一条 #EXTINF,后面跟一个 .ts 分片地址。

这不是视频。这是别人当时看视频的痕迹。

我本来打算全部删掉。

后来没删。我先用 wc -l 数了一遍行数,412 个文件加起来是 186,377 行。平均每个文件 452 行。最短的一个只有 3 行,最长的一个 1189 行。我把那个 3 行的打开看了。

文件名是 8f2c1a.m3u8。三行内容,第一个分片的时间戳是 2021 年 4 月 17 日 02:14:58,第二个是 02:14:59,第三个是 02:15:00。然后没了。

三秒钟的播放记录。

我不知道这个人为什么只看了三秒就关掉了。可能是点错了,可能是加载失败,可能是突然有人进来了。

然后是对比。

我写了二十行 Python,把 412 个文件的第一个时间戳全部提出来,按文件修改时间排序。结果发现,其中 9 个文件的时间戳和文件修改时间对不上。差得不多,通常几分钟,但差得整齐。

一台老式硬盘和散落的线缆
那块硬盘现在放在书桌左边第二个抽屉里。2026-09-10 拍的。

后来我想明白了。这些文件是被程序抓下来的,抓取脚本在下载分片之后,会重新写一遍文件头。所以第一个时间戳对应的是原始播放时间,文件修改时间对应的是抓取时间。中间那几分钟,是脚本在跑。

但 9 个文件的差距不是几分钟,是整整 37 天。

2020 年 6 月 11 日下载的,里面第一个分片的时间戳是 2020 年 7 月 18 日。

只有一种解释。文件头被人手工改过。

下午我打电话给老陈。他做网络运维,2018 年就在弄这些东西。

我问他:m3u8 文件的时间戳能被改吗。

他说能。他说他 2019 年在一台 Synology 上见过类似的东西,有人把整个播放列表的时间轴往前挪,为了让缓存服务器认为是新内容,重新走一遍 CDN,拿到没被限速的线路。

他说了一句话我记下来了。

「不是所有的文件都是为了被播放而存在的。有些是为了骗过某台机器。」

我没打算写一篇技术帖。

我想说的是另一件事。

这些文件里的每一条 #EXTINF,对应的都是一个人真实看了的十秒钟。412 个文件,十八万多行,就是一千八百多个小时的播放时间。有人在一个晚上看了四集,有人在某个凌晨两点点开又关掉。有人缓存了整部剧但从来不删,有人只看三秒。

现在的播放器都不这么干了。2023 年以后,大部分站点的播放列表在内存里生成,播放完就没了。硬盘里不留痕迹。你昨天看了什么,明天就不存在了。

所以这块硬盘是个意外。

它保存了一份完整的、无意中留下的、2020 到 2021 年的观看档案。只是一个临时文件夹,一个忘了清空的地方。

我有个观点,可能不太讨喜。

这些被随手丢掉的缓存文件,比大部分人认真写的日记更诚实。

日记会修饰。播放记录不会。它在 02:14:58 打开,在 02:15:00 关掉。三秒就是一秒不差的三秒。

我现在把这个文件夹留着了。改名叫 archive_2020,放在原来的位置。412 个文件,一个都没动。

以后可能会写它们的分布。比如 2020 年 3 月有 71 个文件,2021 年 8 月只有 6 个,中间发生了什么,值得单独说一次。

也可能不写。

先放着。

关于我

我是陈默。住在杭州,白天写后端,晚上写这里。

这个站没有主题。我遇到一个具体的东西,就写一个具体的页面。旧硬盘、过期域名、一条改了时间戳的请求、一个被删掉的跳转地址。

不做推荐。不做测评。不写「值得」。

我写的是「我看到了这个,它长这样」。看的人自己判断。

—— 陈默,2026 年 9 月,在杭州。

今天看到的一句话
「不是所有的文件都是为了被播放而存在的。有些是为了骗过某台机器。」
—— 老陈,2026 年 9 月 10 日,电话里说的。