230 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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