First we need to find where and how ubisoft keeps track of the games installed by uPlay.
After some digging and asking around, I was able to find that there are two ways of acquiring this data.
First way : extracting info from folders
- uPlay makes these folders, which are named after the uplayID itself
C:\Program Files (x86)\Ubisoft\Ubisoft Game Launcher\data
The names of the folders are the uPlay IDs of the installed games
- Below is the python code for extracting IDs via these folders
import winreg, os, re
# Finding Uplay IDs by going through the uPlay data folder
def getUplayIDs(filePath = 'C:\\Program Files (x86)\\Ubisoft\\Ubisoft Game Launcher\\data'):
listOfFiles = os.listdir(filePath)
def findIDs():
result = re.findall(r'\d+', str(entry))
try : return result[0]
except : pass
for entry in listOfFiles:
uPlayID = findIDs() # '\d' finds any number (a digit)
if uPlayID != None : print(uPlayID)
#getUplayIDs()
Second way : extracting info from Windows Registry
def getUplayIDs():
# ubisoftGameList = {}
baseReg = winreg.ConnectRegistry(None, winreg.HKEY_LOCAL_MACHINE)
subKey = winreg.OpenKey(baseReg, "SOFTWARE\\WOW6432Node\\Ubisoft\\Launcher\\Installs\\")
for i in range(50) :
try :
gameId = winreg.EnumKey(subKey,i)
gameNameKey = winreg.OpenKey(baseReg, "SOFTWARE\\WOW6432Node\\Ubisoft\\Launcher\\Installs\\" + gameId + "\\")
name = winreg.EnumValue(gameNameKey, 1)
path = name[1]
path = os.path.dirname(path)
gameName = os.path.basename(path)
print('\nThe Game name is: ' + gameName + ' \nThe Game ID is: ' + gameId)
except :
pass
winreg.CloseKey(baseReg)
These code snippets are taken from my github project : Plei
Plei is a game-launcher which parses through the games installed by
- Steam
- uPlay
- Origin
- Epic Games
and let's you play them from one single entry point
If you wish to contribute or download the project visit the link below
Top comments (0)