选择资源
参数界面
使用“常规下载”模式时,会弹出该界面以供选择需要的资源及其参数。
TIP
需至少选择一项资源,否则会在下一步时提示错误。
点击所需资源的按钮,并选择对应参数后,滚动到界面底部,点击 下一步 按钮即可将任务加入等待队列。
关于下载页的说明,请参见 下载与处理。
由于哔哩哔哩的 API 限制,请求视频列表时只会返回 AID, CID 等基本信息,不会包含分辨率等参数。
因此不同于 Downkyi 等其他工具的解析模式,本应用在选择了多个项目时,只会按选中的第一个项目进行“取样”,请求其参数并展示。
这样设计的目的,是为了避免在短时间内对所有视频发起大量请求,从而提升速度并降低风控风险。
常见情况
当多个视频的参数不一致时(如 #149),应用的处理逻辑如下:
分辨率 / 音质 / 编码格式等差异
若样本视频有 1080P 分辨率,而接下来的视频没有该分辨率:
应用会进行比对,如果实际返回数据中不含该分辨率,则会使用其最高分辨率(例如 720P)。若样本视频有 1080P 分辨率,而接下来的视频有更高分辨率(例如 4K):
默认情况下,依然会按照选中的分辨率进行下载。TIP
如果需要更改,可在任务等待界面手动点击该视频的分辨率,此时会请求该视频的参数,从而可以选择真实的参数。
其他资源差异
- 以字幕举例(弹幕、AI 总结等同理),若样本视频有字幕,而接下来的视频没有字幕:
应用会在请求时检查可用性,对于缺失的资源会自动跳过该任务并跳出提示。
- 以字幕举例(弹幕、AI 总结等同理),若样本视频有字幕,而接下来的视频没有字幕:
音视频 / 视频 / 音频
此处展示的选项仅适用于 有视频流/音频流的资源。
在一般情况下,音视频指同时具有音频流与视频流的视频,视频指无声视频,音频指无画音频。
少数情况下(例如 MP4
流媒体格式),视频也具有内嵌的音频流。
下载视频/音频时,参数将会遵循下文提到的分辨率、编码格式、比特率与流媒体格式。对于音视频也是如此,应用会在处理时自动调用 ffmpeg
合并/混流视频流与音频流为一个独立的视频文件。
杂项
此处包括 字幕、 AI总结 与 图文/专栏/动态 的相关选项。
对于字幕,右侧会提供下拉栏选择对应的语言。不一定所有的视频都有选中语言的字幕,缺失时会自动跳过。
处理字幕时,会遵循 name.lang.srt
的命名格式,以便于在同时下载视频时可被播放器自动识别并挂载。
AI总结的实际数据来自 哔哩哔哩 AI 小助手(实际为 Shanghai-Bilibili index-20231207
模型),以 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
的情况,会使用默认正文。
# 标题
> 作者:[名称](链接)
> 👍 喜欢: 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 回复中的一切图像资源,并映射为以下文本:
"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
当选择的分辨率不可用时,应用会自动回退至该视频可用的最高分辨率。
目前支持的分辨率如下:
"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 格式),应用会自动遍历可用编码格式并选择最兼容的格式。
目前支持的编码格式如下:
"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 格式。音视频不受影响。
目前支持的比特率如下:
"abr": {
"30216": "64K",
"30228": "128K",
"30232": "132K",
"30250": "杜比全景声",
"30251": "Hi-Res 无损",
"30252": "无损 FLAC",
"30280": "192K",
"30380": "320K"
}
流媒体格式
此处展示的选项仅适用于 有视频流/音频流的资源。
CAUTION
请勿随意修改,一般情况下保持 DASH 即可。除非你清楚自己正在做什么,否则请勿修改至 MP4。
请参见 关于 DASH / FLV / MP4 了解更多信息。目前支持的格式如下:
"fmt": {
"dash": "DASH 格式",
"mp4": "MP4 格式",
"flv": "FLV 格式"
}