5.4 KiB
Raw Blame History

抖音发布调度器 (DouyinScheduler)

一个用于自动化抖音视频发布的Python库支持视频上传、内容编辑、商品挂载、定时发布等功能。

功能特性

  • 🎥 视频上传: 自动上传视频文件
  • ✏️ 内容编辑: 设置标题、描述等内容信息
  • 🛍️ 商品挂载: 支持团购商品挂载
  • 定时发布: 设置定时发布时间
  • 🔄 批量操作: 支持批量发布多个视频
  • ⚙️ 配置管理: 灵活的配置文件支持
  • 🛡️ 智能等待: 优化的等待机制,减少不必要的时间浪费
  • 🌐 多浏览器: 支持Safari、Chrome、Firefox

项目结构

.
├── douyin_scheduler.py     # 主调度器库
├── douyin_publisher.py     # 原始脚本(参考用)
├── example_usage.py        # 使用示例
├── config_example.json     # 配置文件示例
├── cookies.json           # 登录cookies需要自己获取
└── README.md              # 说明文档

安装依赖

pip install selenium

快速开始

1. 准备cookies文件

首先需要获取登录状态的cookies

  1. 手动登录抖音创作者中心
  2. 使用浏览器开发者工具导出cookies
  3. 保存为 cookies.json 文件

2. 基本使用

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. 高级功能

带商品发布

success = scheduler.publish_video_with_product(
    video_path="/path/to/your/video.mp4",
    title="商品推广视频",
    description="精彩内容描述 #商品推广",
    product_name="商品名称",
    product_info="商品详细信息"
)

定时发布

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
)

完整功能组合

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 作为模板创建自己的配置文件:

{
  "browser": {
    "type": "safari",
    "timeout": 30
  },
  "cookies": {
    "path": "cookies.json"
  },
  "content": {
    "default_hashtags": ["#抖音", "#分享生活"],
    "title_max_length": 55
  }
}

使用示例

运行示例脚本查看各种使用场景:

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来改进这个项目

免责声明

本工具仅用于学习和个人使用,请遵守抖音平台的使用条款和相关法律法规。