🏠 Home 

哔哩哔哩(B站|Bilibili)收藏夹Fix (cerenkov修改版)

修复 哔哩哔哩(www.bilibili.com) 失效的视频收藏、和被up主隐藏的视频。(可查看av号、简介、标题、封面、数据等)


Install this script?
Author
cerenkov
Daily installs
8
Total installs
7,237
Ratings
39 1 0
Version
1.4.4
Created
2024-03-07
Updated
2025-03-20
Size
71.2 KB
License
GPL-3.0
Applies to

哔哩哔哩(B站|Bilibili)收藏夹Fix (cerenkov修改版)


篡改猴(Tampermonkey)脚本,用于修复B站失效收藏、以及被up主隐藏(“仅自己可见”)的视频。

代码托管

Greasyfork页面       GitHub仓库

Chrome 系浏览器注意

由于其 Manifest V3 更新的要求,必须启用开发者模式/开发人员模式才能正常运行篡改猴(Tampermonkey)扩展,影响范围 Chrome / Edge

功能

  • 从 biliplus、 jijidown、 xbeibeix、以及 B站官方非鉴权API、 B站官方鉴权API 共五个渠道获取失效视频的信息进行修复,如果还是查不到那就没办法了
    • 标题:先查询第三方网站的信息缓存,如果没有,那么就查询 B站非鉴权API(只能查公开收藏夹)里的分P信息,如果只有1P,合理推测其标题(视频文件投稿上传时的标题)就是视频标题
      • 如果私密收藏夹中的失效视频依然未能恢复(查不到标题),请尝试临时更改成公开收藏夹再试一次,等脚本将查到的信息进行本地缓存了再改回私密即可
    • 封面:按顺序查询第三方网站的信息缓存,但即便有返回结果,如果返回的图片链接已失效(按照url是否包含“bfs/archive”字段判断),也会继续再查询下一家第三方网站
    • UP主:如果 B站API 返回的 UP主名称是“账号已注销”,那么就用从第三方网站查到的账号名替换(只是第三方网站缓存时的账号名,不保证能获取到UP主在注销前最后改的名字)
    • 简介:从 B站非鉴权API(只能查公开收藏夹)和 B站鉴权API(能查私密收藏夹)获取,100% 恢复
    • 分P标题:通常从 B站非鉴权API(只能查公开收藏夹)获取,但有时返回的数据残缺,则会用 biliplus 的细化 API 再查询一次
  • 恢复被隐藏的视频(由于被该UP主设置为“仅自己可见”),让收藏夹不再“缺一角”
    • 由于该信息只能从 B站非鉴权API 获取,所以只能恢复公开收藏夹中的隐藏视频,如果想查私密收藏夹请先临时更改成公开
  • 鼠标悬停时,会弹出浮块展示AV、BV号、UP主、简介、分区、时长、发布、收藏时间、分P标题、收藏数、弹幕数、失效原因等信息
    • 点击视频封面可以复制全部稿件信息到剪贴板
  • 如果缓存信息来自 biliplus、 jijidown 或 xbeibeix ,点击视频标题可以跳转过去
  • 点击视频收藏右下角功能菜单,可以复制AV、BV号、稿件信息、导出/导入缓存、查看封面图片、跳转UP主空间(B站新UI界面中点击UP名字也可跳转空间)
    • 由于B站新界面是动态生成操作菜单,所以鼠标要多等0.5秒,才能保证将新菜单项添加到操作菜单上
  • 脚本查询过的结果会本地缓存起来,储存在篡改猴(Tampermonkey)中,已查询过的视频无需再次查询,关闭浏览器也不丢失,并且可按需导出/导入,以便另作备份
    • 如果想清空本地缓存,只需在菜单询问“是否导出”时选择取消,在询问“粘贴导入”时输入“ {} ”确定即可
    • 导入是覆盖性的,即把输入的内容完全替换此前的整个本地缓存
      • 如果不想覆盖、想增量导入,可以在前面加一个加号“ + ”,如“ +{"10086": {......}, "######": {......}} ”,便仅仅导入 avid 10086 和 ###### 两条视频的缓存
      • 用增量导入可以针对性地覆盖或清除特定视频的缓存,如“ +{"10086": {}} ”,便使得 avid 10086 的视频本地缓存被空数据覆盖,而不影响其他
    • 如果输入错误格式的字符串,有可能会导入成功,但脚本运行出错
  • 即使更改排序方式、更改限定分区,以及在当前/全部收藏夹中搜索,脚本都能正常工作了
    • 在全部收藏夹中搜索时,可能有些视频实际位于私密收藏夹中,所以假如它同时也是被隐藏(“仅自己可见”)视频,便无法恢复,即搜索结果仍有可能会“缺一角”
  • 在B站旧界面中,鼠标悬停时,封面之上会展示播放、收藏、UP主、投稿四项信息(B站新界面已不再有这个)
    • 此功能仅为展示网页上被隐藏起来的内容,B站网页(旧界面)本来就有

声明

代码 fork 自 Mr-Po/bilibili-favorites-fix ( Greasyfork 脚本哔哩哔哩(B站|Bilibili)收藏夹Fix v1.2.1 ),因为该脚本在 2023 年 11 月或更早前就有小部分功能失效需要更新修复。历史讨论

本脚本的核心功能依赖于第三方网站 biliplus.com jijidown.com xbeibeix.com 的信息缓存,非常感谢 biliplus jijidown xbeibeix 长久以来的付出。

类似脚本

友情链接(?):哔哩哔哩(B站|Bilibili)收藏夹Fix (备份视频信息)

画面展示

脚本更新至 v1.4.4 而展示截图暂未更新,望见谅

  • 例:成功修复标题、封面及简介信息

  • 例:B站新界面,与旧界面有些许差异

  • 例:成功修复标题,但封面失败,因为查出来的图片网址已不可访问

  • 例:查不到标题/封面信息,只有简介信息等可以展示

  • 例:当不止一个分P时,展示子P标题(仅当标题/封面修复成功时才能获取到该信息)

  • 例:点击右下角操作菜单,可以复制AV、BV号、稿件信息、跳转UP主空间、切换简化/深度查询、导出/导入缓存

  • 例:更改排序方式,仍可正常工作

  • 例:更改限定分区,仍可正常工作

  • 例:在当前/全部收藏夹中搜索,搜索结果页仍可正常工作

Changelog

v1.4.4 - 2025.03.20

  • 修复
    • 适配B站新UI界面在宽屏(超过1760px)时的布局(6乘6)

v1.4.3 - 2025.03.20

  • 新增
    • 加入在 xbeibeix.com 查询的功能
  • 优化
    • jijidown 查询返回“请求过快”时,从自动延时重试改成手动点击重试,合理减轻服务器负担,并复用重试函数
    • 优化 recoverHiddenItems() 中调用 startBiliplusQuery() 的方式
    • 优化代码可读性,优化用户互动提示

v1.4.2 - 2025.03.17

  • 修复
    • 弃用 jQuery.data() ,规范化 jQuery.on("click") ,以阻止网页更新时内存泄漏
  • 变更
    • 简化功能菜单的操作体验,油猴的 GM_notification 通知似乎有点太拖了,整简单点

v1.4.1 - 2025.03.17

  • 修复
    • 修复因网络故障中断时,视频缓存仍未建立导致的对象访问错误( queryFailed 函数)
    • 补上获取默认收藏夹 fid 时应有的 mid
    • 修复在全部收藏夹中搜索时调用API不相符的问题,使得搜索结果页面能正确地修复失效视频,但是由于B站两个API返回的搜索结果顺序不一致,所以依然无法保证完整恢复隐藏视频,如果搜索结果第一页还是缺几格,那么往后翻第二页说不定就会出现所缺的那几个隐藏视频,只是由于API获取信息不全导致它被挪到了后一页
  • 新增
    • 对于up主名称是“账号已注销”的,将查询得到的up主名字替换上去并缓存起来
    • 增量导入功能:在使用导入功能时,在字符串{...}的开头加上+号前缀,则将其内容以视频avid为单位增量填入缓存中,而不是把整个 JSON 对象替换到缓存
  • 优化
    • 通过并列 img 元素,使得当查询 biliplus 得到的封面图链接失效、而 first_frame 链接仍有效的时候,浏览器自动隐藏失效的封面图、展示可用的 first_frame 图,而当点击“查看封面图片”时,会将封面图和首帧截图一起打开
    • 优化代码,减少逻辑冗余,增加可读性
  • 变更
    • 点击封面的效果改为复制稿件信息

v1.4.0 - 2025.03.14

  • 修复
    • 当 url 不含 fid 且网页源码亦不含默认收藏夹的 fid 时,查询简介等信息会出错,需要另发网络请求才能获取默认收藏夹的 fid
  • 新增
    • 对于被隐藏的视频(表现为收藏夹缺了一格,而不是显示“已失效视频”),亦即被up主设为“仅自己可见”的视频(而不是被B站删除/退回),如果是在公开收藏夹,现在能够恢复了,如果是私密收藏夹就请手动改成公开收藏夹才能恢复
    • 使用 Tampermonkey 的存储来保存缓存,不再需要在刷新/关闭标签页前手动导出缓存保存查询进度
    • 除了在 biliplus.com 查询信息以外,还加入在 jijidown.com 查询失效视频信息,从而能找回更多的标题/封面信息
    • 新增操作菜单:新标签页查看封面图片、查看视频首帧截图、清除本视频的缓存信息
  • 优化
    • 鼠标悬停浮块增加点赞数、投币数、回复数、视频分区信息
    • 混合使用B站的新API和旧API:对于公开收藏夹将优先查询旧API、获取潜在的藏在分P内的视频标题、并保存在缓存中,同时将分P第一P标题视作视频标题候选,从而能找回更多视频的标题。(对于私密收藏夹则查询新API,和之前一样)
    • 对于B站API和 biliplus 都返回信息的情况,完善取舍逻辑,refactor 处理流程,进一步大幅度简化和重写 biliplus 的查询流程,根治以前经常“请求过快”的问题
    • 即便查询 biliplus 返回了信息,但返回的封面图网址失效,那仍然会再查询 jijidown ,判断并获取真正有用的封面图
    • 用 MutationObserver 按需执行来取代以前的 setInterval 定时循环执行
  • 变更
    • 由于B站新UI的渲染bug已被修复,所以移除临时补丁 stripTitleFirefox
    • 由于重写 biliplus 和 jijidown 的查询流程,不再保留之前的(没多大作用的)简化查询/深度查询

v1.3.1 - 2024.12.16

  • 修复
    • 360极速浏览器会获取不到 GM_info.userAgentData.brands

v1.3.0 - 2024.12.10

  • 修复
    • 多余的网址正则匹配导致脚本有时不运行
    • 完善网络查询过程中的意外错误处理,让脚本不再卡在Loading...上,且控制台和视频标题都提供更详细的错误信息
    • B站新界面在Firefox上的渲染有毛病,视频标题行太长的话,鼠标悬停时菜单按钮不出现,为保证菜单按钮在失效视频上出现只好临时应对B站新界面的bug,等B站修好再移除补丁
  • 新增
    • 查询结果缓存,在收藏界翻页、切换收藏夹时,已查询过的视频无需再次查询,并且可以导出/导入保存查询进度
    • 在更改排序方式、更改限定分区,以及在当前/全部收藏夹中搜索时,脚本都能正常工作了(除了先更改排序方式后搜索,在搜索结果界面无法获取排序方式信息)
  • 优化
    • 简化查询逻辑,将旧的查询流程改叫深度查询,深度查询花时间而作用不大,但保留切换功能
    • 将 biliplus 查询到的标题和子P标题信息同步给鼠标悬停浮块,方便一次性复制
    • 鼠标悬停浮块增加时长、失效原因信息
    • 代码 refactor ,增加可读性

v1.2.1.2 - 2024.12.07

  • 修复
    • B站推出新界面,适配B站新UI

v1.2.1.1 - 2024.03.07

  • 修复
    • 原脚本旧B站端口只能用于公开收藏夹,更新B站端口字段,恢复获取所有收藏夹视频的简介等信息
    • 旧BV号转AV号算法失效,更新算法,使用了 bilibili-API-collect 里的代码
    • B站将封面图的img元素放在了picture元素内、与另两个source元素并列,浏览器优先显示source元素,导致新替换上的封面图没显示出来,删除多余的source元素恢复封面展示
  • 新增
    • 右下角操作菜单增加复制BV号
    • 右下角操作菜单增加一键跳转UP主空间
  • 优化
    • 增加鼠标悬停时浮块的展示信息
    • 去掉了原脚本先判断封面图链接有效性后才替换图片的步骤,直接替换新图片链接,反正不会变得更糟

v1.2.1

  • Mr-Po 的原版脚本