230 lines
5.4 KiB
Markdown
Raw Normal View History

2025-06-10 09:59:25 +08:00
# 抖音发布调度器 (DouyinScheduler)
一个用于自动化抖音视频发布的Python库支持视频上传、内容编辑、商品挂载、定时发布等功能。
## 功能特性
- 🎥 **视频上传**: 自动上传视频文件
- ✏️ **内容编辑**: 设置标题、描述等内容信息
- 🛍️ **商品挂载**: 支持团购商品挂载
-**定时发布**: 设置定时发布时间
- 🔄 **批量操作**: 支持批量发布多个视频
- ⚙️ **配置管理**: 灵活的配置文件支持
- 🛡️ **智能等待**: 优化的等待机制,减少不必要的时间浪费
- 🌐 **多浏览器**: 支持Safari、Chrome、Firefox
## 项目结构
```
.
├── douyin_scheduler.py # 主调度器库
├── douyin_publisher.py # 原始脚本(参考用)
├── example_usage.py # 使用示例
├── config_example.json # 配置文件示例
├── cookies.json # 登录cookies需要自己获取
└── README.md # 说明文档
```
## 安装依赖
```bash
pip install selenium
```
## 快速开始
### 1. 准备cookies文件
首先需要获取登录状态的cookies
1. 手动登录抖音创作者中心
2. 使用浏览器开发者工具导出cookies
3. 保存为 `cookies.json` 文件
### 2. 基本使用
```python
from douyin_scheduler import DouyinScheduler
# 创建调度器实例
scheduler = DouyinScheduler("cookies.json", "safari")
try:
# 发布视频
success = scheduler.publish_video_with_product(
video_path="/path/to/your/video.mp4",
title="你的视频标题",
description="你的视频描述 #标签1 #标签2"
)
if success:
print("发布成功!")
else:
print("发布失败!")
finally:
scheduler.close()
```
### 3. 高级功能
#### 带商品发布
```python
success = scheduler.publish_video_with_product(
video_path="/path/to/your/video.mp4",
title="商品推广视频",
description="精彩内容描述 #商品推广",
product_name="商品名称",
product_info="商品详细信息"
)
```
#### 定时发布
```python
success = scheduler.publish_video_with_product(
video_path="/path/to/your/video.mp4",
title="定时发布视频",
description="定时发布内容",
schedule_time="2025-06-05 12:30" # 格式YYYY-MM-DD HH:MM
)
```
#### 完整功能组合
```python
success = scheduler.publish_video_with_product(
video_path="/path/to/your/video.mp4",
title="完整功能演示",
description="包含所有功能的完整示例 #演示 #测试",
product_name="测试商品",
product_info="测试商品信息",
schedule_time="2025-06-05 15:00"
)
```
## 模块说明
### DouyinScheduler (主调度器)
- 统一的入口点,协调各个子模块
- 管理浏览器驱动和cookies
- 提供完整的发布流程
### VideoUploader (视频上传模块)
- 处理视频文件上传
- 智能等待上传完成
- 支持上传状态检测
### ContentEditor (内容编辑模块)
- 设置视频标题
- 设置视频描述
- 支持内容验证
### ProductLinker (商品挂载模块)
- 选择团购类型
- 搜索和选择商品
- 设置商品信息
### ScheduleManager (定时管理模块)
- 选择定时发布选项
- 设置发布时间
- 支持时间格式验证
### DouyinUtils (工具类)
- 智能等待机制
- 安全的元素操作
- 通用的辅助方法
## 配置文件
使用 `config_example.json` 作为模板创建自己的配置文件:
```json
{
"browser": {
"type": "safari",
"timeout": 30
},
"cookies": {
"path": "cookies.json"
},
"content": {
"default_hashtags": ["#抖音", "#分享生活"],
"title_max_length": 55
}
}
```
## 使用示例
运行示例脚本查看各种使用场景:
```bash
python example_usage.py
```
示例包括:
1. 基本视频发布
2. 带商品视频发布
3. 定时发布
4. 批量发布
5. 使用配置文件
6. 交互式发布
## 优化特性
### 智能等待机制
- 使用 `WebDriverWait` 替代固定的 `time.sleep`
- 动态检测页面元素状态
- 减少不必要的等待时间
### 错误处理
- 完善的异常捕获和处理
- 详细的错误日志输出
- 失败重试机制
### 模块化设计
- 功能模块独立,便于维护
- 支持扩展新功能
- 代码复用性高
## 注意事项
1. **Cookies有效性**: 请确保cookies文件是有效的登录状态
2. **元素定位**: 网页结构可能变化需要及时更新XPath选择器
3. **上传限制**: 注意视频文件大小和格式限制
4. **频率控制**: 避免频繁操作,可能触发平台限制
5. **浏览器兼容**: 确保安装了对应的浏览器驱动
## 常见问题
### Q: 如何获取cookies文件
A: 登录抖音创作者中心后使用浏览器开发者工具导出cookies保存为JSON格式。
### Q: 视频上传失败怎么办?
A: 检查视频文件路径、格式和大小,确保符合平台要求。
### Q: 元素定位失败怎么办?
A: 网页结构可能已更新需要重新获取元素的XPath选择器。
### Q: 支持哪些浏览器?
A: 目前支持Safari、Chrome、Firefox推荐使用Safari。
## 开发计划
- [ ] 支持图文发布
- [ ] 添加视频编辑功能
- [ ] 支持更多商品类型
- [ ] 添加发布数据统计
- [ ] 优化错误处理机制
- [ ] 支持多账号管理
## 贡献
欢迎提交Issue和Pull Request来改进这个项目
## 免责声明
本工具仅用于学习和个人使用,请遵守抖音平台的使用条款和相关法律法规。