B站视频下载通过命令行工具(如FFmpeg)下载B站视频的步骤是什么?

作者:IT技术圈子 阅读:3 日期:2025年09月15日

通过命令行工具(如FFmpeg)下载B站视频需要结合视频的真实地址获取和下载工具的使用。由于B站对视频流进行了加密和动态处理,直接使用FFmpeg下载可能较复杂,通常需要先获取视频的真实播放地址(如`.m4s`分片或`.flv`流)。以下是详细步骤:

---

方法1:使用浏览器开发者工具 1. 打开B站视频页面,按 `F12` 打开开发者工具。 2. 切换到 Network(网络) 选项卡,勾选 XHR 或 Media 过滤请求。 3. 播放视频,找到类似 `player.bilibili.com/bv...` 或 `api.bilibili.com/pgc/player/web/playurl` 的请求。 4. 在响应中查找 `dash.url`(分片视频)或 `url`(直播流),复制 `.m4s` 或 `.flv` 地址。

方法2:使用第三方工具 [you-get](https://github.com/soimort/you-get):支持B站视频下载(自动解析地址)。 ```bash you-get https://www.bilibili.com/video/BV1xxxxx ``` [annie](https://github.com/iawia002/annie):轻量级下载工具。 ```bash annie -i https://www.bilibili.com/video/BV1xxxxx ``` [BBDown](https://github.com/nilaoda/BBDown):专门针对B站的下载工具。 ```bash BBDown.exe https://www.bilibili.com/video/BV1xxxxx ```

---

下载单个分片(.m4s) ```bash ffmpeg -i "https://example.com/video.m4s" -c copy output.mp4 ```

合并音频和视频分片 B站视频通常分为音频(`audio.m4s`)和视频(`video.m4s`)两个分片,需合并: ```bash ffmpeg -i "https://example.com/video.m4s" -i "https://example.com/audio.m4s" \ -c:v copy -c:a aac output.mp4 ```

下载直播流(.flv) ```bash ffmpeg -i "https://example.com/live.flv" -c copy output.flv ```

---

video_url = "https://example.com/video.m4s" audio_url = "https://example.com/audio.m4s" output = "output.mp4"

subprocess.run([ "ffmpeg", "-i", video_url, "-i", audio_url, "-c:v", "copy", "-c:a", "aac", output ]) ```

---

---

如有其他问题,可进一步探讨!

  END