230 lines
5.4 KiB
Markdown
230 lines
5.4 KiB
Markdown
|
# 抖音发布调度器 (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来改进这个项目!
|
|||
|
|
|||
|
## 免责声明
|
|||
|
|
|||
|
本工具仅用于学习和个人使用,请遵守抖音平台的使用条款和相关法律法规。
|