从B站 (哔哩哔哩) 泄露的源码里发现了B站视频推荐的秘密
这两天闲来无事,回顾了一下年前B站沸沸扬扬的代码泄露事件,大致翻阅了一些泄露的代码发现了一些有意思的事情,其中就包括 B站视频推荐 加权部分算法 的相关代码。
不过后期 B站官方辟谣说是老版本代码,并且已经进行相应的防御措施,但是后端大体的架构还是不会变化太多,所以就仁者见仁智者见智了,仅供吃瓜参考。
姊妹篇: B站 (哔哩哔哩) 泄露源码中的有趣片段(彩蛋) 首先回顾一下B站源码泄露事件始末北京时间 2023年4月22日下午16点左右,一个名叫“openbilibili”的用户在Github上创建了“go-common”代码库,而那显然就是B站网站后台工程源码。B站在技术圈炸锅,其后端源码被恶意“开源”,被上传至 GitHub 供全球用户下载。
通俗一点来解释,这就好像是有人把你家的房子图纸发在了微博上,门在哪锁在哪甚至钥匙在哪都标得一清二楚。虽然单凭这个还不至于让所有人都能进你家门,但其实也足够头疼了。
结果就是截至北京时间17:04,该项目已获得6597个标星。fork数量已经突破6000(这个操作会将被Fork的代码仓库中所有的信息,包括源代码、原仓库中的issus、历史提交等全部复制到你的账号中),issues已经成了弹幕,场面已经失控。
最终B站官方也是就此做出了 “回应”,这一代码库已被GitHub「封杀」,微博上已经看不到此事的踪影,知乎上关于该事件的话题也基本被删。
不过总的来说次此泄露对B站的影响也是不可估量的,也是导致了B站股价直接下跌4%.
有关B站的推荐和加权算法
抱着吃瓜的心理在翻看后台代码时,发现了这么一段代码,注意上面的注释。
//countArcHot 视频=硬币*0.4+收藏*0.3+弹幕*0.4+评论*0.4+播放*0.25+点赞*0.4+分享*0.6 最新视频(一天内发布)提权[总值*1.5]func countArcHot(t *api.Stat, ptime int64) int64 { if t == nil { return 0 } hot := float64(t.Coin)*0.4 + float64(t.Fav)*0.3 + float64(t.Danmaku)*0.4 + float64(t.Reply)*0.4 + float64(t.View)*0.25 + float64(t.Like)*0.4 + float64(t.Share)*0.6 if ptime >= time.Now().AddDate(0, 0, -1).Unix() && ptime = time.Now().AddDate(0, 0, -1).Unix() && int64(t.PublishTime)