写了一个哔哩哔哩视频下载 Chrome 插件 SakiDown(已开源)

2 月 11 日
 weiyunjun

开箱即用,支持非 DRM 加密的个人投稿/番剧/课堂,完整支持合集/播放列表/稍后再看。支持封面和弹幕下载。

之前嫌大部分哔哩哔哩视频下载软件使用太麻烦,Chrome 插件体验又很一般(对批量下载支持不好,且对于超过 3GB 的大文件下载会遇到 Chrome 内存墙问题)。于是在刚学 JavaScript 没多久的情况下,踩了无数坑,花了 2 个多月写了这个插件。

合并音频流和视频流部分没有用到 ffmpeg.wasm ,而是自己针对哔哩哔哩的 dash 流,在 AI 帮助下写了专门的合并算法,已经稳定运行了 2 个月没出问题。用 mp4box -info 检查合并后的视频,与 yt-dlp 下载合并后的视频,返回的信息一致。

因为是原生 JavaScript ,所以可以直接用源代码模式运行,除 Bilibili 官方接口外无任何网络请求,数据保存在本地,且可以完整导出已完成任务的 json 数据。

如果大家有时间的话,能否赏脸使用一下呢?这个开源的版本虽然还有很多缺陷,不过核心使用流程上还是很流畅的。

项目地址: https://github.com/weiyunjun/sakidown

如果你有任何问题,欢迎提交 issue 。谢谢你看到这里。

3101 次点击
所在节点    程序员
17 条回复
Shiroka
2 月 11 日
ada65line
2 月 11 日
试用了一下感觉界面和效果都很不错。唯一稍微让我一开始有点困惑的地方是“纯音频”策略里面的画质选项。不过我理解这个只是因为复用了通用 UI 而已,并不会有实际的问题。

另外,这个插件会上 chrome web store 吗?
ZztGqk
2 月 11 日
借楼问一下分发插件只能走 chrome store 是吧,不上的话热更新有什么好方案么?上传 cdn 分发?总不让用户拖拽升级吧?另外现在框架流行走 wxt ?
minami
2 月 11 日
还在 go 还在 go
Saunak
2 月 11 日
有提供一批 url ( csv 或者 json ),批量下载 b 站或者油管的工具么?
weiyunjun
2 月 11 日
@ada65line 不打算上架任何 Web Store ,因为这会增加信任成本(你无法保证开源仓库的代码和 Web Store 部分代码的一致性)。并且,这会显著增加项目接到律师函的风险,这对我来说是没有必要的(我需要更多的反馈来帮助我学习编程)。将 GitHub 作为唯一的分发渠道,有助于保持项目本身,以及我个人的健康。只要哔哩哔哩二创社区还可以持续产出我喜欢的内容,我就有动力维护下去。
weiyunjun
2 月 11 日
@ZztGqk 还真是,版本更新可以选择 git pull 。或者按你说的拖拽升级...
2b5X607vRr3OB6ad
2 月 12 日
支持一下
kandaakihito
2 月 12 日
@Shiroka 兄弟,你动啊😡
aisles1
2 月 12 日
@Shiroka #1 我真求你了
pingxu
2 月 12 日
我是用官方客户端下载然后用自己的脚本合并修改😂
weiyunjun
2 月 12 日
@pingxu 官方客户端指的是 app 缓存吗?我之前研究过,二进制部分在开头塞了几个 0 导致无法直接被一些剪辑软件识别(你可以用 hex editor 查看)。直接通过 api 获取的数据不存在该问题。当然合并的话问题不大,ffmpeg 帮你处理了这些情况。
pingxu
2 月 12 日
@stararenas windows 端的哔哩哔哩,以前白色版能直接下载,后来不给用了,现在是红色版的,确实塞了几个 0 ,不过删掉几个 0 后合并视频和音频文件即可。
henix
2 月 12 日
我之前用的一个 chrome 插件已经被律师函了╮( ̄▽ ̄")╭
goodryb
2 月 13 日
太好了,以前用 yt-dlp 还要捣腾 cookies ,用这个登录后就直接可以下载了。 只不过 b 站的码率实在是压得太低
goodryb
2 月 13 日
@Saunak 你这个需求感觉 yt-dlp 比较适合
weiyunjun
2 月 23 日
@ada65line 现在,当下载视频画面关闭时,偏好画质和偏好编码的下拉选择框会变灰,无法修改(此处不能隐藏偏好画质和偏好编码选项本身,不然会导致更严重的困惑:我之前选好的选项去哪里了)。设置界面已经小幅度重构为声明式结构,后续迭代会很方便。欢迎反馈。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/1192314

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX