It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
There is not any way for checking the file integrity?

=== EDIT ===

Already bored of manually downloading and checking (I have too many files to download and check).

If anyone is interested, I wrote a shell script to automate things (I'm sure there is a much better way to write what the script does; please don't scold me, I use to program in C, not in Bash).

In the 'Extras' section there is much content lacking a .xml file, I added a check to know if wget was able to retrieve the corresponding .xml.

As there are no tags for indicating source code, I will use ASCII indicators:

=== SCRIPT START ===

#!/bin/bash

#sintaxis comprobamos número de argumentos
if [ "$#" -ne 2 ]
then
echo ""
echo "Sintaxis: $0 <límite> <url>"
echo " límite: Valor numérico que indica el límite en kylobytes por segundo para la descarga"
echo " url: url del archivo que se ha de descargar desde gog"
echo ""
else

# primer argumento: limite de descarga en kilobytes por segundo
# solo valor numérico y añadimos el sufijo para kilobyte
LIMITE="$1""k"

# segundo argumento: url del archivo
URL_ARCHIVO="$2"


#descargamos los archivos
wget -c --progress=bar --limit-rate="$LIMITE" "$URL_ARCHIVO"

# convertimos las secuencias de escape de una url (%HEX) a su correspondiente caracter ASCII
# código perl copiado desde Baeldung - Decoding encoded URLs in Linux
ARCHIVO="$(echo "$URL_ARCHIVO" | rev | cut -d '/' -f 1 | rev | perl -pe 's/\+/\ /g;' -e 's/%(..)/chr(hex($1))/eg;')"

URL_XML="$URL_ARCHIVO"".xml"

# intentamos descargar el archivo xml correspondiente
wget -c --progress=bar --limit-rate="$LIMITE" "$URL_XML"

# Si el estado devuelto por wget no es 0 (EXIT_SUCCESS) no hay .xml con el que trabajar
if [ "$?" -eq 0 ]
then
XML="$ARCHIVO"".xml"

# extraemos del .xml el md5 que el archivo debería tener.
MD5_XML="$(head -n 1 "$XML" | tr " " "\n" | grep -i md5 | cut -d "\"" -f 2)"

# y leemos el md5 que md5sum calcula sobre el archivo descargado
MD5_ARCHIVO="$(md5sum "$ARCHIVO" | cut -d ' ' -f 1)"

echo ""

# comparamos
if [ "$MD5_XML" = "$MD5_ARCHIVO" ]
then
echo "Descarga correcta."
else
echo "Los MD5 no coinciden:"
echo "MD5 descarga: $MD5_ARCHIVO"
echo " MD5 XML: $MD5_XML"
fi

echo ""

# el archivo .xml ya no es necesario
rm "$XML"
fi

# Y... ¡CORTEN!
fi

=== SCRIPT END ===
Post edited August 27, 2025 by DrFiemo
The installer has the option to verify the installation but not the download.

https://www.gog.com/forum/general/download_and_verify_options

xml files contain the md5 hash values that can be used to verify file integrity when you download games.

one way to grab the xml file:
Go to your browser's download manager window.
Rick-click on the file that you are downloading and select "copy download link" (or something similar).
In your command prompt, input "wget", followed by the download link, followed by ".xml"

Example: "wget downloadlink.exe.xml"

another way to grab the xml file:
copy the download link, paste it into your browser's address bar, and append ".xml"
Thank you!

Almost the same that I was doing. I will try it. For me the MD5 hash is enough for a quick check.

EDIT:

Yes it is what I was searching. The md5 sum of the file is found int the first line. For a quick check:

head -n 1 the_xml_file.xml && md5sum the_game_file

(It seems that there is not a "code" text mode)
Post edited August 21, 2025 by DrFiemo
avatar
Dark_art_: The installer has the option to verify the installation but not the download.

xml files contain the md5 hash values that can be used to verify file integrity when you download games.

one way to grab the xml file:
Go to your browser's download manager window.
Rick-click on the file that you are downloading and select "copy download link" (or something similar).
In your command prompt, input "wget", followed by the download link, followed by ".xml"

Example: "wget downloadlink.exe.xml"

another way to grab the xml file:
copy the download link, paste it into your browser's address bar, and append ".xml"
Thanks, that's very interesting. I was not aware there was another way to get MD5 values (ZIP files excepted).

I just used curl to get the true download link for some game files, then appended the '.xml' and used wget.

And an XML file was downloaded for 2 out of the 3 files (EXE and BIN, but not ZIP).

And as well as the XML file for the BIN file having the MD5 value at the top of the result, MD5 values were also listed for chunks of the BIN file ... those last being handy for multiple download threads no doubt.

Number of bytes for both files was also listed.

P.S. I had to use a cookie file with curl.exe of course.

For those who would like to know, here's the XML return for an EXE file.

<file name="setup_15_days_1.0_(19285).exe" available="1" notavailablemsg="" md5="eed77e8beeb270924d0ab51470dbf5ae" chunks="1" timestamp="2018-03-14 14:03:00" total_size="821824">
<chunk id="0" from="0" to="821823" method="md5">eed77e8beeb270924d0ab51470dbf5ae</chunk>
</file>
EDIT
But then again, maybe I didn't realize that gogcli.exe and gogrepo.py use this method ... me not being privy to the finer details of those two programs ... and lgogdownloader is likely the same.
Post edited August 23, 2025 by Timboli