Python自制B站视频下载工具,关键词搜素下载(含GUI界面/多线程/搜索下载)关键词:Python、B站视频下载、tkinter、多线程、yt-dlp
工具介绍
本工具基于Python开发,支持通过关键词搜索B站视频,批量下载指定页数的视频资源。内置GUI界面,操作简单,支持下载进度显示、暂停/继续功能,并采用多线程技术提升下载效率。
功能特点
关键词搜索:输入关键词自动爬取相关视频的BV号
多页缓存:支持自定义搜索页数(默认按B站排序规则)
多线程下载:最高支持12线程并发下载
实时进度:图形化进度条与下载信息展示
断点续传:支持暂停后继续下载
清晰度选择:默认下载最低清晰度(可修改代码调整)
使用教程
环境要求
Python 3.7+
安装依赖库:
tkinter
及其子模块:用于创建图形用户界面(GUI)。requests
:用于发送 HTTP 请求,获取网页内容。BeautifulSoup
:用于解析 HTML 文档,提取所需信息。re
:用于处理正则表达式,进行字符串匹配和提取。urllib.parse
:用于 URL 编码和解码。os
:用于进行文件和目录操作,如文件路径拼接、文件删除等。time
:用于处理时间相关操作,如设置暂停时间。threading
:用于创建和管理线程,实现多线程操作。concurrent.futures
:提供了高级的异步执行接口,如线程池,用于并发下载。yt_dlp
:用于下载 B 站视频。ffmpeg
:音视频分离与格式转换。
操作步骤
-
运行程序后输入搜索关键词(如”科技评测”)
-
设置需要缓存的个数
-
选择视频保存路径
-
点击【开始】按钮启动下载
-
支持随时点击【暂停】按钮中断下载
技术实现
核心逻辑
-
网页解析
使用requests+BeautifulSoup
解析B站搜索结果页,通过正则表达式提取BV号:python
bv_match = re.search(r'/video/([^/]+)', link['href'])
-
视频下载
集成yt-dlp
库实现视频下载,默认格式为worstvideo[ext=mp4]
(可修改ydl_opts
配置):python
ydl_opts = { 'format': 'worstvideo[ext=mp4]+worstaudio[ext=m4a]/worst[ext=mp4]', 'concurrent_fragment_downloads': 4 }
-
多线程控制
采用ThreadPoolExecutor
实现12线程并发:python
with ThreadPoolExecutor(max_workers=12) as executor: executor.map(download_wrapper, all_bv_list)
作者:wuyulin0929