ForgQi 6051dc8fe9 Refactor downloader architecture and config handling
Refactored the downloader system to pass DownloadConfig explicitly to all downloaders, removing internal state from FfmpegDownloader and StreamGears. Simplified DownloadPlugin::create_downloader to only require the downloader type, and updated DownloadTask to manage cancellation and retries more robustly. Adjusted related code to support the new DownloadConfig flow, improved resource cleanup, and updated trait signatures and usages throughout the codebase.
2025-10-30 02:10:17 +08:00
2025-09-22 02:15:59 +00:00
2025-07-16 03:43:05 +08:00
2023-12-08 23:37:40 +08:00
2023-12-31 23:56:40 +08:00
2024-01-17 22:15:17 +08:00
2024-01-27 07:46:15 +00:00
2019-07-28 17:54:29 +08:00
2024-12-31 16:45:21 +00:00
2024-12-31 16:45:21 +00:00
2021-01-20 02:54:06 +08:00
2025-07-16 03:43:05 +08:00

description

Python PyPI PyPI - Downloads License Telegram

GitHub Issues GitHub Stars GitHub Forks

🛠️ 功能

  • 开箱即用,多种安装方式,提供可视化WebUi界面
  • 多主播录制/上传,24X7无人值守运行,高自定义元信息
  • 边录边传不落盘急速上传,节省本地硬盘空间

论坛:BBS

📜 更新日志

📜 使用文档

获取命令帮助 biliup --help

Upload video to bilibili.

Usage: biliup [OPTIONS] <COMMAND>

Commands:
  login     登录B站并保存登录信息
  renew     手动验证并刷新登录信息
  upload    上传视频
  append    是否要对某稿件追加视频
  show      打印视频详情
  dump-flv  输出flv元数据
  download  下载视频
  server    启动web服务,默认端口19159
  list      列出所有已上传的视频
  help      Print this message or the help of the given subcommand(s)

Options:
  -p, --proxy <PROXY>              配置代理
  -u, --user-cookie <USER_COOKIE>  登录信息文件 [default: cookies.json]
      --rust-log <RUST_LOG>        [default: tower_http=debug,info]
  -h, --help                       Print help
  -V, --version                    Print version

启动录制服务

启动web服务,默认端口19159

Usage: biliup server [OPTIONS]

Options:
  -b, --bind <BIND>  Specify bind address [default: 0.0.0.0]
  -p, --port <PORT>  Port to use [default: 19159]
      --auth         开启登录密码认证
  -h, --help         Print help

🚀 快速开始

Windows

Linux 或 macOS

  1. 安装 uv
  2. 安装:uv tool install biliup
  3. 启动:biliup server --auth
  4. 访问 WebUI:http://your-ip:19159

Termux


🧑‍💻开发

架构概览

Rust后端 + Python引擎 + Next.js前端的混合架构。

graph TB
    subgraph "🌐 前端层"
        UI[Next.js Web界面<br/>React + TypeScript<br/>Semi UI组件库]
    end
    
    subgraph "⚡ Rust后端服务"
        CLI[Web API服务器<br/>biliup-cli<br/>用户认证 & REST API]
        CORE[核心上传库<br/>biliup<br/>Bilibili API客户端]
        GEARS[Python绑定<br/>stream-gears<br/>性能优化桥接]
    end
    
    subgraph "🐍 Python引擎"
        ENGINE[下载引擎<br/>biliup<br/>任务调度 & 流处理]
        PLUGINS[插件系统<br/>20+平台支持<br/>斗鱼/虎牙/Twitch等]
        DANMAKU[弹幕系统<br/>实时弹幕获取<br/>多平台协议支持]
    end
    
    subgraph "🗄️ 数据层"
        DB[(SQLite数据库<br/>配置存储<br/>任务状态 & 日志)]
        FILES[文件系统<br/>临时视频存储<br/>缓存管理]
    end
    
    subgraph "🌍 外部服务"
        BILI[Bilibili API<br/>视频上传服务]
        STREAMS[直播平台<br/>斗鱼/虎牙/B站等<br/>实时流媒体]
    end
    
    UI --> CLI
    CLI --> CORE
    CLI --> ENGINE
    CLI --> DB
    GEARS --> ENGINE
    ENGINE --> PLUGINS
    ENGINE --> DANMAKU
    ENGINE --> FILES
    CORE --> BILI
    PLUGINS --> STREAMS
    DANMAKU --> STREAMS
    
    style UI fill:#e1f5fe
    style CLI fill:#f3e5f5
    style CORE fill:#f3e5f5
    style GEARS fill:#f3e5f5
    style ENGINE fill:#e8f5e8
    style PLUGINS fill:#e8f5e8
    style DANMAKU fill:#e8f5e8
    style DB fill:#fff3e0
    style FILES fill:#fff3e0
    style BILI fill:#ffebee
    style STREAMS fill:#ffebee

frontend

  1. 确保 Node.js 版本 ≥ 18
  2. 安装依赖:npm i
  3. 启动开发服务器:npm run dev
  4. 访问:http://localhost:3000

backend

  1. 安装依赖 maturin dev
  2. npm run build
  3. 启动 Biliup:python3 -m biliup

🤝Credits

  • Thanks ykdl, youtube-dl, streamlink provides downloader.
  • Thanks THMonster/danmaku.

💴捐赠

爱发电 »

⭐Stars

Star History Chart

S
Description
自动直播录制、投稿、twitch、ytb频道搬运工具。命令行投稿(B站)和视频下载工具,提供多种登录方式,支持多p。边录边传0落盘
https://biliup.github.io/biliup/
Readme MIT
6.7 MiB
0 Stars 1 Watchers 0 Forks
Languages
Rust 75.6%
TypeScript 16.6%
Python 4.8%
SCSS 2%
JavaScript 0.4%
Other 0.5%