Bilibili 视频下载器
Overview
一键将 B 站(及 yt-dlp 支持的其他视频站点)的视频下载并合并为单个 mp4 文件,保存到用户指定目录。
核心下载逻辑封装在 scripts/download_video.py,自动处理 yt-dlp 安装、画质选择、音视频合并。
When to use
- 用户给出 B 站链接并说「下载 / 提取 / 存到 / 保存到 / 帮我拿这个视频」。
- 用户提供了
https://www.bilibili.com/video/BV...或b23.tv短链。 - 用户希望把任意在线视频(YouTube、抖音、微博、知乎等 yt-dlp 支持站点)保存到本地。
Prerequisites
- Python 3.10+:脚本以当前 Python 运行;首次运行会自动
pip install yt-dlp,无需手动准备。 - ffmpeg:用于分离音视频流的合并。绝大多数环境下已自带;若缺失,脚本会在合并阶段报错,
届时按平台安装即可(Windows:
winget install ffmpeg;macOS:brew install ffmpeg; Linux:apt install ffmpeg)。
Workflow
-
确认保存目录:若用户未指定,直接询问「保存到哪个文件夹?」。目录不存在时脚本会自动创建。
-
确认画质(可选):默认
best(最高可用)。可选项:1080/720/480/audio(仅音频)。 -
执行下载脚本:
python <skill_dir>/scripts/download_video.py "<视频URL>" "<保存目录>" [画质] [cookies文件]<skill_dir>为本技能所在目录(即包含此 SKILL.md 的文件夹)。- 画质省略时取
best;cookies文件仅在需要大会员/高码率画质时传入(见下)。
-
校验结果:下载完成后在保存目录确认生成了以视频标题命名的
.mp4文件,并告知用户完整路径。
关键说明
- URL 中的时间戳忽略:B 站链接常带
?t=1145.2之类的播放进度参数,这只是播放位置, 不影响视频本身,直接把整条 URL 传给脚本即可,无需截取。 - 大会员 / 1080P 高码率:未登录时 yt-dlp 只能取到 1080P 普通画质。如需更高画质,从浏览器导出
cookies 后作为第 4 个参数传入(如
cookies.txt),或用--cookies-from-browser(在脚本外手动加参)。 脚本已内置cookies参数支持 cookiefile 路径。 - 分 P 视频:默认
noplaylist,只下载当前单个视频。若用户要整组分 P,去掉脚本中的"noplaylist": True或改为False后重跑。 - 短链 / 番剧 / 会员专享:
b23.tv短链会被 yt-dlp 自动展开;番剧与会员专享内容受版权/鉴权限制, 可能无法下载,遇到时如实告知用户。
Resources
scripts/download_video.py
核心下载脚本。职责:
- 自动检测并安装
yt-dlp(当前 Python 环境)。 - 按画质预设选择格式,下载后合并为 mp4。
- 支持可选 cookies 文件路径以解锁高码率/大会员内容。
- 文件名采用视频原始标题(
%(title)s.%(ext)s),并启用windowsfilenames兼容 Windows 非法字符。
直接运行 python download_video.py 可查看参数说明。
微信扫一扫