BiliBili视频提取音频的探索
(又又又N久没有更新了,罪过罪过,但工作确实忙,加班了几个月到十点十一点,顶不住呀【借口】。前段时间呢,也一直在尝试整一个公众号)
灵感
作为一个B站深度用户,在刷音乐区、笛子区的时候,发现很多稿件下面都有求音频的评论,不在少数,于是便有了这个 idea。
<span style="color:#ee3f4d">
欢迎大家来体验提出更多好的建议,作品地址(需微信内打开): BiliBili音频提取
设计方案
调研了一些现状,发现B站的大部分音视频是分离的,DASH格式,那就非常简单。 下面给出核心过程:
难点:
关于存储,一开始使用的对象存储,对于多个音频文件,打包成zip后再上传,这没有什么难度,但推广后,存储一天最高增量 8GB,流量十天就打到了 50 G,后期会有较大的成本,于是就有替换存储的想法。
调研了一些情况,决定使用阿里云盘,下载不限速,挺好。摸透接口后,一跑发现阿里云盘不支持 mp3 文件的分享??? 阿里云盘这是有什么大病?mp4都能分享,mp3不是更简单么?
那没办法,咱只能继续想办法,看到网上也有一些破解的工具:将文件拖到某个软件中,伪装成可以分享的文件,再上传,但下载后还需要再使用该软件解除伪装才能正常打开。。。。
这也太蠢了不是,用户成本太高
思考了一会,阿里云盘凭什么认为这个文件是 mp3 或 mp4 呢,查看接口,发现了两个字段,mime_type
和 mime_extension
,可以判定文件真实类型
那问题也差不多有解了,直接在文件最前面追加一个新的魔数,在这里我使用了图片的魔数 FFD8FF,而后面的 494433 则是 mp3 格式原本的魔数,从而打到了欺骗阿里云盘的目的。
再次上传到 阿里云盘,已被识别为 jpeg 格式,可以分享,目标达成。
一人血书希望阿里云盘能尽快官方支持 mp3 文件的分享
推广
秉着没人用的产品不是好产品,开始了推广之路。
一开始重点关注音乐区,在好听的曲子下面留下我有音频的评论,等待别人私聊,这种方法真的看运气,有的视频无人问津,而有一个则爆了,被二十号人私聊。但这种办法成本较高,且需要我持续的宣传。
再后来,做了一个该工具的使用视频,投放到 B 站,10天内达到 3k 播放量, 150 收藏,目前每天都有几百的佛系导出,是个稳定的路子,总数已将近3w。