游客发表
去年我想把B站上一个讲机械键盘的网站评测视频存到本地,试了七八种方法,视频最后发现能稳定跑通的网站也就那么两三种。这事儿没想象中那么难,视频但坑不少。网站
打开视频页面,网站按F12调出开发者工具,视频切到Network面板,网站筛选Media类型。视频刷新页面,网站开始播放视频,视频你会看到一堆请求冒出来。网站找那个体积最大、视频类型标着media或者xhr的网站条目,右键复制URL,丢到新标签页里——有时候直接就能下载,有时候会返回403。
403的原因通常是请求头里带了Referer和Cookie校验。解决办法也简单:在开发者工具里找到那个请求,右键Copy as cURL,然后把命令粘贴到终端里执行,加上-o video.mp4参数,文件就落到本地了。Windows用户可以用Git Bash或者WSL来跑这个命令。
这个方法的好处是不依赖任何第三方工具,坏处是遇到m3u8分片流就歇菜了——你只能拿到一堆几秒钟的ts碎片。
如果你不想跟开发者工具较劲,直接装yt-dlp。这是个命令行工具,GitHub上开源,更新频率很高。Windows下用winget install yt-dlp就能装,macOS用brew,Linux各发行版仓库里基本都有。
用法简单到离谱:yt-dlp 视频页面URL。它会自动识别网站、提取真实地址、合并音视频轨。B站、YouTube、Twitter、Vimeo这些主流平台都支持。我试过用它在B站下4K视频,加个-f "bv*+ba/b"参数就能拿到最高画质。
遇到需要登录的内容,用--cookies-from-browser chrome直接把Chrome的Cookie传进去。速度取决于你的网速和网站限速,B站非大会员账号下1080P大概能跑满带宽。
有个细节:yt-dlp默认会调用ffmpeg来合并音视频。Windows用户记得把ffmpeg加到PATH里,否则下下来的可能是分离的音频和视频文件。我第一次用的时候就踩了这个坑,下了个4K视频结果只有画面没声音,折腾了半天才发现是ffmpeg没装。
Internet Download Manager有个浏览器扩展,装好之后视频页面上会浮出一个下载按钮,点一下就能嗅探到视频地址。不过IDM对m3u8的支持一般,而且这软件是收费的,虽然网上能找到破解版,但风险自己掂量。
猫抓(Cat Catch)是个Chrome扩展,专门用来嗅探网页里的媒体资源。装完之后点扩展图标,它会列出当前页面所有可下载的视频和音频,包括m3u8。配合N_m3u8DL-CLI或者ffmpeg就能把分片流合并成完整文件。猫抓的好处是轻量,不占资源,坏处是有些网站做了反嗅探,它抓不到。
很多网站用的是HLS协议,视频被切成无数个ts分片,通过m3u8索引文件来组织。你直接下载m3u8文件是没用的,那只是个文本清单。
最直接的办法是用ffmpeg:ffmpeg -i "m3u8地址" -c copy output.mp4。它会自动拉取所有分片并合并。如果m3u8里带了加密密钥,ffmpeg也能处理,前提是你得知道密钥地址——通常就在m3u8文件里写着。
N_m3u8DL-CLI是另一个选择,专门针对国内视频网站优化过,支持多线程下载和自动解密。GitHub上能搜到,Windows下直接跑exe就行。
网站改版是常态。上个月还能用的方法,这个月可能就失效了。yt-dlp更新勤快,遇到问题先yt-dlp -U升级一下,多半能解决。
版权问题得自己把握。下自己看的视频没人管你,但别拿去二次上传或者商用。B站有些UP主会设置禁止下载,技术上你能绕过,但道义上自己掂量。
最后说个观察:现在越来越多的网站开始用DRM加密,比如Netflix、Disney+这些。这种就别折腾了,老老实实开会员看吧。技术手段能解决的是那些没上DRM的普通视频网站,真上了Widevine或者FairPlay,普通工具基本没戏。
友情链接