0%

自动识别 B 站排行榜类视频中的 av 号

B 站有个非官方的周刊排行榜做的很好,到现在已经有 362 期持续 7 年了。曾经有段时间视频中的视频编号可以点击跳转到对应的视频,目测是通过高级弹幕实现的,但不知为何后来又没了。为了让自己在看到感兴趣的视频时,免去从全屏状态退出然后手输视频编号的麻烦,写了一个油猴脚本自动提取视频编号,然后在后台打开视频或者在页面上插入视频链接,以便稍后观看。

原理

通过 canvas 截取 H5 视频中某时刻的部分内容,然后借助 Tesseract 这个 OCR 库来识别图片中的视频编号。

使用说明

  1. 安装浏览器扩展 Tampermonkey
  2. 安装本工具脚本,点击安装
  3. 打开一个榜单类视频,比如周刊排行榜
  4. 播放视频,按下 Alt+W 键后使用鼠标左键拖拽放手选定视频编号所在的区域(只有当编号所在位置发生变化才需要重新选定区域)
  5. 确认选定的区域包含视频编号(以弹出图片的形式供用户确认)
  6. 回到视频,按下 Alt+Q 键开始识别(初次使用需等待识别库加载数据,大小为 9m,加载进度会显示在浏览器标签页上)
  7. 识别成功后会在后台新标签页打开编号对应的视频,或者在当前页插入链接,或者在评论框插入视频编号标题

注意事项

  • 必须使用 HTML5 播放器
  • 安装完脚本后 Tampermonkey 会自动下载外部依赖的脚本,大小 2.78m,所以如果按快捷键没反应请等等然后刷新页面重试
  • 首次使用必须下载 9m 大小的 OCR 数据,时间可能有点久(我能怎么办,我也很绝望啊),加载进度会显示在浏览器标签页上
  • 选择区域和识别的快捷键可定制
  • 识别成功后执行的操作可开关

更新记录

  • 2017年6月20日更新到 v0.2
    1. 本脚本不支持 Flash 播放器,使用时检测并提示换 HTML5 播放器
    2. 在浏览器标签显示识别进度
  • 2017年12月25日更新到 v0.3
    1. 因新版 Chrome 浏览器不再支持 dataURI 弹窗,所以改为在本页弹出确认截图
  • 2019年10月17日更新到 v0.4
    1. 修复因为 Tesseract 更新而不可用的问题
    2. 修复识别成功后获取视频标题失败的问题(番剧类视频依然无法获取标题)
    3. 设置识别区域的快捷键从 Alt+A 改为 Alt+Z