mirror of
https://github.com/zhouxiaoka/autoclip.git
synced 2026-05-07 06:17:12 +08:00
4.9 KiB
4.9 KiB
投稿上传功能 v2.0 实现指南
概述
基于 biliup-rs 项目的实现思路,我们重新开发了B站投稿上传功能,支持多种上传线路、智能线路选择和完整的错误处理。
新功能特性
🚀 核心功能
- 多种上传线路: 支持 bda2、qn、alia、bldsa、tx、txa、bda 等线路
- 智能线路选择: 自动测速选择最佳上传线路
- 分片上传: 支持大文件分片上传,提高稳定性
- 完整错误处理: 详细的错误信息和重试机制
- 进度跟踪: 实时上传进度和状态更新
🔧 技术改进
- 基于 biliup-rs: 借鉴成熟的实现方案
- 异步处理: 完整的异步上传流程
- Cookie管理: 修复了加密系统,支持正确的密钥格式
- API兼容: 与现有系统完全兼容
实现架构
文件结构
backend/services/
├── bilibili_service.py # 原有服务(已更新)
├── bilibili_upload_v2.py # 新的v2.0上传实现
└── bilibili_service_backup.py # 备份文件
核心类
BilibiliUploaderV2: 核心上传器,处理具体的上传逻辑BilibiliUploadServiceV2: 上传服务,管理上传流程和状态
使用步骤
1. 重新导入Cookie
由于加密系统已更新,需要重新导入B站Cookie:
-
获取Cookie:
- 登录B站网页版
- 打开开发者工具 (F12)
- 在Network标签页中找到任意请求
- 复制Cookie值
-
导入Cookie:
- 访问投稿状态页面:
http://localhost:3000/upload-status - 点击"投稿状态"按钮进入B站管理
- 在"账号管理"标签页中点击"添加账号"
- 选择"Cookie登录"方式
- 粘贴完整的Cookie字符串
- 访问投稿状态页面:
2. 测试上传功能
-
检查账号状态:
- 确保账号状态显示为"活跃"
- 检查Cookie是否有效
-
创建投稿任务:
- 在项目详情页选择视频切片
- 点击"投稿到B站"按钮
- 填写标题、描述、标签等信息
- 选择投稿账号和分区
-
监控上传进度:
- 在投稿状态页面查看任务进度
- 实时监控上传状态和错误信息
技术细节
上传流程
1. 验证登录状态 → 2. 预上传获取ID → 3. 选择最佳线路
↓
4. 分片上传 → 5. 合并分片 → 6. 提交投稿 → 7. 返回BV号
上传线路
| 线路 | 提供商 | 特点 |
|---|---|---|
| bda2 | 百度云 | 默认线路,稳定性好 |
| qn | 七牛 | 速度快 |
| alia | 阿里云海外 | 海外访问优化 |
| bldsa | B站自建 | 官方线路 |
| tx | 腾讯云 | 国内优化 |
| txa | 腾讯云海外 | 海外优化 |
| bda | 百度云海外 | 海外优化 |
错误处理
- 网络错误: 自动重试,最多3次
- 认证错误: 提示重新登录
- 文件错误: 检查文件格式和大小
- API错误: 详细错误信息显示
配置说明
环境变量
# 加密密钥(已自动生成)
export ENCRYPTION_KEY="BekpMhcsOolyI_n9Hz9NxzLqMgll3vfa9qJYPOxtQXM="
上传参数
metadata = {
'title': '视频标题', # 最大80字符
'description': '视频描述', # 最大2000字符
'tags': ['标签1', '标签2'], # 标签列表
'partition_id': 3 # 分区ID
}
故障排除
常见问题
-
Cookie解密失败
- 原因: 使用了旧的加密密钥
- 解决: 重新导入Cookie
-
上传失败
- 原因: 网络问题或API限制
- 解决: 检查网络连接,尝试不同线路
-
文件过大
- 原因: 超过B站8GB限制
- 解决: 压缩视频或分割文件
-
账号状态异常
- 原因: Cookie过期或无效
- 解决: 重新登录获取新Cookie
调试方法
-
查看日志:
tail -f logs/celery.log -
检查数据库:
SELECT * FROM bilibili_upload_records ORDER BY created_at DESC LIMIT 5; -
测试API:
curl -s http://localhost:8000/api/v1/upload/records | jq .
性能优化
上传速度优化
- 并发上传: 支持多分片并发上传
- 线路选择: 自动选择最快线路
- 重试机制: 智能重试失败的分片
稳定性优化
- 错误恢复: 自动处理网络中断
- 状态同步: 实时更新上传状态
- 数据完整性: 确保文件完整上传
更新日志
v2.0.0 (2025-09-11)
- ✅ 基于 biliup-rs 重新实现上传功能
- ✅ 支持多种上传线路和智能选择
- ✅ 修复Cookie加密系统
- ✅ 完善错误处理和重试机制
- ✅ 添加详细的上传进度跟踪
后续计划
- 🔄 支持多P投稿
- 🔄 添加上传队列管理
- 🔄 实现断点续传
- 🔄 支持批量投稿