GahooChan
GahooChan
Skip to content

B 站视频批量下载器

自学游戏建模期间的练手项目 · 2021 年

起因

学游戏建模那阵子,大量时间花在 B 站上看教程。但有些课程是系列视频,一个一个手动下载太慢了,而且在线看有时候卡顿。想着干脆写个批量下载器,把地址扔进去一次全拉下来。

设计思路

整体分三层:界面层用 PyQt5 做输入框 + 下载按钮 + 进度条的常规布局;工作层用 QThread 做后台下载,避免界面卡死;合并层用 ffmpeg 处理音视频合成。

核心流程是:爬虫用 requests 拿页面,BeautifulSoup 解析出视频的 dash 流信息——B站的视频和音频是分离的,需要分别下载无音轨视频流和音频流,然后调用 ffmpeg 命令行工具合并成完整视频。界面和工作层之间通过信号槽通信,下载进度通过 pyqtSignal 发射给界面更新进度条。

技术栈

模块技术
界面PyQt5
爬虫解析requests + BeautifulSoup
视频下载B站 dash 流解析
音视频合并ffmpeg
开发语言Python

收获

  • 第一次完整地用 PyQt5 做了一个有实际用途的桌面工具
  • 理解了信号槽机制在 UI 线程和后台线程之间的用法
  • 爬虫解析的基本套路——从页面提取信息到构造下载请求
  • 学会了用 subprocess 调用 ffmpeg 做音视频合并

评论 (0)

加载评论中...
0/500
👁️ 总访问量--
|
👥 访客数--