Bilibili-Evolved/doc/download-video-extensions.md
2021-04-28 15:04:35 +08:00

1.7 KiB

下载视频按钮扩展

你可以编写自己的脚本来处理 Bilibili Evolved 产生的视频链接, 提供一个或多个额外的按钮到下载视频面板的导出一栏中.

一个基本的模板如下:

// ==UserScript==
// @name          示例
// @version       1.0.0
// @author        Grant Howard
// @match         https://www.bilibili.com/video/*
// @match         https://www.bilibili.com/bangumi/*
// @match         https://www.bilibili.com/medialist/*
// @grant         unsafeWindow
// ==/UserScript==

;(async () => {
  // 固定模板: 因为不敢保证各个脚本的加载顺序如何, 所以操作前如果对象不存在就创建一下.
  if (!unsafeWindow.bilibiliEvolved) {
    unsafeWindow.bilibiliEvolved = {}
  }
  if (!unsafeWindow.bilibiliEvolved.downloadVideoExtensionButtons) {
    unsafeWindow.bilibiliEvolved.downloadVideoExtensionButtons = []
  }
  // 这里添加你的按钮
  unsafeWindow.bilibiliEvolved.downloadVideoExtensionButtons.push({
    // 按钮唯一名称 (key)
    name: 'consoleLog',
    // 按钮显示的名称
    displayName: '示例',
    // [暂未实现, 先都写 false 就行] 是否能处理批量的链接
    batch: false,
    // 点击按钮执行此函数
    action: video => {
      // 参数 video 的类型是 download-video.ts 中的 VideoDownloader 类的实例.
      // 此示例中简单地把链接打印到 console 中, fragments 是视频的分段, 老的 flv 视频或者 dash 格式都会产生分段
      const urls = video.fragments.map(it => it.url).join('\n')
      console.log(urls)
    }
  })
})()

效果如图所示:

image