Skip to content

soft98-top/JustDownload

Repository files navigation

JustDownload - 模块化下载系统

一个基于插件架构的视频搜索和下载系统。

功能特性

  • 🔌 插件化架构:支持搜索、下载、解析器插件
  • 🔍 多平台搜索:支持多个视频平台的搜索
  • ⬇️ 多种下载方式:支持HTTP、M3U8、磁力链接等
  • 🎯 动态插件管理:在线安装、卸载插件
  • ⚡ 插件热加载:安装/删除插件无需重启服务
  • ⚙️ 配置导入导出:一键备份和恢复所有配置
  • 🌐 Web界面:友好的前端操作界面

系统要求

  • 操作系统: Linux 或 macOS (Unix-like 系统)
  • Python: 3.8+
  • Node.js: 14+

快速开始

1. 安装依赖

后端依赖:

cd backend
pip install -r requirements.txt
cd ..

前端依赖:

cd frontend
npm install
cd ..

2. 配置系统

创建配置文件:

cp config.json.example config.json

编辑 config.json 根据需要修改端口和URL配置。

3. 启动服务

前台模式(开发/调试):

python manage.py start

前台模式会在控制台显示实时日志,按 Ctrl+C 可以优雅停止所有服务。

后台模式(生产环境):

python manage.py start --daemon

后台模式会将服务在后台运行,日志输出到文件。

4. 访问系统

启动成功后,访问:

管理脚本使用

系统提供统一的管理脚本 manage.py 来管理所有服务。

启动服务

前台模式(实时查看日志):

python manage.py start

后台模式(后台运行):

python manage.py start --daemon
# 或使用简写
python manage.py start -d

停止服务

python manage.py stop

停止命令会优雅地终止所有服务进程(包括子进程)并清理资源。

查看状态

python manage.py status

状态命令会显示:

  • 每个服务的运行状态
  • 进程ID (PID)
  • 访问地址
  • 如果服务未运行,会提示如何启动

重启服务

前台模式重启:

python manage.py restart

后台模式重启:

python manage.py restart --daemon
# 或使用简写
python manage.py restart -d

查看帮助

python 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

插件系统

插件类型

  1. 搜索插件 - 从各个平台搜索视频
  2. 下载插件 - 处理不同协议的下载任务
  3. 解析器插件 - 解析视频播放地址

插件自动发现

系统启动时会自动扫描插件目录,加载所有符合规范的插件:

  • 无需在代码中手动注册插件
  • 插件文件放入对应目录即可自动加载
  • 支持零配置部署

插件管理

  • 所有插件默认禁用,需要在设置中手动启用
  • 支持在线安装插件(输入插件URL)
  • 支持删除已安装的插件
  • 支持插件热加载/热卸载,无需重启服务
  • 每个插件可以有独立的依赖文件

配置管理

在设置界面可以:

  • 导出所有配置为JSON文件
  • 导入配置文件快速恢复设置
  • 管理插件的启用/禁用状态

项目结构

JustDownload/
├── backend/              # 后端服务
│   ├── plugins/         # 插件目录
│   │   ├── search/      # 搜索插件
│   │   ├── download/    # 下载插件
│   │   └── parser/      # 解析器插件
│   ├── config/          # 配置文件
│   └── requirements.txt # 核心依赖
├── frontend/            # 前端界面
├── logs/                # 日志目录
├── manage.py            # 统一管理脚本
├── config.json          # 系统配置
└── README.md

常见问题

1. 端口被占用

问题: 启动时提示端口已被占用

解决方法:

# 查找占用端口的进程
lsof -i :8000  # 后端端口
lsof -i :5173  # 前端端口

# 终止占用端口的进程
kill -9 <PID>

# 或修改 config.json 中的端口配置

2. 服务启动失败

问题: 服务无法启动或启动后立即退出

解决方法:

# 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

3. 前台模式无法停止

问题: 按 Ctrl+C 后服务没有停止

解决方法:

# 使用停止命令强制停止
python manage.py stop

# 如果仍然无法停止,手动终止进程
python manage.py status  # 查看PID
kill -9 <PID>

4. 后台模式看不到日志

问题: 后台模式启动后不知道服务状态

解决方法:

# 查看服务状态
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

5. 配置文件不存在

问题: 启动时提示找不到配置文件

解决方法:

# 从示例文件创建配置
cp config.json.example config.json

# 根据需要编辑配置
nano config.json  # 或使用其他编辑器

6. 插件安装失败

问题: 在界面安装插件时失败

解决方法:

# 1. 检查插件依赖
cd backend/plugins/<plugin_type>/<plugin_name>
pip install -r <plugin_name>_requirements.txt

# 2. 查看后端日志了解详细错误
tail -f logs/backend.log

# 3. 确保插件URL正确且可访问

7. 前端无法连接后端

问题: 前端界面显示无法连接到后端API

解决方法:

# 1. 确认后端服务正在运行
python manage.py status

# 2. 检查后端配置
cat config.json

# 3. 确认前端环境变量配置
cat frontend/.env

# 4. 检查防火墙设置
# 确保端口 8000 和 5173 未被防火墙阻止

8. 权限不足

问题: 启动时提示权限错误

解决方法:

# 给管理脚本添加执行权限
chmod +x manage.py

# 确保日志目录可写
chmod -R 755 logs/

# 如果使用非root用户,确保有足够权限

开发插件

参考 backend/plugins/search/plugin_template.py 创建新插件。

详细的插件开发文档请查看 backend/plugins/README.md

故障排查

如果遇到问题,请查看 故障排查指南 获取更多帮助。

更新日志

查看 CHANGELOG.md 了解版本更新历史。

License

MIT

About

JustDownload

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors