Skip to content

[Feature] Improve matching with HowLongTobeat and other catalogs #3390

@basgys

Description

@basgys

As requested by @gantoine, here is a follow-up for #2504.

I ran into the same problem on a project and ended up building an API with a free plan, since this comes up every time you need to aggregate/reference game data across sources.

The API is available on RapidAPI: https://rapidapi.com/deixis-deixis-games/api/game-catalog-api

RapidAPI is a hub and marketplace for APIs. They handle quota/rate limit, billing, and more.

You can use it to retrieve matching HowLongToBeat IDs from IGDB, Steam, or other catalogs. My use case is modern PC and console games, so I am curious how well the ID coverage holds up for older ROMs. I would be happy to help integrate it into this project.

Example

I tested with Ocarina of time from an IGDB ID:

curl -s \
  -H "X-RapidAPI-Key: YOUR_RAPIDAPI_KEY" \
  "https://game-catalog-api.p.rapidapi.com/v1/catalogs/igdb/id/1029"
{
  "id": "1029",
  "slug": "the-legend-of-zelda-ocarina-of-time",
  "urls": [
    "https://www.igdb.com/games/the-legend-of-zelda-ocarina-of-time"
  ],
  "references": {
    "howlongtobeat": {
      "id": "10035",
      "canonical": true,
      "urls": [
        "https://howlongtobeat.com/game/10035"
      ]
    },
    "metacritic": {
      "id": "1300001290",
      "slug": "the-legend-of-zelda-ocarina-of-time",
      "canonical": true,
      "urls": [
        "https://www.metacritic.com/game/the-legend-of-zelda-ocarina-of-time/"
      ]
    },
    "twitch": {
      "id": "11557",
      "canonical": true
    }
  }
}

ToS concerns

@gantoine brought up potential ToS violations with IGDB and HLTB. To clarify: the API only resolves identifiers across catalogs, it does not serve HLTB or IGDB content. No playtimes, no scores, no game descriptions, just "this IGDB ID maps to this HLTB ID." An ID is a fact, not intellectual property.

Wikidata stores HLTB IDs, IGDB IDs, Metacritic IDs and makes them freely queryable via their own API. It is the same concept, and no platform has challenged it. An identifier pointing to their content is not their content.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels
    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions