当 Instagram 返回没有 id 的位置时,Post.location 会引发 KeyError: 'id',导致下载中断

作者: SeijiOokami创建于 2026年8月29日更新于 2026年8月29日

描述错误

最近,Instagram 有时会返回没有 id 字段的帖子 location 字典。Post.location 属性假设该字段始终存在(structures.py,v4.15.3 中第 933 行):

python
location_id = int(loc['id'])

因此访问它会引发未捕获的 KeyError: 'id',导致整个下载过程中断(使用 --geotags 时,崩溃发生在 Instaloader.download_post 中)。

重现步骤

instaloader --login=USER --geotags PROFILE

其中 PROFILE 包含一个位置数据包缺少 id 的帖子。我在使用 --geotags --reels --latest-stamps 下载时遇到此问题,在公共帐户的一个轮播视频中。受影响的帖子的元数据包含一个 location 对象,其中有一些字段,但没有 id(也没有 pk)。

内容来源: instaloader/instaloader