Skip to content

选择资源

参数界面

使用“常规下载”模式时,会弹出该界面以供选择需要的资源及其参数。

TIP

需至少选择一项资源,否则会在下一步时提示错误。

点击所需资源的按钮,并选择对应参数后,滚动到界面底部,点击 下一步 按钮即可将任务加入等待队列。

关于下载页的说明,请参见 下载与处理

由于哔哩哔哩的 API 限制,请求视频列表时只会返回 AID, CID 等基本信息,不会包含分辨率等参数。

因此不同于 Downkyi 等其他工具的解析模式,本应用在选择了多个项目时,只会按选中的第一个项目进行“取样”,请求其参数并展示。

这样设计的目的,是为了避免在短时间内对所有视频发起大量请求,从而提升速度并降低风控风险。

常见情况

当多个视频的参数不一致时(如 #149),应用的处理逻辑如下:

  • 分辨率 / 音质 / 编码格式等差异

    • 若样本视频有 1080P 分辨率,而接下来的视频没有该分辨率:
      应用会进行比对,如果实际返回数据中不含该分辨率,则会使用其最高分辨率(例如 720P)。

    • 若样本视频有 1080P 分辨率,而接下来的视频有更高分辨率(例如 4K):
      默认情况下,依然会按照选中的分辨率进行下载。

      TIP

      如果需要更改,可在任务等待界面手动点击该视频的分辨率,此时会请求该视频的参数,从而可以选择真实的参数。

  • 其他资源差异

    • 以字幕举例(弹幕、AI 总结等同理),若样本视频有字幕,而接下来的视频没有字幕:
      应用会在请求时检查可用性,对于缺失的资源会自动跳过该任务并跳出提示。

音视频 / 视频 / 音频

此处展示的选项仅适用于 有视频流/音频流的资源

在一般情况下,音视频指同时具有音频流与视频流的视频,视频指无声视频,音频指无画音频。

少数情况下(例如 MP4 流媒体格式),视频也具有内嵌的音频流。

下载视频/音频时,参数将会遵循下文提到的分辨率、编码格式、比特率与流媒体格式。对于音视频也是如此,应用会在处理时自动调用 ffmpeg 合并/混流视频流与音频流为一个独立的视频文件。

杂项

此处包括 字幕AI总结图文/专栏/动态 的相关选项。

对于字幕,右侧会提供下拉栏选择对应的语言。不一定所有的视频都有选中语言的字幕,缺失时会自动跳过。

处理字幕时,会遵循 name.lang.srt 的命名格式,以便于在同时下载视频时可被播放器自动识别并挂载。

AI总结的实际数据来自 哔哩哔哩 AI 小助手(实际为 Shanghai-Bilibili index-20231207 模型),以 Markdown 格式保存:

markdown
# 标题 - BV号

总结文本

## 分段标题 - [00:00](https://www.bilibili.com/video/${BV号}?t=${分段时间})

- 分段标题 - [00:00](https://www.bilibili.com/video/${BV号}?t=${分段时间})

你可以在 /src/services/media/extras.ts:36:1 查看实际处理逻辑 (function getAISummary)。

图文/专栏/动态的内容以 Markdown 格式保存:

TIP

对于包含不可见字符(诸如 \u00A0)会自动转换为兼容的 HTML 转义字符,例如  
一般情况下,会使用 Markdown 原生语法(诸如 ** ##),但在包含 HTML 转义字符的情况下会使用 HTML 标签(诸如<strong></strong>
对于 font-size: 24 的情况,会使用 ##;对于 font-size: 17 的情况,会使用默认正文。

markdown
# 标题

> 作者:[名称](链接)
> 👍 喜欢: xxx | 🪙 投币: xxx | ⭐ 收藏: xxx | 🔁 转发: xxx | 💬 评论: xxx

(若干可能的头图)

(正文)

你可以在 /src/services/media/opus.ts:134:1 查看实际处理逻辑 (function getOpusMarkdown)。

NFO 元数据

支持 合集/剧集刮削单集刮削

NFO 数据结构遵循 KODI 规范,Emby 可正常识别。

顾名思义,合集/剧集刮削可刮削整个番剧/合集/视频的信息,而单集刮削可刮削番剧单集/合集单集/视频分P的信息,视频标题与分P标题会按照选项单独处理 (#78)。

对于合集/剧集刮削,将会一并下载合集/番剧/视频封面,并命名为 poster.jpg 放置在 NFO 同级目录。

弹幕

支持 实时弹幕历史弹幕

对于历史弹幕,右侧会提供控件以选择对应日期。若日期有误或当前无弹幕,哔哩哔哩 API 返回的数据会自动回退至当天的弹幕。

v1.4.0 起,弹幕请求全面迁移至 ProtoBuf 协议接口,应用会自动处理为 XML 格式,以供存档或其他弹幕转换工具处理。

你可以在 /src/services/media/dm.ts:7:1 查看 XML 的实际转换逻辑 (function DanmakuEventToXML)。

应用目前内置 DanmakuFactory Sidecar,可在 设置 -> 策略 -> 转换策略 了解更多。

图像

此处包括 封面海报 等图像。

在请求资源时,会尽力刮削 API 回复中的一切图像资源,并映射为以下文本:

json
"thumb": {
  "name": "图像",
  "pic": "封面",
  "cover": "封面",
  "square_cover": "方形封面",
  "ugc_season_cover": "合集封面",
  "season_cover": "本季封面",
  "season_horizontal_cover_1610": "本季海报 (16:10)",
  "season_horizontal_cover_169": "本季海报 (16:9)",
  "brief": "预览-{num}"
}

其他图像也支持刮削,不过就没有对应的描述文本了。

分辨率

此处展示的选项仅适用于 有视频流的资源

TIP

当选择的分辨率不可用时,应用会自动回退至该视频可用的最高分辨率。

目前支持的分辨率如下:

json
"res": {
  "6": "240P 极速",
  "16": "360P 流畅",
  "32": "480P 标清",
  "64": "720P 准高清",
  "80": "1080P 高清",
  "112": "1080P 高码率",
  "116": "1080P 60帧",
  "120": "4K 超高清",
  "125": "HDR 真彩",
  "126": "杜比视界",
  "127": "8K 超高清"
}

编码格式

此处展示的选项仅适用于 有视频流的资源

TIP

当某一视频无对应编码格式时(例如 8K 视频不提供 H.264 格式),应用会自动遍历可用编码格式并选择最兼容的格式。

目前支持的编码格式如下:

json
"enc": {
  "7": "AVC (H.264)",
  "12": "HEVC (H.265)",
  "13": "AV1"
}

比特率

此处展示的选项仅适用于 有音频流的资源

对于 Hi-Res 无损 与 无损 FLAC:

  • 若只下载音频,在处理时会自动调用 ffmpeg 进行 FLAC 标准化处理。
  • 若同时下载音视频,在处理时会自动调用 ffmpeg 封装为 Matroska Video 容器(.mkv)。MPEG-4 容器不支持储存 FLAC 音频流。

对于杜比全景声:

  • 若只下载音频,在处理时会自动调用 ffmpeg 进行 EAC3 标准化处理。
  • 若同时下载音视频,在处理时会保留并使用 MPEG-4 容器(.mp4)存储。

同时,可配置 设置 -> 策略 -> 转换策略 -> 将音频转换为 MP3 格式 来强制转换音频为 MP3 格式。音视频不受影响。

目前支持的比特率如下:

json
"abr": {
  "30216": "64K",
  "30228": "128K",
  "30232": "132K",
  "30250": "杜比全景声",
  "30251": "Hi-Res 无损",
  "30252": "无损 FLAC",
  "30280": "192K",
  "30380": "320K"
}

流媒体格式

此处展示的选项仅适用于 有视频流/音频流的资源

CAUTION

请勿随意修改,一般情况下保持 DASH 即可。除非你清楚自己正在做什么,否则请勿修改至 MP4。

请参见 关于 DASH / FLV / MP4 了解更多信息。目前支持的格式如下:

json
"fmt": {
  "dash": "DASH 格式",
  "mp4": "MP4 格式",
  "flv": "FLV 格式"
}