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:音视频分离与格式转换

  • 操作步骤

    1. 运行程序后输入搜索关键词(如”科技评测”)

    2. 设置需要缓存的个数

    3. 选择视频保存路径

    4. 点击【开始】按钮启动下载

    5. 支持随时点击【暂停】按钮中断下载

    技术实现

    核心逻辑

    1. 网页解析
      使用requests+BeautifulSoup解析B站搜索结果页,通过正则表达式提取BV号:

      python

      bv_match = re.search(r'/video/([^/]+)', link['href'])
    2. 视频下载
      集成yt-dlp库实现视频下载,默认格式为worstvideo[ext=mp4](可修改ydl_opts配置):

      python

      ydl_opts = {
          'format': 'worstvideo[ext=mp4]+worstaudio[ext=m4a]/worst[ext=mp4]',
          'concurrent_fragment_downloads': 4
      }
    3. 多线程控制
      采用ThreadPoolExecutor实现12线程并发:

      python

      with ThreadPoolExecutor(max_workers=12) as executor:
          executor.map(download_wrapper, all_bv_list)

    作者:wuyulin0929

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python自制B站视频下载工具,关键词搜素下载(含GUI界面/多线程/搜索下载)关键词:Python、B站视频下载、tkinter、多线程、yt-dlp

    发表回复