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