昨天晚上十一点四十,我把家里那台 2017 年的 MacBook Air 从沙发缝里摸出来,屏幕还亮着,Chrome 里挂着 9 个标签页,全是 m3u8 链接。第 9 个标签页是我自己写的测试页,里面有一行写着 #EXTINF:-1 tvg-id="unknown",后面跟了 17 个字符的路径,我怎么看都觉得眼熟,但就是想不起来是哪部片。我把台灯拧亮,拿手机拍下屏幕,放大,一个字符一个字符地对,对了大概四分钟,才认出来是 2021 年那部巴西纪录片《微光之城》的备用源。那一刻我特别想笑——我居然为了一个连片名都忘了的片子,熬到快十二点。
说回正事。m3u8爱心电影网 这个站,我做了快两年,后台的播放列表从最早的 3 条涨到现在的 400 多条,可我心里一直有个没解决的问题:为什么同一个 m3u8 链接,白天能播,晚上十点以后就 403? 上周三我拿三条链接做了测试,A 链接上午九点播了 48 秒正常,晚上十点零七分再点,直接报错;B 链接倒是稳,但码率只有 480p,画面糊到字幕都看不清;C 链接最怪,播放器里显示「正在加载」,等一下午,进度条不动,切到 Safari 又好了。我问过做运维的朋友老周,他回我一句「CDN 回源策略,别钻牛角尖」,然后就跑去接孩子放学了。我到现在也没完全弄懂,只能每次更新列表时手动加两条备用源,像给旧自行车多绑一根绳子。
说实话,我越来越觉得「m3u8 播放列表」这件事被严重高估了。大家都在聊有多少条源、更新多快,可真正决定你能不能看完一部片的,往往是那个没人愿意写的 备用逻辑。 —— 叶子,写于第三次排查 403 的那晚
站点里有个页面,我私心最喜欢,叫「片单备份」,是我用记事本手写的,每行格式是「片名 + 年份 + 一条能用的 m3u8 + 备注」。翻到第 63 行,写着「《路边野餐》2016,源已挂,勿点」,后面被我画了个小叉。那是 2024 年 11 月 2 日加的,当时我在贵阳出差,酒店 Wi-Fi 只有 2M,我蹲在窗边用手机热点试了半小时,终于确认那条源彻底失效了,才舍得把它标掉。你看,我对一个链接的耐心,有时候比对一部电影还长。这大概就是做站的人的通病吧,总觉得再试一次就好了。
最近我在想一个更笨的问题:m3u8 这种格式到底该不该配一个「说明页」? 打开 m3u8爱心电影网 的人,八成只想点播放,没人想看技术解释。可每次有人留言问「为什么加载失败」,我又忍不住写一大段话解释分片、解释跨域、解释为什么苹果设备能播安卓设备不行。写到最后自己都嫌啰嗦。叶子是个絮叨的人,这点我认。可絮叨背后是我真的困惑:我到底是在做一个看电影的地方,还是在做一个教人折腾播放器的地方?这个问题我还没有答案,所以这篇东西就先这么放着。