缘起

这个事情还得从大半年前说起。今年1月,有人发布消息,称B站员工倪某因为与某用户产生言语冲突,使用技术手段封禁该用户的访问权限。事情的经过非常清楚,年轻人意气用事罢了,但B站暴露出来的管理问题,比如开发人员有权随意在生产环境操作,还是令人震惊的。当然事后B站迅速切割,称已经开除这名员工,自然也不必多说。详情请戳这里

需要注意的一点,网络上还暴了倪某的博客,以及他的github, 详细信息一览无余。出于好奇,访问了他的github,里面就有这个从B站下载视频的项目。老实说,作为B站的员工,一天“赚好几千块钱”他却暴露这个公司网站的视频下载方式,这种行为真的难评。

B站项目

项目下载下来后,发现是Node.js的,启动后,输入B站视频bvid,即可下载和播放该视频MP3,MP4甚至弹幕。有趣的是,Node.js里面还有个Python调用:

const { spawn } = require('child_process');
module.exports = function parseDash(obj,bvid) {
   
    return new Promise((res,rej) => {
        let videoUrl = obj.video[0].base_url;
        let audioUrl = obj.audio[0].base_url;
        let py = spawn("python3", ['./spider.py', videoUrl, audioUrl, bvid])

        py.stdout.on("data", (path) => {
            res(path);
            console.log("视频保存成功!!!")
        })
    })
}

填坑

开开心心的下载了十几个歌曲,放到车载播放器上,结果放不出来,发现是采样频率不支持的缘故,最后又用ffmpeg重写采样频率为44.1K,重新又折腾一遍,这才能播放。

def rewriteMP3(bvid):
    # 重写MP3文件, 使用车载Player播放时需要
    cmd = f'ffmpeg -i "public/{bvid}.mp3" -ar 44100 -acodec libmp3lame -b:a 192k -ac 2 "public/{bvid}-44K.mp3" '
    subprocess.call(cmd, shell=True)

最后

倪某的个人博客和github都已经删了,现在是无法访问状态,大概预示着他职业生命的结束。所以现在这个社会,人还是需要爱惜自己羽毛的,而我居然以这样的方式掺合进了一个项目,也是无语。

感兴趣的猛戳这里,小伙咂,你的代码还会流传下去的……