如何使用Python实现Twitter平台视频自动发布?
Twitter 自动化视频发布解决方案
首先纠正一个常见误区:Tweepy 本身是支持视频发布功能的,仅旧版本(v4.0以下)未适配对应接口,按以下步骤操作即可实现需求:
- 前置条件确认
- 升级 Tweepy 到 v4.0 及以上正式版本
- 确认你的 Twitter 开发者账号已开通对应项目的「读写权限」与媒体上传接口调用权限,权限不足是绝大多数人上传失败的核心原因
- 提前对视频做格式预处理:优先使用 H.264 编码、AAC 音频的 MP4 格式,140秒以内的短视频大小不超过 512MB,帧率不超过30fps,兼容性最好
- 实现逻辑
视频发布需要走「先上传媒体、再关联发推」两步流程:先用 OAuth1.0 鉴权上传视频到 Twitter 媒体服务器获取唯一 media_id,再将 media_id 作为参数携带在发推请求中即可 - 参考代码示例
import tweepy # 初始化鉴权信息,填入自己的开发者密钥 oauth_handler = tweepy.OAuth1UserHandler( consumer_key="你的API_KEY", consumer_secret="你的API_SECRET", access_token="你的ACCESS_TOKEN", access_token_secret="你的ACCESS_TOKEN_SECRET" ) api = tweepy.API(oauth_handler) client = tweepy.Client( consumer_key="你的API_KEY", consumer_secret="你的API_SECRET", access_token="你的ACCESS_TOKEN", access_token_secret="你的ACCESS_TOKEN_SECRET" ) # 上传视频,chunked参数开启分片上传适配大文件 media_response = api.media_upload( filename="本地视频路径.mp4", chunked=True, media_category="tweet_video" ) # 发布带视频的推文 client.create_tweet( text="推文附带文案", media_ids=[media_response.media_id] )
- 长视频发布注意事项
如果需要发布超过140秒的长视频,需要将 media_category 参数改为amplify_video,上传完成后需轮询媒体处理状态,确认平台转码完成后再发起发推请求即可。
内容的提问来源于stack exchange,提问作者Mulon
相关产品推荐
相关产品推荐

