使用Instagrapi上传Instagram故事时标题不显示且报ValidationError
问题解决
问题分析
- 故事不显示文本:
photo_upload_to_story方法的caption参数适用于Feed帖子,Instagram故事的文本内容需要通过text参数传递。 - ValidationError报错:这是Instagrapi与新版pydantic(2.x)的类型兼容问题——内部将整数类型的媒体PK传入了要求字符串类型的字段,触发pydantic校验失败。
解决方案
方法一:修正参数+降级Instagrapi(推荐)
- 替换参数:将代码中的
caption改为text,这是设置故事文本的正确参数。 - 执行命令降级Instagrapi到兼容版本:
pip install instagrapi==1.17.0 - 修改后的完整代码:
from instagrapi import Client cl = Client() cl.login('MY USER', 'MY PASSWORD') cl.photo_upload_to_story("Images/image1.jpg", text="life is beautiful") cl.logout()
方法二:适配新版pydantic的临时修复
若不想降级依赖,可手动将媒体PK转为字符串,使用底层方法上传:
from instagrapi import Client from instagrapi.types import StoryMedia cl = Client() cl.login('MY USER', 'MY PASSWORD') # 先上传图片获取媒体对象 media = cl.photo_upload("Images/image1.jpg") # 强制将PK转为字符串,避免类型校验错误,同时设置故事文本 story_media = StoryMedia(media_pk=str(media.pk), text="life is beautiful") # 上传故事 cl.upload_story(story_media) cl.logout()
内容的提问来源于stack exchange,提问作者Juan R
相关产品推荐
相关产品推荐

