This is happening frequently with niche games that usually have 1 channel / 1 viewer, games that are often not being streamed at all.
~12:20 PST on Sept 5
Endpoint https://api.twitch.tv/kraken/games/top?offset=1900&limit=100
Response:
{
"_total": 2187,
"top": [
...
{
"game": {
"name": "Buoyancy",
"popularity": 0,
"_id": 514178,
"giantbomb_id": 74989,
"box": {
"large": "https://static-cdn.jtvnw.net/ttv-boxart/Buoyancy-272x380.jpg",
"medium": "https://static-cdn.jtvnw.net/ttv-boxart/Buoyancy-136x190.jpg",
"small": "https://static-cdn.jtvnw.net/ttv-boxart/Buoyancy-52x72.jpg",
"template": "https://static-cdn.jtvnw.net/ttv-boxart/Buoyancy-{width}x{height}.jpg"
},
"logo": {
"large": "https://static-cdn.jtvnw.net/ttv-logoart/Buoyancy-240x144.jpg",
"medium": "https://static-cdn.jtvnw.net/ttv-logoart/Buoyancy-120x72.jpg",
"small": "https://static-cdn.jtvnw.net/ttv-logoart/Buoyancy-60x36.jpg",
"template": "https://static-cdn.jtvnw.net/ttv-logoart/Buoyancy-{width}x{height}.jpg"
},
"localized_name": "Buoyancy",
"locale": "en-us"
},
"viewers": 1,
"channels": 1
},
...
]
}
Great, right? Let’s see what helix has to say about this…
Endpoint: https://api.twitch.tv/helix/games?name=Buoyancy
Response:
{
"data": [
{
"id": "513800",
"name": "Buoyancy",
"box_art_url": "https://static-cdn.jtvnw.net/ttv-boxart/Buoyancy-{width}x{height}.jpg"
}
]
}
Odd, let’s try calling using the ID then
Endpoint: https://api.twitch.tv/helix/games?id=514178
Response:
{
"data": [
{
"id": "514178",
"name": "Buoyancy",
"box_art_url": "https://static-cdn.jtvnw.net/ttv-boxart/Buoyancy-{width}x{height}.jpg"
}
]
}
So using the ID seems to match what top_games
is saying, let’s see what this 513800
is all about.
Endpoint: https://api.twitch.tv/helix/games?id=513800
Response:
{
"data": [
{
"id": "513800",
"name": "The Welkin World: Rebels",
"box_art_url": "https://static-cdn.jtvnw.net/ttv-boxart/./The%20Welkin%20World:%20Rebels-{width}x{height}.jpg"
}
]
}
Well that’s not good, looks like there is some inconsistency with the data that helix is returning.
Another quick scan using offset=1600
yielded
{
"game": {
"name": "TFM: The First Men",
"popularity": 0,
"_id": 513633,
"giantbomb_id": 74821,
"box": {
"large": "https://static-cdn.jtvnw.net/ttv-boxart/./TFM:%20The%20First%20Men-272x380.jpg",
"medium": "https://static-cdn.jtvnw.net/ttv-boxart/./TFM:%20The%20First%20Men-136x190.jpg",
"small": "https://static-cdn.jtvnw.net/ttv-boxart/./TFM:%20The%20First%20Men-52x72.jpg",
"template": "https://static-cdn.jtvnw.net/ttv-boxart/./TFM:%20The%20First%20Men-{width}x{height}.jpg"
},
"logo": {
"large": "https://static-cdn.jtvnw.net/ttv-logoart/./TFM:%20The%20First%20Men-240x144.jpg",
"medium": "https://static-cdn.jtvnw.net/ttv-logoart/./TFM:%20The%20First%20Men-120x72.jpg",
"small": "https://static-cdn.jtvnw.net/ttv-logoart/./TFM:%20The%20First%20Men-60x36.jpg",
"template": "https://static-cdn.jtvnw.net/ttv-logoart/./TFM:%20The%20First%20Men-{width}x{height}.jpg"
},
"localized_name": "TFM: The First Men",
"locale": "en-us"
},
"viewers": 2,
"channels": 1
}
Where passing the ID to helix is consistent, but using the name "TFM: The First Men"
returns an ID of 514004
, but unlike the previous example passing the ID back into helix at least returns the same name.
I have around 10 examples of this happening over the last 3-5 days so something must have happened recently to cause such a widespread discrepancy with the games
endpoint.