B站/视频网站下载器(yt-dlp):让 Agent 按规范把在线视频落到本地

前言

在对话里丢一条 B 站 BV 链接或 YouTube 地址,希望 Agent 直接帮你保存成本地 MP4,常见做法是临时查 yt-dlp 参数、自己拼命令,或者让模型「猜」一套下载流程。步骤多、画质和 cookies 也容易漏。下面介绍 SkillHub 上的社区技能 B站/视频网站下载器(yt-dlp)(坐标 @user_3ff3c268/bilibili-video-downloader-pro,当前版本 1.2.0):把触发条件、目录确认、画质选项和脚本调用写进 SKILL.md,Agent 在「下载 / 提取 / 归档」类需求下按同一套流程执行。

这是什么

一句话定位:基于 yt-dlp 的 Agent Skill,用于把 Bilibili 及 yt-dlp 支持的其他站点视频下载、合并为单个 mp4,保存到用户指定目录。

  • 出品与来源:SkillHub 社区发布(source: community),发布者 user_3ff3c268;页面展示作者为 WeituoAI。
  • 分类:data-analysis。
  • API Key:标签标明 requires_api_key=false,无需额外密钥即可按文档使用。
  • 官方入口:SkillHub 技能页;API 坐标见 api.skillhub.cn。

与「每次口头描述 yt-dlp」相比,本技能把 何时启用、前置依赖、工作流和 B 站特有说明 固化在技能包里,减少临场查文档的成本。

核心功能

以下能力均来自技能简介与包内 SKILL.md,未超出已核实范围:

  1. 多站点:明确覆盖 B 站(bilibili.com 的 BV/av、b23.tv 短链),以及 YouTube、抖音等 yt-dlp 支持的站点(文档中还举例微博、知乎等)。
  2. 落盘形态:下载后合并为 单个 mp4,文件名采用视频标题(%(title)s.%(ext)s),并启用 windowsfilenames 以兼容 Windows 非法字符。
  3. 画质:默认 best;可选 1080 / 720 / 480 / audio(仅音频)。
  4. 依赖处理:文档说明核心逻辑在 scripts/download_video.py,首次运行会在当前 Python 环境自动 pip install yt-dlp;合并依赖 ffmpeg(缺失时合并阶段报错,需按平台自行安装)。
  5. 登录态:支持通过 cookies 文件解锁大会员/高码率等(未登录时文档说明仅能取到 1080P 普通画质)。
  6. 分 P:默认 noplaylist,只下当前单集;整组需按文档调整脚本中的 noplaylist 配置。

技能市场描述中还提到其属于「拟人化浏览器采集闭环」的第 4 步(落地),总控入口为 stealth-browser-collector;若你只关心本地下载,可忽略该交叉引用,按本文工作流即可。

安装与启用

1. 安装 SkillHub CLI(若尚未安装)

按 SkillHub 安装说明 检查或安装:

command -v skillhub && skillhub --version

未安装时可执行:

curl -fsSL https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/install.sh | bash

2. 安装本技能

必须用 --dir 指向当前 Agent 的 skills 目录,否则默认装到 ./skills/ 可能不会被识别。

skillhub install bilibili-video-downloader-pro --namespace user_3ff3c268 --dir <skills 目录>

在 Cursor 中,常用路径为:

skillhub install bilibili-video-downloader-pro --namespace user_3ff3c268 --dir ~/.cursor/skills/

也可把下面提示词发给 AI,让其按官方安装文档操作:

请根据 https://skillhub.cn/install/skillhub.md,安装 `@user_3ff3c268/bilibili-video-downloader-pro`。

Claude Code、Codex 等客户端的 skills 目录不同,以 skillhub.md 第四节列表为准(例如 Claude Code:~/.claude/skills/,Codex:~/.codex/skills/ 或项目下 .agents/skills/)。

安装完成后重启或刷新 Agent,使技能被加载。

典型用法

技能文档约定的工作流如下,Agent 或你可按同样步骤复现。

前置

  • Python 3.10+
  • ffmpeg(合并音视频;Linux 示例:apt install ffmpeg)

步骤

  1. 确认保存目录:用户未指定时先问「保存到哪个文件夹?」;目录不存在时由脚本创建。
  2. 确认画质(可选):默认 best;需要时选 1080 / 720 / 480 / audio。
  3. 执行下载(<skill_dir> 为包含本技能 SKILL.md 的目录):
python <skill_dir>/scripts/download_video.py "<视频URL>" "<保存目录>" [画质] [cookies文件]
  • 画质可省略,省略时为 best。
  • cookies文件 仅在需要大会员/高码率时传入;也可在脚本外配合 yt-dlp 的 --cookies-from-browser 等用法(见技能「关键说明」)。
    4. 校验:在保存目录确认生成以标题命名的 .mp4,并把完整路径反馈给用户。

触发示例(对话侧)

  • 「把这个 BV 链接下载到 ~/Videos」
  • 「提取这条 YouTube,只要音频」
  • 「归档这个 b23.tv 短链到当前项目下的 assets/」

B 站 URL 上的 ?t=1145.2 等播放进度参数可忽略,整条 URL 传给脚本即可。

适用场景与注意

适合谁

  • 经常在 Agent 对话里处理 B 站 / 多站点 链接,需要稳定、可重复的「保存到本地」流程。
  • 希望统一处理画质、cookies、分 P 等行为,而不是每次重写 yt-dlp 命令行。

限制与注意

  • 版权与站点规则:仅应用于你有权保存的内容;会员专享、番剧等可能因鉴权失败,文档要求遇阻时如实告知用户。
  • ffmpeg:未安装时合并会失败,需先按环境补齐。
  • 分 P 与 playlist:默认只下当前条目;整组需改 noplaylist 逻辑后再跑。
  • 技能包内容:以 SkillHub 安装的包为准;工作流依赖文档中的 scripts/download_video.py,若本地目录缺少脚本文件,应重新安装或向发布者确认包是否完整。

SkillHub 统计(以抓取资料为准):评分 100000,下载 2420 次;标签无需 API Key。

结尾

B站/视频网站下载器(yt-dlp) 把 yt-dlp 下载、合并 mp4、画质与 cookies 等约定写进 Agent Skill,适合在对话中处理 BV/av、b23.tv 及 yt-dlp 支持站点的归档需求。安装与路径配置见 SkillHub 安装文档,技能详情见 官方技能页。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜