告别Python脚本!用油猴脚本一键下载B站视频/音频(含FFmpeg合成教程)

张开发
2026/4/19 20:54:21 15 分钟阅读

分享文章

告别Python脚本!用油猴脚本一键下载B站视频/音频(含FFmpeg合成教程)
油猴脚本实战零门槛实现B站音视频高效下载与合成方案每次在B站发现优质内容想保存下来反复观看或聆听时你是否也经历过这样的困扰Python脚本配置复杂、浏览器插件权限受限、音视频分离难以合并...今天我要分享的这套油猴脚本方案或许能彻底解决这些痛点。1. 为什么传统下载方案总让人头疼1.1 Python脚本的三大硬伤去年我尝试用Python下载B站视频时光是环境配置就花了整整一个下午。需要安装requests、selenium等一堆库不说最头疼的是Cookie维护噩梦每次运行脚本都要手动更新Cookie有效期通常只有几小时接口变动频繁2022年能直接获取的window.__playinfo__变量现在需要通过复杂API调用环境依赖严重无头浏览器方案占用内存高对电脑配置要求较高# 典型Python下载代码示例已过时 import requests headers { Cookie: 你的cookie可能已经失效了, Referer: https://www.bilibili.com } # 获取视频信息的API可能已经变更 api_url https://api.bilibili.com/x/player/playurl?...1.2 浏览器插件的权限困境Chrome插件V3版本带来的安全限制让很多下载工具失效了功能需求V2版本支持V3版本限制拦截网络请求✅❌读取完整Cookie✅❌修改响应内容✅⚠️部分限制提示V3版本要求声明精确权限很多必要功能无法通过审核2. 油猴脚本为何成为最佳替代方案2.1 技术原理揭秘油猴脚本之所以能突破这些限制关键在于它的页面注入机制绕过CORS限制直接运行在目标页面上下文中完整DOM访问可以读取和修改页面所有元素网络请求拦截通过重写XMLHttpRequest实现// 典型请求拦截代码 const originalSend XMLHttpRequest.prototype.send; XMLHttpRequest.prototype.send function() { this.addEventListener(load, function(){ if(this.responseURL.includes(playurl)){ console.log(成功捕获视频地址); } }); return originalSend.apply(this, arguments); }2.2 实战操作四部曲安装Tampermonkey扩展各浏览器商店均有创建新脚本并粘贴代码访问B站视频页面页面自动出现下载按钮对比优势无需维护Cookie自动适应接口变更零环境依赖3. 音视频分离难题的终极解决方案3.1 FFmpeg合成指南下载后的音视频文件需要合并推荐使用FFmpegffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac -strict experimental output.mp4常见参数说明参数作用推荐值-c:v视频编码copy(无损)-c:a音频编码aac(通用)-b:a音频比特率192k注意Windows用户建议将FFmpeg添加到系统PATH方便命令行调用3.2 在线合成备选方案如果不想安装软件可以尝试Clipchamp浏览器直接操作Kapwing支持多种格式OnlineVideoConverter简单易用不过要注意上传大文件可能耗时免费版可能有水印隐私敏感内容慎用4. 高级技巧与性能优化4.1 批量下载管理通过修改脚本可以实现// 批量获取当前UP主所有视频 const videos document.querySelectorAll(.video-item); videos.forEach((v, i) { setTimeout(() { simulateClick(v); // 自动触发下载 }, i * 30000); // 每30秒一个避免被封 });防封策略设置合理间隔时间模拟人类操作轨迹使用随机延迟函数4.2 画质选择逻辑B站视频有多种清晰度可以通过修改API参数获取quality116 → 1080P 60帧 quality64 → 720P quality32 → 480P实际项目中我更喜欢添加一个画质选择UIfunction createQualityMenu() { const menu document.createElement(div); menu.innerHTML select idquality-select option value1161080P 60帧/option option value64 selected720P/option option value32480P/option /select ; document.body.appendChild(menu); }5. 常见问题排雷指南问题1下载按钮不显示检查脚本是否启用刷新页面后等待3秒查看控制台报错(F12)问题2合并后音画不同步# 尝试重新编码 ffmpeg -i video.mp4 -i audio.mp3 -c:v libx264 -preset fast -crf 23 -c:a aac -b:a 192k output.mp4问题3下载速度慢可能是B站限速尝试避开高峰时段使用--limit-rate 500K参数分片下载后合并最近三个月我一直在使用这套方案最直观的感受就是再也不用折腾环境配置了。特别是在咖啡厅用笔记本临时想保存视频时油猴脚本的即开即用特性显得尤为珍贵。对于偶尔需要下载视频的非技术用户我通常会推荐他们使用我已经配置好的脚本版本只需要点击两下就能完成整个流程。

更多文章