从Bilibili下载视频

阅读 15
标签: 其他

为了给两岁的女儿找英语动画片,最终,在B站上找到了如下链接:

https://www.bilibili.com/video/BV1vJc7z4E8s

我想下载下来后,到电视上进行观看。这样,可以更好地管控她的观看时间。

yt-dlp

那要如何下载呢?

之前使用的是you-get,可惜,这个工具已经没法使用了。问ChatGPT,找到了:yt-dlp

从github上下载了yt-dlp_macos,然后,在其目录下执行:

./yt_dlp_macos --version

提示:-sh: ./yt-dlp_macos: Permission denied

因为没有执行权限,给它加上执行权限:

chmod +x yt-dlp_macos

macOS可能会提醒一些安全问题,导致无法使用,在“Securiy & Privacy“中Allow就可以了。

输入:

./yt-dlp_macos -F "https://www.bilibili.com/video/BV1vJc7z4E8s"

提示:412。这是网站的反爬机制。

--cookies-from-browser

网站要求登录、Cookie 或进行反爬限制时,可以使用 --cookies-from-browser

先在浏览器中登录 Bilibili,然后执行:

./yt-dlp_macos --cookies-from-browser chrome -F "https://www.bilibili.com/video/BV1vJc7z4E8s"

会得到如下结果:

[BiliBili] Extracting URL: https://www.bilibili.com/video/BV1vJc7z4E8s?p=6
[BiliBili] 1vJc7z4E8s: Downloading webpage
[BiliBili] BV1vJc7z4E8s: Extracting videos in anthology
[BiliBili] 116062045671497: Extracting chapters
[info] Available formats for BV1vJc7z4E8s_p6:
ID     EXT RESOLUTION FPS │  FILESIZE   TBR PROTO │ VCODEC          VBR ACODEC      ABR
───────────────────────────────────────────────────────────────────────────────────────
30216  m4a audio only     │ ≈ 1.30MiB   66k https │ audio only          mp4a.40.2   66k
30232  m4a audio only     │ ≈ 2.30MiB  116k https │ audio only          mp4a.40.2  116k
30280  m4a audio only     │ ≈ 2.30MiB  116k https │ audio only          mp4a.40.2  116k
30016  mp4 640x360     30 │ ≈ 4.23MiB  214k https │ avc1.640033    214k video only
30011  mp4 640x360     30 │ ≈ 2.48MiB  125k https │ hev1.1.6.L120  125k video only
100022 mp4 640x360     30 │ ≈ 1.95MiB   98k https │ av01.0.08M.08   98k video only
30032  mp4 852x480     30 │ ≈ 6.06MiB  306k https │ avc1.640033    306k video only
30033  mp4 852x480     30 │ ≈ 3.34MiB  169k https │ hev1.1.6.L120  169k video only
100023 mp4 852x480     30 │ ≈ 2.56MiB  129k https │ av01.0.08M.08  129k video only
30064  mp4 1280x720    30 │ ≈10.20MiB  515k https │ avc1.640033    515k video only
30066  mp4 1280x720    30 │ ≈ 5.28MiB  267k https │ hev1.1.6.L120  267k video only
100024 mp4 1280x720    30 │ ≈ 3.90MiB  197k https │ av01.0.08M.08  197k video only
30080  mp4 1920x1080   30 │ ≈19.85MiB 1003k https │ avc1.640033   1003k video only
30077  mp4 1920x1080   30 │ ≈10.60MiB  536k https │ hev1.1.6.L150  536k video only
100026 mp4 1920x1080   30 │ ≈ 7.64MiB  386k https │ av01.0.08M.08  386k video only

如果有很多集,那么每一集会在查询字符串?p=中进行标识。比如,上面的就是第6集的信息。

然后,输入:

./yt-dlp_macos \
  --cookies-from-browser chrome \
  -f "bestvideo[width=1920][height=1080][fps=30]+bestaudio/best[width=1920][height=1080]" \
  --merge-output-format mp4 \
  "https://www.bilibili.com/video/BV1vJc7z4E8s"

就能一口气将30集都下载下来。

注意,下载前一定要先查看下视频支持的格式,比如:

[BiliBili] Extracting URL: https://www.bilibili.com/video/BV1gy4y137Yn?p=2
[BiliBili] 1gy4y137Yn: Downloading webpage
Extracting cookies from chrome
Extracted 3326 cookies from chrome
[BiliBili] BV1gy4y137Yn: Extracting videos in anthology
[BiliBili] 803369823: Extracting chapters
[info] Available formats for BV1gy4y137Yn_p2:
ID    EXT RESOLUTION FPS │  FILESIZE   TBR PROTO │ VCODEC        VBR ACODEC      ABR
────────────────────────────────────────────────────────────────────────────────────
30216 m4a audio only     │ ≈ 1.24MiB   67k https │ audio only        mp4a.40.2   67k
30232 m4a audio only     │ ≈ 2.45MiB  133k https │ audio only        mp4a.40.2  133k
30280 m4a audio only     │ ≈ 3.57MiB  194k https │ audio only        mp4a.40.2  194k
30016 mp4 640x360     25 │ ≈ 4.58MiB  248k https │ avc1.64001E  248k video only
30032 mp4 852x480     25 │ ≈ 9.17MiB  498k https │ avc1.64001F  498k video only
30064 mp4 1280x720    25 │ ≈13.11MiB  712k https │ avc1.640028  712k video only
30080 mp4 1920x1080   25 │ ≈21.03MiB 1142k https │ avc1.640032 1142k video only

上面这个视频最大就只支持25fps的格式,如果使用30fps下载就会报错。

兼容性更好的下载方法

如果只要求“1080P,不限制25/30fps”,使用下面命令:

./yt-dlp_macos --cookies-from-browser chrome \
-f "bestvideo[width=1920][height=1080]+bestaudio/best" \
--merge-output-format mp4 \
-o "%(playlist_index)02d-%(title)s.%(ext)s" \
"https://www.bilibili.com/video/BV1gy4y137Yn"

兼容性会更好。

这样:

  • 有 1080P 30fps → 下载1080P 30fps
  • 只有 1080P 25fps → 下载1080P 25fps
  • 某一集没有1080P → 可以进一步设置降级策略

如果整个URL有39集,那么,这是下载整个39集最合理的方式。

最后编辑于: 2026-09-06

评论(0条)

(必填)
复制成功