一个功能强大的命令行视频下载工具,专为 m3u8 视频流设计。支持 API 抓取、定时任务、数据库管理、重复内容检测和云存储同步。
ffmpeg 合并 m3u8 视频流。config.py 文件进行配置。ffmpeg 进行视频流的下载和合并。请确保 ffmpeg 已安装并在系统的 PATH 环境变量中。克隆项目
git clone <your-repository-url>
cd video-downloader
安装依赖 (推荐使用 Poetry) 项目使用 Poetry 进行依赖管理。
poetry install
或者,如果您想使用 pip,可以先从 pyproject.toml 导出 requirements.txt 文件:
poetry export -f requirements.txt --output requirements.txt
pip install -r requirements.txt
配置 (可选)
video_downloader/data/ 目录下创建 cloud_config.json 文件,并填入您的云存储配置。video_downloader/core/config.py 文件中的参数。直接运行 cli_main.py 即可启动交互式命令行程序。
python cli_main.py
或者
python simple_m3u8.py
程序启动后,您会看到一个功能菜单,可以根据提示选择操作.
cli_main.py # 命令行应用主入口 pyproject.toml # 项目依赖和配置 (Poetry) video_downloader/ ├── api/ # API 客户端模块 ├── cloud/ # 云存储同步模块 ├── core/ # 核心应用逻辑 (CLI App, 配置) ├── database/ # 数据库模型与管理 ├── download/ # 下载管理器 ├── scheduler/ # 定时任务调度器 ├── ui/ # 命令行用户界面 └── utils/ # 工具函数 (如增强型JSON解析器) downloads/ # 默认视频下载目录 data/ # 数据文件目录 (数据库、配置文件等)
项目的主要配置项位于 video_downloader/core/config.py 文件中。您可以在此文件中修改:
项目的核心数据模型为 VideoRecord,定义在 video_downloader/database/models.py 中,包含以下主要字段:
(字段已调整,uid业务参数已从外部访问删除,url增加jwt加密)
| 字段 | 类型 | 描述 |
|---|---|---|
title | str | 清洗后的视频标题 |
video_date | str | 从标题中提取的视频日期(通常是年份) |
cover | str | 封面图片的 URL |
url | str | m3u8 视频流的 URL |
description | str | API 返回的原始描述信息 |
uid | str | 视频的唯一标识符 (UID) |
download | bool | 下载状态 (True 表示已下载) |
is_primer | bool | 是否为付费内容的标记 |
欢迎对本项目做出贡献!如果您有任何改进建议或功能需求,请随时提交 Issue 或 Pull Request。
git checkout -b feature/AmazingFeature)。git commit -m 'Add some AmazingFeature')。git push origin feature/AmazingFeature)。本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。
📮邮箱:m3u8DownloaderForMmf@hotmail.com
免责声明: 本工具仅供学习和技术交流,请勿用于任何非法用途。使用者应自行承担因使用本工具而产生的所有风险和责任。请尊重版权,仅下载您有权访问的内容。