昨天夜里两点十七分,我在老城区那台三年没关过的台式机上,用 Chrome 的旧版本打开了一个以“西瓜.m3u8”命名的播放列表。屏幕右下角跳着“12 个分片,缓存 3”,风扇声像一只困在铁盒里的蝉。我本来只是想把那台机器里的旧文件清一清,却在索引目录里撞见一条链接,href 写着 4466.com网站,点进去,是一个 2009 年风格的导航页,标题栏里还挂着早已停止维护的计数器。
那个页面让我停下来。它把 m3u8 拆成三行:第一行是地址,第二行是时长,第三行是第几个分片,像一本被撕掉封面的旧账本,每一笔都记得清楚,却刻意不告诉你这账本属于谁。我数了数,这个列表一共 47 个分片,每个 9 秒,末尾还有一个 #EXT-X-ENDLIST 的收尾标记,像有人在深夜打完最后一个字,轻轻按下了句号。说真的,我很久没为一个技术文件这样出神了——它明明只是几行纯文本,却比很多长文章更诚实地承认自己只是中转站。
顺着那条链接,我又往下点了一层,落在一个叫“春雨”的旧站。站主姓周,别人都喊他老周,2008 年到 2015 年做本地影音索引,页脚写着一行小字:“本页最后更新于 2011 年 4 月 3 日”。我在页面上找到一扇半开的门,门后是 春雨旧版下载入口,点开只有一句“资源已迁移,见谅”,底下压着 1,286 条未读留言,最新一条是 2023 年 11 月 2 日留的:“老周,m3u8 还能用吗?”没有人回复。那一刻我忽然觉得,西瓜.m3u8 不是一条地址,而是一把钥匙,插在无数个这样半开的门上,有的门后还有灯,有的门后只剩风。
我后来把这件事讲给同事阿棠听。她做运维,听我絮叨到一半,伸手把我屏幕上的列表往下拖了拖,指着第 31 个分片说:“你看这个,200OK,但实际字节比标称少了 4,096。”她说这话的时候,手里还转着一支晨光中性笔,笔帽上有一道牙印。我们凑近看,那个分片的确缺了一截,播放器会在那里卡顿 0.6 秒,然后若无其事地跳到下一段,像一个讲故事的人忽然咳嗽一声,略过了一个不太体面的词。我记下了这个数字:4,096。它很小,小到任何一次网速波动都能把它吞掉,可正是这 4,096 字节,让“完整”这个词突然变得可疑起来。
阿棠临走前给我看了一眼她做的 小转盘,一个用纯 CSS 画的旋转选择器,八个扇区里分别写着“重试”“跳过”“换源”之类的词。她说这是给加班的人准备的,转一转,总比一直盯着“缓冲中”三个字强。我转了三次,两次停在“重试”,一次停在“跳过”。她笑了,说你这运气适合做编辑,不适合做运维。那天下午的光从百叶窗漏进来,落在她转盘上,扇区一格一格地亮,像一台很小的、只属于深夜的天气仪。
回家路上我一直在想,西瓜.m3u8 这个词其实并不指向某一部具体的片子。它更像是某种约定:把一个大的东西切碎,标记好顺序和时间,然后交给另一个屏幕去重新拼起来。播放器读它的时候,是一行一行读的,读到 #EXTINF 就停一下,像读诗的人读到分行,会不自觉地屏住呼吸。播放列表里所有的分片都在等同一个瞬间——被依次点亮,再依次熄灭。我甚至想,如果哪一天有人把西瓜.m3u8 打印出来,用订书机订成一本小册子,它仍然成立,仍然是一本完整的书,只是读者从机器换成了台灯下的人。
再后来,我想查一查这个命名习惯是从哪里来的。我在一个很久没登录的论坛里翻到 2014 年的一条帖子,发帖人叫“冬瓜”,头像是一张糊掉的西瓜照,他在帖子里说,把自己的列表叫“西瓜”,是因为“切开了才好吃”。底下跟了 37 条回复,最后一条是 2019 年补的:“现在没人这么叫了。”我把截图存下来,存进一个名叫“旧索引”的文件夹。文件夹里还有别的,比如一份 2016 年的 ao3网页版镜像入口 记录,那是另一个故事了,但逻辑很像——都是先有人搭一个门,再有人记下门的位置,最后门和地图一起变旧。
说一句可能不太讨喜的话:我认为今天绝大多数关于“播放列表”的讨论,都是在讨论结果,很少有人愿意讨论中间那一段。大家关心能不能播、清不清晰、卡不卡,这当然没错。可西瓜.m3u8 真正好看的地方,恰恰是它不负责好看的那部分——分片编号、目标时长、序列号、结束标记。它是一张写得很工整的草稿,工整到有点笨拙。我甚至觉得,把它当文件看,比把它当入口看更有意思。入口会失效,会迁移,会在某个凌晨提示你“资源不存在”;而文件本身,只要还躺在谁硬盘的某个角落,就还保留着它被写下的那个夜晚的形状。
我把这句话写在便签上,贴在那台旧台式机的边框上。便签是米的颜色,边缘有一点卷。下次再打开那个列表,如果它还在,我会把第 31 个分片缺少的 4,096 字节记下来,也许还会补一句:老周没有回复的那条留言下面,我又加了一行。不为了被谁看到,只因为那扇半开的门里,还有一盏没关的灯。