从Bilibili下载视频
阅读 16
为了给两岁的女儿找英语动画片,最终,在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_macosmacOS可能会提醒一些安全问题,导致无法使用,在“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