本节是一堂简单的实战课。我们会用和之前相同的方式下载 B 站视频,同时聊聊哪些视频能下、哪些下不了,以及 CDP 和 Computer Use 这两种浏览器操作方式的区别。
该视频为课程站点内嵌片段,未收录于本地离线包;如需观看请回到线上课程对应课时。
6.1 下载 B 站视频
和抖音一样,B 站的普通视频也没有做太强的防护。我们可以直接用 CDP 连接浏览器,提取视频流地址,然后下载。
用户
CDP 链接到 https://www.bilibili.com/video/xxxxxxx,下载视频
逻辑和下载抖音几乎一模一样:连接浏览器 → 提取视频地址 → 下载。
6.2 什么视频下不了?
B 站的视频分两种情况:
能下载的:普通 UP 主视频。 不管是知识区、科技区还是生活区,只要是 UP 主自己上传的普通视频,基本都没有做 DRM 加密,视频流地址可以直接提取。
下不了的:番剧、电影、大会员专享内容。 这类版权内容使用了 Widevine DRM 加密(Google 的内容解密模块),视频流即使拿到了也是加密的,无法直接播放。B 站从 2022 年开始还加了自己的 BiliDRM,进一步收紧了防护。1080P 以上的高画质内容也默认启用了 DRM。
所以如果你让 Agent 去下载一部番剧,它会发现视频流地址能拿到,但下载下来是一堆打不开的数据——这就是 DRM 在起作用。
6.3 CDP 和 Computer Use 有什么区别?
你可能注意到了,CDP 和 Computer Use 都能操作浏览器,但它们的工作方式完全不同。
| CDP(浏览器插件) | Computer Use | |
|---|---|---|
| 控制方式 | 通过 WebSocket 协议直接控制浏览器内部 | 通过截图识别 + 模拟鼠标键盘 |
| 看到什么 | DOM 结构、网络请求、JavaScript 变量 | 屏幕上的像素 |
| 精确度 | 极高,可以精准拿到页面内的任何数据 | 依赖视觉识别,偶尔会点错位置 |
| 速度 | 快,毫秒级响应 | 慢,每一步都要截图、分析、点击 |
| 适合做什么 | 数据提取、表单填写、下载文件 | 操作桌面应用、跨窗口操作、复杂 UI 交互 |
简单理解:CDP 像是你打开了浏览器的"开发者工具",能看到页面背后的一切;Computer Use 像是你站在屏幕前,用眼睛看、用鼠标点。
对于下载视频这种任务,CDP 是更好的选择——你需要的是精确拿到视频流地址,而不是在屏幕上找那个播放按钮。但如果你的任务是"打开浏览器,登录 B 站,找到一个视频,然后下载",那 Computer Use 可以帮你完成前面那些步骤,到最后下载环节再交给 CDP。两者可以配合使用。
理论上来讲,CDP 可以解决绝大多数的网页端下载问题,因为它是直接操控浏览器底层协议,能拿到页面内部的 DOM 结构、网络请求等数据。遇到需要下载的场景,优先想想 CDP 能不能搞定,通常都可以。
6.4 ■ 学点英语
| 中文 | English | 音标 | 说明 |
|---|---|---|---|
| Chrome DevTools 协议 | Chrome DevTools Protocol | /kroʊm ˈdevtuːlz ˈproʊtəkɔːl/ | Chrome 提供给开发工具和自动化程序控制浏览器的协议 |
| 网络请求 | Network Request | /ˈnetwɜːrk rɪˈkwest/ | 浏览器或程序向服务器发送的数据请求 |
| 请求拦截 | Request Interception | /rɪˈkwest ˌɪntərˈsepʃən/ | 在网络请求发送或返回时进行捕获和处理 |
| 开发者工具 | Developer Tools | /dɪˈveləpər tuːlz/ | 浏览器提供给开发者调试页面和网络的工具 |