短视频内容分发平台搭建实录:推荐算法与多语言前端部署笔记
声明:本文仅供技术学习参考,不构成任何投资建议或运营指导;任何实际部署必须遵守当地法律法规,禁止用于任何违法违规用途。
上周帮做本地生活号的老周部署了一套短视频内容分发的系统。他原来是靠公众号图文攒了十几万粉,现在想把竖屏视频这条线跑起来,需求很直白:安卓、苹果、PC 三端都要能刷,后台得自己能控推荐位,还要留出二开的口子。整套后端是 C# 写的,我用了大概两天半跑通环境,这里把过程和踩过的坑记一下。

一、功能实测:这套系统到底能干什么
多端同构,一套登录逻辑走三端
安卓端用的是 Kotlin 加播放器组件,iOS 是 Swift 配系统播放器,PC 端走的是 Web 壳,三端共用一套 JWT 鉴权和用户体系。我实测登录态同步没问题,同一账号在 PC 登录后,安卓端刷新一次 token 就能接上,不用重新输密码。token 默认有效期我调成了 7 天,刷新 token 放在 Redis 里,过期自动失效。
推荐流与短链生成
首页是上下滑的推荐流,冷启动阶段走的是规则加权:内容热度、完播率、发布时间三个维度算分,权重在后台可以拖滑块调。分享按钮会调用后端的短链服务,生成 6 位 base62 码,跟原始视频地址做映射存 MySQL,点击进来能带来源参数。老周原来的需求里还提到过账号标识自动生成,这块系统里是用户 ID 加邀请码的生成模块,注册时自动下发,跟短链服务是两套逻辑,别搞混。

二、部署要点:从后端到 CDN 的顺序
环境依赖先对齐
后端是 .NET 8 的 WebAPI,数据库 MySQL 8.0,缓存用的 Redis。我第一次装的时候踩了个坑——服务器上是 .NET 6 运行时,直接报版本不兼容,装了 8.0 的 Hosting Bundle 才起来。视频文件不要走后端转发,走对象存储直传加 HLS 切片,CDN 回源配好之后,首帧加载从 2 秒多降到 400ms 左右。
后台控制与支付接口
管理后台该有的都有:内容审核队列、标签管理、推荐权重、灰度发布开关。审核这块我建议开人工加机审双通道,机审只做画面截帧和敏感词,别全指望自动过。支付接口预留了支付宝和微信的对接位,回调要做验签加订单幂等,我用同一笔订单重复回调测了五次,订单状态没被重复写入,这块逻辑是靠谱的。打赏和会员走的是不同的订单表,二开的时候注意别混用。
三、二开与多语言扩展
多语言这块用的是资源包方案,中、英、阿三套语言包放在独立目录,前端按系统语言自动切换,后台可以手动覆盖。阿拉伯语要记得把布局改成 RTL,我第一版忘了改,整个首页镜像反了,改了两行样式才正常。二开接口文档还算清楚,内容表、用户表、推荐权重表都有注释,加自定义字段直接走迁移脚本就行,不用动核心逻辑。

亮点提示:推荐权重和灰度开关都存在 Redis 里,后台改完 30 秒内生效,不用重启服务。上线前最好把这套配置做一次持久化,我吃过一次 Redis 重启后权重全回默认值的亏。
常见问题
问:三端一定要维护三套代码吗?
答:不用。业务逻辑尽量往后端接口压,前端只做渲染和播放,三端各自只维护播放器和列表组件,改动量能压到很小。
问:推荐算法要自己训练模型吗?
答:前期不用。规则加权加热度榜足够跑冷启动,等内容量过万再考虑上模型,不然数据量不够,训出来的结果还不如规则稳。
问:后台改完推荐权重需要重启服务吗?
答:不需要。配置写在 Redis 里,服务定时拉取,实测 30 秒内生效。但记得开持久化,否则缓存重启会丢配置。
问:支付接口能不能只接一个?
答:可以,但建议至少留两个通道的位置。回调验签和幂等逻辑提前写好,后面加通道就不用改主流程了。

适合人群
这套东西适合手里已经有内容源、想自己搭分发渠道的团队,比如做本地生活、知识科普、企业内训的。纯小白不太建议直接上,至少得有人能看懂 C# 代码和 SQL 报错。另外提醒一句,部署和使用请遵守法律法规,禁止任何违法违规用途,内容审核这块别省。
声明:本文仅供技术学习参考,不构成任何投资建议或运营指导;任何实际部署必须遵守当地法律法规,禁止用于任何违法违规用途。
-
Alipay QR Code Scan
-
WeChat Scan Pay