一个基于插件架构的视频搜索和下载系统。
- 🔌 插件化架构:支持搜索、下载、解析器插件
- 🔍 多平台搜索:支持多个视频平台的搜索
- ⬇️ 多种下载方式:支持HTTP、M3U8、磁力链接等
- 🎯 动态插件管理:在线安装、卸载插件
- ⚡ 插件热加载:安装/删除插件无需重启服务
- ⚙️ 配置导入导出:一键备份和恢复所有配置
- 🌐 Web界面:友好的前端操作界面
- 操作系统: Linux 或 macOS (Unix-like 系统)
- Python: 3.8+
- Node.js: 14+
后端依赖:
cd backend
pip install -r requirements.txt
cd ..前端依赖:
cd frontend
npm install
cd ..创建配置文件:
cp config.json.example config.json编辑 config.json 根据需要修改端口和URL配置。
前台模式(开发/调试):
python manage.py start前台模式会在控制台显示实时日志,按 Ctrl+C 可以优雅停止所有服务。
后台模式(生产环境):
python manage.py start --daemon后台模式会将服务在后台运行,日志输出到文件。
启动成功后,访问:
- 前端界面: http://localhost:5173
- 后端API: http://localhost:8000
系统提供统一的管理脚本 manage.py 来管理所有服务。
前台模式(实时查看日志):
python manage.py start后台模式(后台运行):
python manage.py start --daemon
# 或使用简写
python manage.py start -dpython manage.py stop停止命令会优雅地终止所有服务进程(包括子进程)并清理资源。
python manage.py status状态命令会显示:
- 每个服务的运行状态
- 进程ID (PID)
- 访问地址
- 如果服务未运行,会提示如何启动
前台模式重启:
python manage.py restart后台模式重启:
python manage.py restart --daemon
# 或使用简写
python manage.py restart -dpython manage.py --help所有日志文件存储在 logs/ 目录下:
- 后端日志:
logs/backend.log- 标准输出logs/backend_error.log- 错误输出
- 前端日志:
logs/frontend.log- 标准输出logs/frontend_error.log- 错误输出
- 管理脚本日志:
logs/manage_YYYYMMDD_HHMMSS.log- 每次运行的日志
实时查看日志(后台模式):
# 查看后端日志
tail -f logs/backend.log
# 查看前端日志
tail -f logs/frontend.log
# 查看错误日志
tail -f logs/backend_error.log
tail -f logs/frontend_error.log查看完整日志:
# 查看后端日志
cat logs/backend.log
# 查看前端日志
cat logs/frontend.log搜索日志中的错误:
grep -i error logs/backend.log
grep -i error logs/frontend.log- 搜索插件 - 从各个平台搜索视频
- 下载插件 - 处理不同协议的下载任务
- 解析器插件 - 解析视频播放地址
系统启动时会自动扫描插件目录,加载所有符合规范的插件:
- 无需在代码中手动注册插件
- 插件文件放入对应目录即可自动加载
- 支持零配置部署
- 所有插件默认禁用,需要在设置中手动启用
- 支持在线安装插件(输入插件URL)
- 支持删除已安装的插件
- 支持插件热加载/热卸载,无需重启服务
- 每个插件可以有独立的依赖文件
在设置界面可以:
- 导出所有配置为JSON文件
- 导入配置文件快速恢复设置
- 管理插件的启用/禁用状态
JustDownload/
├── backend/ # 后端服务
│ ├── plugins/ # 插件目录
│ │ ├── search/ # 搜索插件
│ │ ├── download/ # 下载插件
│ │ └── parser/ # 解析器插件
│ ├── config/ # 配置文件
│ └── requirements.txt # 核心依赖
├── frontend/ # 前端界面
├── logs/ # 日志目录
├── manage.py # 统一管理脚本
├── config.json # 系统配置
└── README.md
问题: 启动时提示端口已被占用
解决方法:
# 查找占用端口的进程
lsof -i :8000 # 后端端口
lsof -i :5173 # 前端端口
# 终止占用端口的进程
kill -9 <PID>
# 或修改 config.json 中的端口配置问题: 服务无法启动或启动后立即退出
解决方法:
# 1. 检查依赖是否完整安装
cd backend && pip install -r requirements.txt
cd ../frontend && npm install
# 2. 查看错误日志
cat logs/backend_error.log
cat logs/frontend_error.log
# 3. 检查配置文件格式
python -m json.tool config.json
# 4. 确保有足够的权限
chmod +x manage.py问题: 按 Ctrl+C 后服务没有停止
解决方法:
# 使用停止命令强制停止
python manage.py stop
# 如果仍然无法停止,手动终止进程
python manage.py status # 查看PID
kill -9 <PID>问题: 后台模式启动后不知道服务状态
解决方法:
# 查看服务状态
python manage.py status
# 实时查看日志
tail -f logs/backend.log
tail -f logs/frontend.log
# 查看错误日志
tail -f logs/backend_error.log
tail -f logs/frontend_error.log问题: 启动时提示找不到配置文件
解决方法:
# 从示例文件创建配置
cp config.json.example config.json
# 根据需要编辑配置
nano config.json # 或使用其他编辑器问题: 在界面安装插件时失败
解决方法:
# 1. 检查插件依赖
cd backend/plugins/<plugin_type>/<plugin_name>
pip install -r <plugin_name>_requirements.txt
# 2. 查看后端日志了解详细错误
tail -f logs/backend.log
# 3. 确保插件URL正确且可访问问题: 前端界面显示无法连接到后端API
解决方法:
# 1. 确认后端服务正在运行
python manage.py status
# 2. 检查后端配置
cat config.json
# 3. 确认前端环境变量配置
cat frontend/.env
# 4. 检查防火墙设置
# 确保端口 8000 和 5173 未被防火墙阻止问题: 启动时提示权限错误
解决方法:
# 给管理脚本添加执行权限
chmod +x manage.py
# 确保日志目录可写
chmod -R 755 logs/
# 如果使用非root用户,确保有足够权限参考 backend/plugins/search/plugin_template.py 创建新插件。
详细的插件开发文档请查看 backend/plugins/README.md。
如果遇到问题,请查看 故障排查指南 获取更多帮助。
查看 CHANGELOG.md 了解版本更新历史。
MIT