Giphy / giphy-js

Official GIPHY packages
https://giphy.com
MIT License
149 stars 53 forks source link

`IImages` interface is not accurate #259

Open kossnocorp opened 3 years ago

kossnocorp commented 3 years ago

The IImages states that downsized and downsized_still are always present, however, it's not true. Recently we've captured an exception with a IImages missing both downsized and downsized_still.

Here's the culprit:

{
  "type": "gif",
  "id": "FftX0IDWgZw074Oqb1",
  "url": "https://giphy.com/gifs/Roland-Garros-djokovic-novak-FftX0IDWgZw074Oqb1",
  "slug": "Roland-Garros-djokovic-novak-FftX0IDWgZw074Oqb1",
  "bitly_gif_url": "https://gph.is/g/Eq5Mz8D",
  "bitly_url": "https://gph.is/g/Eq5Mz8D",
  "embed_url": "https://giphy.com/embed/FftX0IDWgZw074Oqb1",
  "username": "Roland-Garros",
  "source": "",
  "title": "French Open Tennis GIF by Roland-Garros",
  "rating": "g",
  "content_url": "",
  "source_tld": "",
  "source_post_url": "",
  "is_sticker": false,
  "import_datetime": "2020-10-08 10:54:23",
  "trending_datetime": "2021-09-07 00:41:49",
  "images": {
    "original": {
      "height": "270",
      "width": "480",
      "size": "8552905",
      "url": "https://media2.giphy.com/media/FftX0IDWgZw074Oqb1/giphy.gif?cid=0291a4c14ftea62gw8d10ab11u1yagka6vnh4ln3vcf2kjwc&rid=giphy.gif&ct=g",
      "mp4_size": "516802",
      "mp4": "https://media2.giphy.com/media/FftX0IDWgZw074Oqb1/giphy.mp4?cid=0291a4c14ftea62gw8d10ab11u1yagka6vnh4ln3vcf2kjwc&rid=giphy.mp4&ct=g",
      "frames": "146",
      "hash": "3834f1c2c86dadf9f603d3c1ff686edb"
    },
    "downsized_large": {
      "height": "270",
      "width": "480",
      "size": "5765173",
      "url": "https://media2.giphy.com/media/FftX0IDWgZw074Oqb1/giphy-downsized-large.gif?cid=0291a4c14ftea62gw8d10ab11u1yagka6vnh4ln3vcf2kjwc&rid=giphy-downsized-large.gif&ct=g"
    },
    "downsized_medium": {
      "height": "216",
      "width": "384",
      "size": "3616080",
      "url": "https://media2.giphy.com/media/FftX0IDWgZw074Oqb1/giphy-downsized-medium.gif?cid=0291a4c14ftea62gw8d10ab11u1yagka6vnh4ln3vcf2kjwc&rid=giphy-downsized-medium.gif&ct=g"
    },
    "fixed_height": {
      "height": "200",
      "width": "356",
      "size": "4998274",
      "url": "https://media2.giphy.com/media/FftX0IDWgZw074Oqb1/200.gif?cid=0291a4c14ftea62gw8d10ab11u1yagka6vnh4ln3vcf2kjwc&rid=200.gif&ct=g"
    },
    "fixed_height_downsampled": {
      "height": "200",
      "width": "356",
      "size": "262328",
      "url": "https://media2.giphy.com/media/FftX0IDWgZw074Oqb1/200_d.gif?cid=0291a4c14ftea62gw8d10ab11u1yagka6vnh4ln3vcf2kjwc&rid=200_d.gif&ct=g"
    },
    "fixed_height_still": {
      "height": "200",
      "width": "356",
      "size": "45799",
      "url": "https://media2.giphy.com/media/FftX0IDWgZw074Oqb1/200_s.gif?cid=0291a4c14ftea62gw8d10ab11u1yagka6vnh4ln3vcf2kjwc&rid=200_s.gif&ct=g"
    },
    "fixed_width": {
      "height": "113",
      "width": "200",
      "size": "1635927",
      "url": "https://media2.giphy.com/media/FftX0IDWgZw074Oqb1/200w.gif?cid=0291a4c14ftea62gw8d10ab11u1yagka6vnh4ln3vcf2kjwc&rid=200w.gif&ct=g",
      "webp_size": "180512",
      "webp": "https://media2.giphy.com/media/FftX0IDWgZw074Oqb1/200w.webp?cid=0291a4c14ftea62gw8d10ab11u1yagka6vnh4ln3vcf2kjwc&rid=200w.webp&ct=g"
    },
    "fixed_width_downsampled": {
      "height": "113",
      "width": "200",
      "size": "92135",
      "url": "https://media2.giphy.com/media/FftX0IDWgZw074Oqb1/200w_d.gif?cid=0291a4c14ftea62gw8d10ab11u1yagka6vnh4ln3vcf2kjwc&rid=200w_d.gif&ct=g"
    },
    "fixed_width_still": {
      "height": "113",
      "width": "200",
      "size": "16580",
      "url": "https://media2.giphy.com/media/FftX0IDWgZw074Oqb1/200w_s.gif?cid=0291a4c14ftea62gw8d10ab11u1yagka6vnh4ln3vcf2kjwc&rid=200w_s.gif&ct=g"
    },
    "original_still": {
      "height": "270",
      "width": "480",
      "size": "77083",
      "url": "https://media2.giphy.com/media/FftX0IDWgZw074Oqb1/giphy_s.gif?cid=0291a4c14ftea62gw8d10ab11u1yagka6vnh4ln3vcf2kjwc&rid=giphy_s.gif&ct=g"
    },
    "original_mp4": {
      "height": "270",
      "width": "480",
      "mp4_size": "516802",
      "mp4": "https://media2.giphy.com/media/FftX0IDWgZw074Oqb1/giphy.mp4?cid=0291a4c14ftea62gw8d10ab11u1yagka6vnh4ln3vcf2kjwc&rid=giphy.mp4&ct=g"
    },
    "480w_still": {
      "height": "270",
      "width": "480",
      "size": "8552905",
      "url": "https://media2.giphy.com/media/FftX0IDWgZw074Oqb1/480w_s.jpg?cid=0291a4c14ftea62gw8d10ab11u1yagka6vnh4ln3vcf2kjwc&rid=480w_s.jpg&ct=g"
    }
  },
  "user": {
    "avatar_url": "https://media1.giphy.com/avatars/Roland-Garros/9ztB7JZL1WCt.gif",
    "banner_image": "https://media1.giphy.com/headers/Roland-Garros/qGSHfw6PzKqO.jpg",
    "banner_url": "https://media1.giphy.com/headers/Roland-Garros/qGSHfw6PzKqO.jpg",
    "profile_url": "https://giphy.com/Roland-Garros/",
    "username": "Roland-Garros",
    "display_name": "Roland-Garros",
    "description": "Roland-Garros / French Open / Internationaux de France From Sunday 27th September to Sunday 11 October 2020. #RolandGarros http://rolandgarros.com",
    "instagram_url": "https://instagram.com/rolandgarros",
    "website_url": "https://www.rolandgarros.com/fr-fr/",
    "is_verified": true,
    "suppress_chrome": false,
    "is_public": false
  },
  "analytics_response_payload": "e=Z2lmX2lkPUZmdFgwSURXZ1p3MDc0T3FiMSZldmVudF90eXBlPUdJRl9UUkVORElORyZjaWQ9MDI5MWE0YzE0ZnRlYTYyZ3c4ZDEwYWIxMXUxeWFna2E2dm5oNGxuM3ZjZjJrandjJmN0PWdpZg",
  "analytics": {
    "onload": {
      "url": "https://giphy-analytics.giphy.com/v2/pingback_simple?analytics_response_payload=e%3DZ2lmX2lkPUZmdFgwSURXZ1p3MDc0T3FiMSZldmVudF90eXBlPUdJRl9UUkVORElORyZjaWQ9MDI5MWE0YzE0ZnRlYTYyZ3c4ZDEwYWIxMXUxeWFna2E2dm5oNGxuM3ZjZjJrandjJmN0PWdpZg&action_type=SEEN"
    },
    "onclick": {
      "url": "https://giphy-analytics.giphy.com/v2/pingback_simple?analytics_response_payload=e%3DZ2lmX2lkPUZmdFgwSURXZ1p3MDc0T3FiMSZldmVudF90eXBlPUdJRl9UUkVORElORyZjaWQ9MDI5MWE0YzE0ZnRlYTYyZ3c4ZDEwYWIxMXUxeWFna2E2dm5oNGxuM3ZjZjJrandjJmN0PWdpZg&action_type=CLICK"
    },
    "onsent": {
      "url": "https://giphy-analytics.giphy.com/v2/pingback_simple?analytics_response_payload=e%3DZ2lmX2lkPUZmdFgwSURXZ1p3MDc0T3FiMSZldmVudF90eXBlPUdJRl9UUkVORElORyZjaWQ9MDI5MWE0YzE0ZnRlYTYyZ3c4ZDEwYWIxMXUxeWFna2E2dm5oNGxuM3ZjZjJrandjJmN0PWdpZg&action_type=SENT"
    }
  },
  "tags": [],
  "is_anonymous": false,
  "is_community": false,
  "is_featured": false,
  "is_hidden": false,
  "is_indexable": false,
  "is_preserve_size": false,
  "is_realtime": false,
  "is_removed": false,
  "is_dynamic": false
}
giannif commented 3 years ago

@kossnocorp thanks for filing this issue. @pshoniuk @00000111 maybe you can check with the api team and get a better definition on what could be optional, we can then update our types package accordingly

It would also be good to update our public api schema docs

niktsanov commented 1 year ago

Hi there, I hope you're doing well! Just wanted to check if there have been any updates on this?

We have noticed other differences as well. For example, preview being of type IImage, while in the docs it states that it should return mp4. Also, original_mp4 is not specified in the docs, but rather the mp4 is returned as part of the original.

Is there a reason for these differences?

Happy to help further✌️