群晖是 2019 年买的。风扇有点响,我没管。
十月最后一个周末,本来打算写点别的。翻硬盘的时候看见一个文件夹,名字叫 maccms-pro,里面是三个月前从 GitHub 拉下来的一套影视源码。当时没空,就扔那儿了。这次顺手拖出来试一下。
先说结果:能跑。但跑起来的那一刻,我其实有点失落。
一次具体的安装
周五晚上九点十分开始。PHP 7.4,MySQL 5.7,Nginx 反向代理,端口映射 8888。这三样东西我写过三遍笔记,每一遍都忘了上回踩的坑。这次我把过程记在了纸质本上,第 41 页。
安装向导走到第三步,卡在数据库连接。报错信息是「SQLSTATE[HY000] [1045] Access denied」。查了二十分钟,原因很无聊:我新建的数据库用户没给 localhost 的权限,只给了 127.0.0.1。改完再点,一步过。
后台进去以后,第一眼是模板列表。一共 6 套,5 套是付费的,只有一套免费的叫「蓝海」,样式像我 2013 年见过的某个电影站。我选了它。
分页的那个 bug
真正花时间的是分页。
采集器接的是某个公开接口,导入 120 条影片记录以后,列表页第一页正常,第二页 404。查代码,采集模板把 page 参数拼接成了 ?page=2&type=,末尾多一个空参数,Nginx 的规则把它吞了。改了两行,好。
这个 bug 不在任何文档里。我是把日志开到 debug 级别才看到的。原作者的 README 只有三行字,最后一行是「如有问题请自行解决」。
免费的东西从来不是省时间,是把时间换成了另一种方式付出去。
我不觉得这句话是抱怨。我只是那天第一次算清楚:这套源码省下的授权费,大概值我熬到凌晨一点的三个小时。划不划算,看你怎么算。
我删掉的那部分
这套系统带一个「VIP 专区」模块,默认开启。免费源码里保留了一个明显的付费墙逻辑:非会员只能看前 6 分钟,后面调站外地址。
我把它删了。连带删掉的还有统计上报接口,指向一个我没听说过的域名,每次页面加载都会发一条请求出去。
说实话,这是我对「免费影视源码」最大的保留意见。
不是代码质量的问题。很多免费模板比我付过钱的商业主题写得干净。问题是,免费往往意味着某处还有别的成本,藏在你看不见的接口里、后门里、采集规则里。你得自己一项项挖出来。愿意挖的人不多,这就是为什么同一个压缩包在论坛里传了三年,还是有人在下面问「怎么装」。
我的观点很直接:完全无门槛、一键可用的影视源码,基本不存在。存在的只有「别人已经帮你拆过一遍的源码」。 你要么付钱,要么付时间。两样都不想付,还是别碰。
没解决的那件事
转码。
我上传了一个 1.8 GB 的 mkv,想试试能不能直接播。结果浏览器不认。装 ffmpeg 转码插件,CPU 跑满到 100%,风扇声一下大起来,转了 22 分钟,只出来一半。
DS218 是四核 ARM,性能就这样。转码这条路走不通,我关掉了插件。
凌晨一点十分,我合上笔记本。剩下没解决的东西写在便签上,贴在显示器边上:「转码 — 换个思路,或者换台机器」。
这一项还挂着。
关于这次的收获
失望的部分是:我以为免费源码能给我省下一整周,实际上省下的时间大概三天,另外两天半花在读代码、改配置、删接口上。差不多。
意外的收获是另一个。把别人的代码一行行读下去,比我自己从零写要快得多。 那套「蓝海」模板的模板引擎写得比我见过的大部分方案都简洁。分页那个 bug 让我重新翻了一遍 Nginx 的 rewrite 规则,以前一直是半懂。这次算是吃透了。
所以对我来说,影视源码免费资源的价值,不在「资源」这两个字上。在于它是一份可以拆开看的成品。拆的过程就是学习。你买的不是一部电影站,是一份散装的工程笔记。
剩下那些没跑通的地方,我会接着弄。弄好了再写。