Instagram API:json响应中缺少元素

时间:2017-02-25 13:51:58

标签: instagram instagram-api

我正在使用Instagram的Get Recent Media端点来获取标签中的图片和视频。根据文档,这里是video媒体json的样子(为简洁起见,跳过其他字段):

{
    "type": "video",
    "videos": {
        "low_resolution": {
            "url": "http://distilleryvesper9-13.ak.instagram.com/090d06dad9cd11e2aa0912313817975d_102.mp4",
            "width": 480,
            "height": 480
        },
        "standard_resolution": {
            "url": "http://distilleryvesper9-13.ak.instagram.com/090d06dad9cd11e2aa0912313817975d_101.mp4",
            "width": 640,
            "height": 640
        }
    }
}

因此,对于每个json媒体type=video,应该有一个videos元素。然后,我尝试使用quakeroats作为标记的请求,以下是网址:

https://api.instagram.com/v1/tags/quakeroats/media/recent?access_token=<access_token>

它返回了以下作为媒体之一的媒体列表:

{
    "id": "1457772143914843055_4607772970",
    "type": "video",
    "created_time": "1488000003",
    "images": {
        "thumbnail": {
            "height": 150,
            "width": 150,
            "url": "https://scontent.cdninstagram.com/t51.2885-15/s150x150/e35/16788643_240567646348968_4950335324904488960_n.jpg"
        },
        "low_resolution": {
            "height": 320,
            "width": 320,
            "url": "https://scontent.cdninstagram.com/t51.2885-15/s320x320/e35/16788643_240567646348968_4950335324904488960_n.jpg"
        },
        "standard_resolution": {
            "height": 480,
            "width": 480,
            "url": "https://scontent.cdninstagram.com/t51.2885-15/e35/16788643_240567646348968_4950335324904488960_n.jpg"
        }
    },
    "user": {
        "username": "aslapesetme.43kilo",
        "full_name": "\u0130nan\u0131rsan Olur",
        "id": "4607772970",
        "profile_picture": "https://scontent.cdninstagram.com/t51.2885-19/s150x150/16230854_382859295410786_1559541722264895488_a.jpg"
    },
    "user_has_liked": false,
    "link": "https://www.instagram.com/p/BQ7DAqRgPuv/",
    "attribution": null,
    "location": null,
    "likes": {
        "count": 22
    },
    "comments": {
        "count": 0
    },
    "caption": {
        "text": "\ud83d\udca08:00\ud83d\udca0 kahvalt\u0131:\n-50 gr. Yulaf\n-1 bardak s\u00fct\n-1 porsiyon meyve ve 1 \u00e7ay ka\u015f\u0131\u011f\u0131 kakao nibs\nNefiiss \ud83d\ude0b \u00e7ok \u015f\u00fck\u00fcr bizi doyuran rabbimize \ud83d\ude4f\ud83c\udffb Ayr\u0131ca frambuaz ve elman\u0131n sadece renk uyumu de\u011fil tat uyumu da m\u00fcthi\u015f deneyin \ud83d\udc7b\n#healtyfood#healthybreakfast#quakeroats#quakeroatmeal#quakerporridge#milk#apple#raspberries#framboise#ahududu#yulaflapasi#yulafezmesi#porridgelover#porridge#cacaonibs#diyet#diyetkardesligi#diyethesaplaritakiplesiyor#inan\u0131rsanolur#sadeceinan#eceilezayifliyorum#doganinguzelligi#dogalbeslen#kendinisev#benimkahvaltim#nofilter#greentea#whitetea#ginger#hediyenhayatinolsun",
        "from": {
            "username": "aslapesetme.43kilo",
            "full_name": "\u0130nan\u0131rsan Olur",
            "id": "4607772970",
            "profile_picture": "https://scontent.cdninstagram.com/t51.2885-19/s150x150/16230854_382859295410786_1559541722264895488_a.jpg"
        },
        "created_time": "1488000003",
        "id": "17849784529188561"
    },
    "filter": "Normal"
}

似乎type设置为video,但是没有videos元素。此外,媒体链接(https://www.instagram.com/p/BQ7DAqRgPuv/)似乎指向图像,而不是视频。

看起来它是API响应格式中的错误或最近的更改(我在过去几天看到导入脚本中的错误)或两者都有。

还有其他人观察过这个吗?另外,这是我应该提交给Instagram的吗?

3 个答案:

答案 0 :(得分:1)

目前使用的是type="video"而没有&#34;视频&#34; key意味着它是多图像的帖子。

(看起来这是一个错误,Instagram最终可能会改变它)

答案 1 :(得分:0)

当我尝试更新我的一些代码以使用其新的多图像(或视频)功能时,我也遇到了这个问题。 Instagram现在允许您将多个图像作为单个帖子上传,然后您可以在UI中在它们之间滑动。看起来这在API中并没有真正考虑过,因此多项目帖子会以type=video的形式返回(如果它们都是type=image,那么它们应该是type=multi,或者deleted=0 1}}或其他新事物。

我的用例更令人烦恼的是,他们也没有包含单个帖子中包含的每个不同媒体项目所需的数据,因此我无法完全重新创建多项目帖子,因为我不知道除了“套牌”中的第一张图片之外,我不知道任何其他内容。

答案 2 :(得分:0)

Instagram在没有任何通知的情况下改变了行为 这不是第一次:{​​{3}}
我正在处理一个处理这个问题的官方客户的分支(和另一个)

pip install --upgrade git+https://github.com/MabrianOfficial/python-instagram.git