I have a list of chess moves, for example, "e4 c5 Nf3 d6 d4 cxd4 Nxd4 Nf6 Nc3 g6" (I can convert from SAN to PGN or UCI, so don't worry about that). From these moves, I want to get the name of the opening, in this example "Sicilian Defense: Dragon Variation". This functionality is essentially identical to the one you'll find in sites like https://lichess.org/analysis#explorer, https://www.chess.com/analysis, and https://www.365chess.com/opening.php.
The current approach I have implemented involves making in my case very many requests to the Lichess Masters database via https://explorer.lichess.ovh/masters (see https://lichess.org/api#operation/openingExplorerMaster). However, the problem is that I have to make a very high number of requests, making this approach not viable.
I'm working with Python, so I'd definitely prefer that the solution would be in Python.