如何使用simple-youtube-api实现YouTube视频定时上传?
关于simple-youtube-api实现定时发布的解决方案
simple-youtube-api本身没有直接暴露定时发布的接口,但它是原生YouTube Data API的轻量包装,你可以通过两种方式实现定时发布:
方式一:修改包装器代码集成publish_at参数
- 找到包装器中处理视频上传的核心代码(通常是
Video类的upload方法或请求构造部分) - 在构造请求的
body参数里添加publishAt字段,格式需符合ISO 8601标准(例如"2024-12-31T18:00:00Z") - 同时要将视频的
status.privacyStatus设置为"private"或"unlisted",定时发布时间到后YouTube会自动切换为公开状态
示例修改片段(假设在video.py的上传逻辑中):
# 构造请求体时添加定时发布参数 request_body = { "snippet": snippet, "status": { "privacyStatus": "private", "publishAt": "2024-12-31T18:00:00Z" } }
方式二:上传后通过原生API更新视频发布时间
如果不想修改包装器代码,可以先用simple-youtube-api完成基础上传(设置为私有),再调用原生YouTube Data API的videos.update接口传入publishAt参数:
示例代码(基于google-api-python-client):
from googleapiclient.discovery import build # 使用和simple-youtube-api相同的认证凭据 youtube = build('youtube', 'v3', credentials=credentials) # 从simple-youtube-api返回的video对象中获取视频ID video_id = "你的视频ID" request = youtube.videos().update( part="status", body={ "id": video_id, "status": { "privacyStatus": "private", "publishAt": "2024-12-31T18:00:00Z" } } ) response = request.execute()
注意事项
- 定时发布时间必须是未来的UTC时间,严格遵循ISO 8601格式
- 确保你的Google账号已启用定时发布功能(默认状态下是开启的,受限账号需额外检查)
- 修改包装器代码后,后续升级包装器时需要重新适配,建议fork仓库后自定义修改
内容的提问来源于stack exchange,提问作者Cats and Music
相关产品推荐
相关产品推荐

