# B站视频下载记录

> 各类作品的**最高画质存档**：**每个视频只保留一个文件 —— 该稿可得的最高档**。
> 共 34 个稿件 / 54 个文件 / 约 31G。
>
> **策略（2026-09-25 起）**：只下载并保留最高档位，不再保存兼容用的 1080P 版本。

---

## 一、视频清单

| # | 标题 | BV 号 | 时长 | 实际最高档 | 大小 |
|---|---|---|---|---|---|
| ① | 灵魂洗涤！女生翻唱超火藏风歌曲《难解》… | BV1ENNS6DEcW | 4:12 | `4K60-HEVC` | 191 MiB |
| ② | 一口气唱完『九九八十一』，再听已是曲中人！ | BV11W4y1k7kD | 3:56 | `4K60-HEVC` | 165 MiB |
| ③ | 《童话镇》回忆就像这个画质，一起留在了那年夏天… | BV1cW42197G7 | 4:16 | `4K30-HEVC` | 125 MiB |
| ④ | 弟弟！介猴卖吗？ | BV1aw326mE3x | 2:57 | `4K60-HEVC` | 114 MiB |
| ⑤ | 灵魂净化！翻唱火爆全网的彝族歌曲《大山》… | BV1zSMS6hEQH | 3:38.8 | `4K60-HEVC` | 231 MiB |
| ⑥ | 看完了繁花，必须唱下王菲的《执迷不悔》，年代感拉满！ | BV1Qi4y1i7zk | 4:19.1 | `4K30-HEVC` | 121 MiB |
| ⑦ | 赛尔赛尔！…《这里是神奇的赛尔号》俄语版 | BV1wjyuBzEnj | 3:37.5 | `4K30-HEVC` | 93 MiB |
| ⑧ | 共青团员之歌 | BV1TfaSebE8a | 2:30.8 | `1080P24-AVC` | 62 MiB |
| ⑨ | "那是我日夜思念，深深爱着的人啊" | BV1q7411T7As | 4:39.1 | `1080P30-HEVC` | 23 MiB |
| ⑩ | [中字]偶像大师OFA第2期DLC-箱崎星梨花-化成心跳的音符 | BV1ex411T7T8 | 2:07.9 | `720P30-AVC` | 27 MiB |
| ⑪ | 【春晚鬼畜】赵本山：我就是念诗之王！【改革春风吹满地】 | BV1bW411n7fY | 2:32.0 | `720P30-HEVC` | 9.5 MiB |
| ⑫ | 乔杉神曲合集，忘记原唱 | BV1fs411X7cQ | 12:27.2 | `384P10-AVC`（698×384） | 82.1 MiB |
| ⑬ | **RWBY 预告片四部**（**4 分P**，见下表） | BV1u741147NQ | 合计 18:18 | `1080P30-HEVC` | 合计 161 MiB |
| ⑭ | 【暴露年龄向】外国歌手翻唱的华语歌曲精选-你的童年由我来守护！！ | BV1zs411o7KA | 17:36.8 | `1080P24-HEVC` | 87.7 MiB |
| ⑮ | 【天籁童声】法语翻唱周华健《朋友》—Amis（理查德克莱德曼伴奏） | BV1Ss411o7p3 | 4:23.3 | `240P15-HEVC`（320×240） | 8.9 MiB |
| ⑯ | 【金坷垃】2012金坷垃收获祭 | BV18x411F7g9 | 31:51.6 | `480P25-AVC`（640×480） | 135.0 MiB |
| ⑰ | **全面战争：三国 最全中文CG宣传片**（**18 分P**） | BV16o4y1R76f | 合计 45:41 | `1080P30-HEVC/AVC` | 合计 541.0 MiB |
| ⑱ | **环太平洋**（电影·正片） | ep316163 | 2:11:18 | `4K24-HEVC` | 5.18 GiB |
| ⑲ | **飞驰人生1**（电影·正片，2019） | ep328165 | 1:38:10 | `4K24-HEVC` | 3.43 GiB |
| ⑳ | **飞驰人生2**（电影·正片） | ep820668 | 2:01:00 | `4K24-HEVC`（3840×1608 宽画幅） | 4.93 GiB |
| ㉑ | **飞驰人生3**（电影·正片） | ep3642916 | 2:05:50 | `4K25-HEVC`（3840×1612 宽画幅） | 4.97 GiB |
| ㉒ | **末日之战**（电影·正片，World War Z） | ep318890 | 2:03:04 | `1080P24-HEVC`（1920×800，B站无 4K） | 552 MiB |
| ㉓ | **落凡尘**（动画电影，普通话 + 粤语两版） | ep1241043 / ep1413081 | 各 1:58:21 | `4K24-HEVC` | 各 3.25 GiB |
| ㉔ | 《一直很安静》-阿桑 | BV1EyY36mEmD | 4:07 | `4K30-HEVC` | 340 MiB |
| ㉕ | 起床歌｜健康歌｜宝宝喜欢的儿歌三百首 | BV1g9Et61Ea6 | 18:59 | `1080P30-HEVC` | 112 MiB |
| ㉖ | 天线宝宝唱歌合集｜洗手歌……经典儿歌三百首 | BV15n7r6QEf2 | 19:13 | `1080P30-HEVC` | 117 MiB |
| ㉗ | 后面的戏腔好难唱啊！（可楼·乱世书等） | BV1y89CBFEKx | 6:11 | `4K30-AV1`（4:3 画幅 2880×2160） | 94 MiB |

### ⑬ 合辑的 4 个分P（BV1u741147NQ · 1080P30 · 带字幕）

| 分P | 标题 | 时长 | 档位 | 大小 |
|---|---|---|---|---|
| P1 | BRB 红 (Red) | 3:29.0 | `1080P30-HEVC` | 24.0 MiB |
| P2 | BRB 白 (White) | 3:47.1 | `1080P30-HEVC` | 51.1 MiB |
| P3 | BRB 黑 (Black) | 5:17.6 | `1080P30-HEVC` | 32.8 MiB |
| P4 | BRB 黄 (Yellow) | 5:44.1 | `1080P30-HEVC` | 53.1 MiB |

> **⚠️ 换源记录（2026-09-25）**：最初下的是 BV19s411Z7Lg《RWBY - 四部合辑 【高清】》，
> 但那份**全档位只有 6–7 fps**（720P），播放严重卡顿。已删除，改用 BV1u741147NQ 替换。
>
> **为什么会有 6fps 的版本**：逐帧查时间戳发现，该稿的帧都落在 **1/24 秒的网格**上，但**每 4 格才有一帧**
> —— 即**原片是 24fps，B站二压时丢弃了 75% 的帧**（早年动画区常见）。所以"当年看着流畅"的记忆没错，
> 是后来这份稿件被压坏了。B站网页端播放同样卡，与下载无关。

> ⚠️ 该合辑帧率只有 **6–7 fps**（实测总帧数 2065 / 344s）——这是早年 B站对**动画区做二压**的特征，
> 不是下载问题；稿件全站最高也只有 720P。分P之间帧率略有差异（P3 是 7fps）。

**为什么档位参差不齐**：脚本取的是**该稿件实际可得的最高档**，而上限由**上传者投的源**决定。
⑧⑨⑩ 三个视频**本身就封顶**在 1080P / 720P（⑩ 是 2017 年的老稿，全站只有 360P/480P/720P 且仅 AVC），
并非权限不足 —— 已用 `--list-formats` 逐个核实。

> 所有文件均为 MP4 容器、AAC 立体声、已内嵌封面缩略图，音轨取最高档 `30280`。

### 编码说明：为什么 4K 档选 HEVC

同分辨率/帧率时脚本优先 **H.265（HEVC）**：它以约 **1/3–1/2 的码率**达到与 H.264 相当的画质
（例：① 的 4K AVC 是 13.1 Mbps / 394 MiB，HEVC 是 6.1 Mbps / 190 MiB）。
⚠️ 代价是**兼容性**：手机与本地播放器（VLC/mpv/PotPlayer）都没问题，
但**部分浏览器（尤其 Linux 下的 Chrome/Firefox）无法直接播 HEVC**，下载页在线预览可能失败 —— 属正常现象，下载到本地看即可。

---

## 二、4K 是真的 4K 吗？（逐片实测）

方法：抽同一时间点，把 4K 帧降采样到 1080P 与原生 1080P 帧比 PSNR，并做 1:1 像素目视对比。
**判据：若 4K 只是插值放大，PSNR 应高到 40+ dB（两者几乎一致）。**

| 视频 | PSNR | 目视结论 |
|---|---|---|
| ①《难解》 | 32.89 dB | ✅ 真实 4K：睫毛、发丝、耳坠串珠纹理清晰可辨 |
| ③《童话镇》 | 34.84 dB | ⚠️ 有真实细节但幅度小（**源素材本身就软**，标题自嘲"回忆就像这个画质"） |
| ④《弟弟！介猴卖吗？》 | 36.88 dB | ✅ 真实 4K：牙齿、皮肤纹理、发丝清晰 |
| ⑤《大山》 | 32.78 dB | ✅ 真实 4K：睫毛、发丝、牙齿边缘、耳坠串珠清晰 |

> ⚠️ **PSNR 不能跨片比高低**：它受画面内容与编码策略影响极大，只能判断"是否接近纯插值"
> （越接近 40+ dB 越可疑），不能拿来横向排名画质。


---

## 三、账号与权限

| 档位 | 权限要求 | 游客可得 |
|---|---|---|
| 1080P 30 (qn=80) | 无 | ✅ |
| 1080P 高码率 (qn=112) | **大会员** | ❌ |
| 1080P 60 (qn=116) | **大会员** | ❌ |
| 4K (qn=120) | **大会员** | ❌ |

- 实测：**游客身份用 `qn=120` 请求 4K，服务端直接降级到 720P** —— 权限校验在服务端，改参数骗不过去。
- 实测：**普通账号登录也没有提升**。①②④ 不提供 qn=112，116/120 均为大会员专属。
- 账号：**中流击水一万里**（Lv5 · 年度大会员 · 到期 2027-08-24）。

### 登录态（cookies）

`~/Downloads/bili-cookies.txt`（权限 **600**，含 SESSDATA 等登录凭据，**勿外传**）。
失效后删掉文件、重新扫码即可。扫码工具：`~/Downloads/bili-qr-login.py`。

```bash
cd ~/Downloads && env -u ALL_PROXY -u all_proxy -u HTTP_PROXY -u http_proxy \
  -u HTTPS_PROXY -u https_proxy python3 -u bili-qr-login.py
```

**踩过的两个坑（已在脚本 v2 修复）**：

1. B站已改为 **ticket 换 cookie**：回调 URL 只给 `?ticket=xxx`，凭据不再放在查询串里，
   必须再访问一次该 URL 并从 **Set-Cookie 头**里取。且 **ticket 是一次性的**，错过无法补救。
2. `http.cookiejar` **会拒绝跨域 Set-Cookie**：响应来自 `passport.biligame.com`，
   而 cookie 的 `Domain=.bilibili.com` 被判为不匹配而丢弃 → 改为手工解析原始 Set-Cookie 头。

---

## 四、下载方式

### 4.1 批量脚本（推荐）

```bash
bash ~/Downloads/bili-dl.sh <URL或BV号> [<URL或BV号> ...]   # 下载（只取最高档）
bash ~/Downloads/bili-dl.sh --prune                          # 整理：每个视频只留最高档
```

脚本自动完成：**去重**（已有则跳过，重复粘贴安全）→ 下载最高档 → 实测反推画质标签命名
→ 校验时长与尾部可解码性 → **删除同视频的低档文件**。

- **多分P合辑自动逐P下载**，每个分P单独去重、单独命名（文件名带 `[P1]`…`[Pn]`）
- `BILI_FORCE=1` 强制重下；`BILI_DLDIR=<目录>` 覆盖输出位置（测试用）
- **最高档的判定**：`-f "bv*+ba/b" -S "res,fps,vcodec:h265,br"`
  —— 先比分辨率，再比帧率，同级时才优先 H.265，**不会出现"为了 HEVC 而降分辨率"**

**脚本 bug 记录（都是实战踩出来的）**：

| # | 症状 | 根因 | 修法 |
|---|---|---|---|
| 1 | HEVC 任务必然失败，AVC 正常 | 用 `\|` 作任务字段分隔符，而 HEVC 格式串的正则 `^(hvc\|hev)` **自带 `\|`**，格式串被劈开 | 改为单任务；教训：格式串里任何自定义分隔符都可能撞车 |
| 2 | 标签成了 `h264P1-60/1`，`mv` 报"没有那个文件" | `ffprobe -of csv` 字段顺序是**流自身顺序**而非 `-show_entries` 书写顺序，按位置取值错位；fps 值 `60/1` 里的 `/` 又被当路径分隔符 | 改 `-of default=noprint_wrappers=1` **按键名解析** |
| 3 | 标题含 `/` 的视频 `mv` 失败，**且临时文件也被删掉**，整次下载白跑 | 标题里的 `/` 被当路径分隔符；失败后仍执行了 `rm -f .tmp-*` | ① `safe_title=${title//\//-}` 净化；② **只有 mv 成功才清理临时文件** |
| 4 | 多分P合辑只下到 P1，且分P互相覆盖 | 所有分P**共用同一 BV 号**：按 BV 去重会把 P2..Pn 全跳过；临时文件名相同会互相覆盖 | 逐P下载 + 临时名带 `-P<n>` + 文件名带 `[P<n>]` + 按该标记去重 |
| 5 | 多分P文件里的 BV 标记与去重键对不上，**每次运行都会重复下载** | 多分P时 yt-dlp 的 `%(id)s` 是 `BV..._p1` 这种带分P后缀的值，不是纯 BV 号 | 命名统一用解析出的 `$bv`，不用 `%(id)s` |

### 4.2 手工命令

工具：`~/Downloads/ytdlp/yt-dlp`（standalone 二进制 v2026.08.19；本机 python3 无 pip 故用独立版）

```bash
YT=~/Downloads/ytdlp/yt-dlp
CK=~/Downloads/bili-cookies.txt
strip() { env -u ALL_PROXY -u all_proxy -u HTTP_PROXY -u http_proxy -u HTTPS_PROXY -u https_proxy "$@"; }

strip "$YT" --cookies "$CK" --no-warnings \
  -f "bv*+ba/b" -S "res,fps,vcodec:h265,br" \
  --merge-output-format mp4 --embed-thumbnail --embed-metadata --add-metadata \
  -o "%(title)s [%(id)s].%(ext)s" "<视频URL>"
```

> ⚠️ 三个要点：
> **① 下载 B 站不要走代理**（国内站，代理反而绕远且可能触发地区限制），故用 `strip()` 剥掉代理环境变量；
> 但 `yt-dlp` 二进制本身是从 GitHub 下的，那一步走了 v2ray 代理（`127.0.0.1:10809`）。
> **② 4K 档 CDN 会限速**：① 的 4K 实测被压到 ~970 KB/s（耗时 3 分 13 秒），
> 其余多在 12–24 MB/s —— 波动很大，属正常现象，重试即可。
> **③ 若浏览器预览失败**，多半是 HEVC 不被支持，不是文件损坏（见第一节编码说明）。

---

## 五、源信息

| # | BV 号 | 发布日期 | 时长 | 稿件最高档 |
|---|---|---|---|---|
| ① | BV1ENNS6DEcW | 2026-07-14 | 4:12 | 4K60 |
| ② | BV11W4y1k7kD | 2022-06-19 | 3:56 | 4K60 |
| ③ | BV1cW42197G7 | 2024-07-27 | 4:16 | 4K30 |
| ④ | BV1aw326mE3x | 2026-07-29 | 2:57 | 4K60 |
| ⑤ | BV1zSMS6hEQH | 2026-08-06 | 3:38.8 | 4K60 |
| ⑥ | BV1Qi4y1i7zk | — | 4:19.1 | 4K30 |
| ⑦ | BV1wjyuBzEnj | — | 3:37.5 | 4K30 |
| ⑧ | BV1TfaSebE8a | — | 2:30.8 | 1080P24 |
| ⑨ | BV1q7411T7As | — | 4:39.1 | 1080P30 |
| ⑩ | BV1ex411T7T8 | 2017 年（老稿） | 2:07.9 | 720P30 |
| ⑪ | BV1bW411n7fY | 2018 年（春晚鬼畜） | 2:32.0 | 720P30 |
| ⑫ | BV1fs411X7cQ | 早年鬼畜合集 | 12:27.2 | 698×384 / 10fps |

源地址：`https://www.bilibili.com/video/<BV号>/`

> ①②③④⑤ 为 UP 主**咻咻满**作品；⑥–⑩ 为其他来源（含王菲《执迷不悔》翻唱、赛尔号俄语版、
> 共青团员之歌、偶像大师 OFA DLC 曲目等）。

---

## 六、附：如需 4K AVC（H.264）档

①–⑦ 多数另有 **4K AVC** 档（`100035`，约 10–13 Mbps，体积约为 HEVC 档的 2–3 倍）。
若你的设备**不支持 HEVC 但需要 4K**，把格式选择器换成：

```
-f "bv*[height=2160][vcodec^=avc1]+ba[ext=m4a]/bv*[height=2160]+ba"
```

即可（标签建议改 `[4K-AVC]`）。
