# videoLoad **Repository Path**: ZQ123ZQZQ_admin/video-load ## Basic Information - **Project Name**: videoLoad - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-30 - **Last Updated**: 2026-10-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # videoTools 本工具用于检测指定网页里的可下载视频资源,并让用户选择下载。 > **开发者工具箱(桌面版)**:`desktop/` 是 Tauri + React 的可扩展桌面界面, > `service/` 把本文件的检测/下载引擎包成本地 HTTP + SSE 服务。 > 打包后(`.\build_sidecar.ps1` + `npm run tauri build`)生成**双击即用、内置引擎** > 的安装包,目标机器无需安装 Python。 > > 目前工具箱包含两个可用工具: > - **视频下载器** —— 检测网页视频资源(直链 / HLS)并下载; > - **MySQL 快速导入** —— 用 `LOAD DATA` 批量导入 CSV/TSV,实测比 Navicat 式 > 逐行 INSERT 快约 95 倍(见 [service/README-mysql.md](service/README-mysql.md))。 > ⚠️ `.sql` 脚本(mysqldump / Navicat 导出)走逐条执行,**比 CSV 慢约 100 倍** > —— 大表请优先导出 CSV 再导入。 > > 详见 [desktop/README.md](desktop/README.md) 与 [service/README.md](service/README.md)。 ## 安装 ```powershell python -m venv .venv .\.venv\Scripts\python.exe -m pip install -r requirements.txt ``` ## 打包 EXE 在 Windows PowerShell 中执行: ```powershell Set-ExecutionPolicy -Scope Process Bypass .\build_exe.ps1 ``` 生成文件:`dist\VideoResourceDownloader.exe`。双击该文件即可打开图形界面;输入网页地址后点击“添加检测”,程序会检测资源并开始下载。下载文件默认保存到 EXE 所在目录的 `downloads` 文件夹。GUI 以无控制台窗口模式启动,调用 ffmpeg/N_m3u8DL 等外部工具时也不会额外弹出 CMD 窗口。 仓库只提交源码、测试、文档和打包配置,不包含本地下载视频、运行日志、虚拟环境、PyInstaller 生成物或第三方 ffmpeg/N_m3u8DL 二进制。需要构建或下载 HLS 时,请按授权和许可证要求自行提供这些工具;`build_exe.ps1` 会自动使用项目目录、默认工具目录或系统 `PATH` 中已存在的版本。 打包使用单文件模式,首次启动会自动解压运行库,文件体积较大,启动可能需要几秒钟。浏览器嗅探模式需要本机已安装 Microsoft Edge/Google Chrome;普通静态检测不依赖浏览器。 工具会优先自动使用本机路径: ```text D:\tools\N_m3u8DL-CLI_v3.0.2_with_ffmpeg_and_SimpleG\N_m3u8DL-CLI_v3.0.2.exe D:\tools\N_m3u8DL-CLI_v3.0.2_with_ffmpeg_and_SimpleG\ffmpeg.exe ``` 如果这个目录不存在,才会回退到 `yt-dlp` 或系统 `PATH` 中的 `ffmpeg`。 ## 使用 检测并交互式选择下载: ```powershell .\.venv\Scripts\python.exe .\video_resource_downloader.py "https://rou.video/v/cmo7dy7u00004s6g3h80p3p9u" ``` 只列出资源: ```powershell .\.venv\Scripts\python.exe .\video_resource_downloader.py "https://rou.video/v/cmo7dy7u00004s6g3h80p3p9u" --list-only ``` 如果普通检测没有结果,说明视频地址可能由前端 JS 播放器动态请求,使用浏览器嗅探: ```powershell .\.venv\Scripts\python.exe .\video_resource_downloader.py "https://rou.video/v/cmo7dy7u00004s6g3h80p3p9u" --browser --list-only ``` 如果页面必须手动点击播放: ```powershell .\.venv\Scripts\python.exe .\video_resource_downloader.py "https://rou.video/v/cmo7dy7u00004s6g3h80p3p9u" --browser --show-browser --browser-seconds 25 ``` 直接下载指定序号: ```powershell .\.venv\Scripts\python.exe .\video_resource_downloader.py "https://rou.video/v/cmo7dy7u00004s6g3h80p3p9u" --select 1 -o downloads ``` 搜索/列表页会先发现同站点的视频详情页,再读取详情页播放器配置。建议先只列出资源,确认序号后再下载: ```powershell .\.venv\Scripts\python.exe .\video_resource_downloader.py "https://m.5gyy1.cc/search/nasiax%E5%B0%8F%E5%B7%A8/" --list-only .\.venv\Scripts\python.exe .\video_resource_downloader.py "https://m.5gyy1.cc/search/nasiax%E5%B0%8F%E5%B7%A8/" --select 1 -o downloads ``` 图形界面检测到多个资源时会弹出勾选窗口:默认勾选第一个资源,也可以手动勾选任意多个资源、使用“全选”下载全部资源,或清空后重新选择。已选资源会按列表顺序依次下载;某一项失败时,其余已选项仍会继续下载,最终会显示“部分完成”。 GUI 会在任务列表中显示检测耗时、下载耗时、发现/成功资源数量、进度和下载速度。检测列表页时,同域详情页会并行请求(最多 6 个),静态 HTML 已经发现资源时默认跳过逐个 HEAD 探测,以减少无意义的网络往返;只有静态检测没有结果时才启动浏览器嗅探。 GUI 高级设置中可以直接填写下载目录,或点击“选择目录”选择其他磁盘。添加任务前会自动创建目录并验证可写;目录不可用时不会开始检测。每个任务使用创建时保存的目录,之后切换目录只影响新任务。建议将批量 HLS 下载放在空间充足的磁盘,并预留临时分片和 MP4 封装所需的额外空间。 点击“添加检测”后,网址会保留在输入框中,不会在下载完成后自动清空;需要清除时点击“清空”。“历史记录”页会在任务进入完成、部分完成、失败或取消状态时立即写入本地 JSON,支持筛选、删除、清空、填入网址重新检测和打开已存在的输出文件。 历史文件默认位置为 `%LOCALAPPDATA%\VideoResourceDownloader\history.json`;没有该环境变量时依次回退到 `%APPDATA%`、冻结程序目录下的 `data` 或源码目录的 `.data`。历史记录只保存脱敏后的来源网址、任务状态、耗时、资源数量和本地输出路径,不保存 Cookie、媒体直链或 URL 签名;因此带短期签名的地址不能依赖历史记录恢复授权,重新检测前应回到原页面并重新输入必要的 Cookie。 如果已经拿到直链,也可以直接传入(示例中的签名参数仅为占位符,请替换成你有权访问的地址): ```powershell .\.venv\Scripts\python.exe .\video_resource_downloader.py "https://cdn.example.com/video.mp4" --select 1 ``` 如果拿到的是 HLS 缩略图地址,例如 `/hls/.../index.jpg?...`,工具会自动推导同目录的 `index.m3u8`: ```powershell .\.venv\Scripts\python.exe .\video_resource_downloader.py "https://cdn.example.com/hls/demo/index.jpg" --select 1 ``` 下载全部: ```powershell .\.venv\Scripts\python.exe .\video_resource_downloader.py "https://rou.video/v/cmo7dy7u00004s6g3h80p3p9u" --select all ``` 指定自己的 N_m3u8DL 路径: ```powershell .\.venv\Scripts\python.exe .\video_resource_downloader.py "https://rou.video/v/cmo7dy7u00004s6g3h80p3p9u" --m3u8dl-path "D:\tools\N_m3u8DL-CLI_v3.0.2_with_ffmpeg_and_SimpleG\N_m3u8DL-CLI_v3.0.2.exe" ``` ## 说明 - 支持 `mp4/webm/mov/m4v/mkv/m3u8` 等常见资源。 - 普通详情页优先使用 `yt-dlp`,失败后自动使用 HTML 扫描;搜索/列表页优先使用受限的同域详情发现。 - 对 JS 动态加载视频的网页,可启用 `--browser` 监听浏览器网络请求。 - 兼容带语言前缀或根路径的 `/video/`、`/v/`、`/watch/` 详情路径,以及 `__INITIAL_STATE__`、`__NEXT_DATA__`、JSON-LD `VideoObject`、`