功能模块总览
菜单 0 4 列网格入口,聚合所有面板
主页管理 1 管理主页快捷方式,支持添加当前页/手动添加、打开/编辑/删除
收藏夹 2 书签 + 文件夹分级管理,行内 打开/复制/删除、新建文件夹、添加当前页
历史记录 3 搜索框 + 列表,右键 打开/复制网址/删除、清空全部;自动合并连续同址记录
下载管理 4 存储占用条、搜索、工具栏(全部暂停/开始/删除/清理已完成 m3u8);每行 暂停/续传/重试/重启/取消/删除/打开目录/复制
文件管理 5 以下载目录为根的文件浏览器,面包屑导航、新建目录、右键 打开/资源管理器中显示/删除
资源嗅探 6 双通道嗅探结果列表,按类型过滤(M3U8/MP4/FLV/TS),每行显示标题+URL,下载/转码/复制
设置 7 引擎标识、主题切换、无图/纯文本模式、下载目录、HLS 并发通道数(1-32)、清缓存、关于
影片资源站 8 管理搜索站点(search_url 模板),行内 打开/复制/编辑/停用/删除、手动添加
影片搜索 9 聚合多站搜索,进度条 0-100%,结果行 打开页面/下载/复制;双层过滤兜底
站点过滤 10 可编辑的"假资源站"黑名单(如 知乎/baike.baidu.com),编辑/停用/删除
六大核心功能
1. 浏览器内核与标签管理
2. 资源嗅探(双通道)
3. 下载管理(HTTP + HLS + 转码)
4. 影片聚合搜索爬虫
5. 站点过滤黑名单(双层兜底)
6. 阅读增强
技术栈
GUI 框架 PyQt6(QtCore/QtGui/QtWidgets)
浏览内核 WebView2(Edge) via qtwebview2 + pythonnet _dotnet_bridge;QWebEngine 回退
数据存储 SQLite(WAL 模式,busy_timeout=5000,check_same_thread=False)
媒体处理 ffmpeg(HLS remux/re-encode/转码,运行时自动定位)
并发 threading.Thread + ThreadPoolExecutor(仅下载);UI/嗅探/爬虫全主线程
打包 PyInstaller onedir,--noconfirm 全量重编(PYZ 模块需全量重打包)
日志 logging,DEBUG 入文件 / INFO 入控制台,按日分文件
无新增依赖约束 纯 PyQt6 内置 + WebView2 + sqlite3 + ffmpeg 子进程
实现亮点
1. 双通道资源嗅探 + 智能标题采集 网络拦截抓"真正发起的请求",DOM 扫描补"写在 href/data-* 里、不点不发"的下载直链,两路合流进同一去重集合。DOM 扫描 JS 用 nearbyHeading 三级回退从链接附近提取剧集标题(第01集),嗅探列表显示标题、下载时优先用它做文件名 —— 解决了"20 集都叫同一个名字、不带集数"的问题。
2. 智能文件名优先级链 video['title'](嗅探标题)→ suggest_media_filename(网页标题推断片名+集数,支持《书名》/第N集/EP01/S01E02 等 6 种模式 + 噪声词清洗)→ URL 文件名兜底,三重保证不会出现无意义的 video_xxx.mp4。