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

×
That's it.

Sorry for the delay, real life got in the way...

I'll post the updated versions in a minute
Is there a way to copy over the authentication tokens from a browser like it can be done with lgogdownloader? A plain copy isn't working, from the code the token layout is different, but maybe I'm missing an option?
Note: this is Looooong because I can't use any markup to create code boxes. And I can't attach a zip file :(
Sorry

OK, here's the updates for my script and how I'm set up:

Physical:
Running Linux: OpenMandriva, MX, Mint, Manjaro (I multiboot, Mint was primary, but then wanted to play with KDE - OM won the die roll)

4x mech drives all formatted with XFS and set up using mergerfs (think fake raid - other options would be using an actual raid setup or btrfs - if new to linux ignore this part) mounted to "/mnt/hdd"

Main Directory: /mnt/hdd/GogRepo
Sub Directories: Extras, Linux, Mac, Windows

/mnt/hdd/GogRepo/
-----------------Extras
-----------------Linux
-----------------Mac
-----------------Windows

Scripts (mine and gogrepo.py) go in the Main Directory
I'm just going to include the login, extras and linux download scripts as examples. After these scripts I'll just include the variables at the top that changed.

They're not the prettiest, but they work.

All of these run from the terminal, not the gui. So for Linux Mint, when you open the terminal (be sure to right-click to enable the menu bar) you can actually open up 5 tabs all in the main (GogRepo) directory.

Remember to have the scripts all marked as executable.

Then in tab 1: ./goglogin.sh When that is done (check the log if needed)

Tab 2: ./gogextras.sh
Tab 3: ./gogtux.sh
Tab 4: ./gogmac.sh
Tab 5: ./gogwin.sh

I give each script about a minute to get started before I switch tabs and start the next one. Run until done.

You could us a tool like Kitty terminal or tmux to "window pane" your terminal rather than tabs. Just be sure to leave it open while it's downloading.

''''
Script 1: goglogin.sh

#!/bin/sh

# Get the GOG login token

# -e Exit immediately if a command exits with a non-zero status.
set -e

# User Logins
# ==========================================
GOGemail="xxx@xxx.com"
GOGpw="CoolPasswordHere"
# ------------------------------------------

# Program Variables
# ==========================================
GOGREPOC="python3 $PWD/gogrepoc.py"
LOGREPO="gogrepo.log"
LOGINLOG="loginresults.log"
# ------------------------------------------

# Delete existing log files
# ==========================================
if [ -f "$LOGREPO" ]
then
rm $LOGREPO
fi
# ------------------------------------------

# Login and get tokens
# ==========================================
$GOGREPOC login $GOGemail $GOGpw
if [ -f "$LOGREPO" ]
then
mv $LOGREPO $LOGINLOG
fi
# ------------------------------------------

# Finish up
# ==========================================
cd ..
echo "Done: GOG Login\n"
# ------------------------------------------

''''

````
Script 2: gogextra.sh

#!/bin/sh

# -e Exit immediately if a command exits with a non-zero status.
set -e

# python3 gogrepoc.py update -installers both -full -os mac linux windows -lang en bl ru gk sb ar br jp ko fr cn cz hu pt tr sk nl ro es pl it de da sv fi no
# python3 gogrepoc.py update -installers both -full -os mac linux windows -lang en

# 2023-05-29
# Add -covers and -backgrounds parameters to download command , they download cover images and background images (respectively) for each game to be downloaded.

GOGREPOC="python3 $PWD/gogrepoc.py"
PLATFORM="linux windows mac"
LANGUAGE="en bl ru gk sb ar br jp ko fr cn cz hu pt tr sk nl ro es pl it de da sv fi no"
LIBDIR="$PWD/Extras"

LOGREPO="gogrepo.log"
UPDATELOG="zUpdate.log"
DOWNLOADLOG="zDownload.log"
VERIFYLOG="zVerify.log"

cp gog-token.dat $LIBDIR
cd $LIBDIR

# Delete existing log files
# ==========================================
if [ -f "$LOGREPO" ]
then
rm $LOGREPO
fi

if [ -f "$UPDATELOG" ]
then
rm $UPDATELOG
fi

if [ -f "$DOWNLOADLOG" ]
then
rm $DOWNLOADLOG
fi

if [ -f "$VERIFYLOG" ]
then
rm $VERIFYLOG
fi
# ==========================================

# Update manifest database
# ==========================================
$GOGREPOC update -full -lang $LANGUAGE
if [ -f "$LOGREPO" ]
then
mv $LOGREPO $UPDATELOG
fi
# ==========================================

# Download files
# ==========================================
$GOGREPOC download -os $PLATFORM -skipgames -covers -backgrounds
if [ -f "$LOGREPO" ]
then
mv $LOGREPO $DOWNLOADLOG
fi
# ==========================================

# Verfy files
# ==========================================
$GOGREPOC verify -os $PLATFORM -skipgames
if [ -f "$LOGREPO" ]
then
mv $LOGREPO $VERIFYLOG
fi

# Finish up
# ==========================================
cd ..
echo "Done: Game Extras Downloads\n"
````

````

Script 3: gogtux.sh

#!/bin/sh

# -e Exit immediately if a command exits with a non-zero status.
set -e

# python3 gogrepoc.py update -installers both -full -os mac linux windows -lang en bl ru gk sb ar br jp ko fr cn cz hu pt tr sk nl ro es pl it de da sv fi no
# python3 gogrepoc.py update -installers both -full -os mac linux windows -lang en

GOGREPOC="python3 $PWD/gogrepoc.py"
PLATFORM="linux"
LANGUAGE="en"
LIBDIR="$PWD/Linux"

LOGREPO="gogrepo.log"
UPDATELOG="zUpdate.log"
DOWNLOADLOG="zDownload.log"
VERIFYLOG="zVerify.log"

cp gog-token.dat $LIBDIR/
cd $LIBDIR

# Delete existing log files
# ==========================================
if [ -f "$LOGREPO" ]
then
rm $LOGREPO
fi

if [ -f "$UPDATELOG" ]
then
rm $UPDATELOG
fi

if [ -f "$DOWNLOADLOG" ]
then
rm $DOWNLOADLOG
fi

if [ -f "$VERIFYLOG" ]
then
rm $VERIFYLOG
fi
# ==========================================

# Update manifest database
# ==========================================
$GOGREPOC update -full -os $PLATFORM -lang $LANGUAGE
if [ -f "$LOGREPO" ]
then
mv $LOGREPO $UPDATELOG
fi
# ==========================================

# Download files
# ==========================================
$GOGREPOC download -os $PLATFORM -skipextras
if [ -f "$LOGREPO" ]
then
mv $LOGREPO $DOWNLOADLOG
fi
# ==========================================

# Verfy files
# ==========================================
$GOGREPOC verify -os $PLATFORM -skipextras
if [ -f "$LOGREPO" ]
then
mv $LOGREPO $VERIFYLOG
fi

# Finish up
# ==========================================
cd ..
echo "Done: Linux Downloads\n"
````

For the Mac script:

GOGREPOC="python3 $PWD/gogrepoc.py"
PLATFORM="mac"
LANGUAGE="en"
LIBDIR="$PWD/Mac"

For the windows script

GOGREPOC="python3 $PWD/gogrepoc.py"
PLATFORM="windows"
LANGUAGE="en"
LIBDIR="$PWD/Windows"

avatar
Dawnsinger: Is there a way to copy over the authentication tokens from a browser like it can be done with lgogdownloader? A plain copy isn't working, from the code the token layout is different, but maybe I'm missing an option?
In theory yes. I've never been able to. But in my scripts I just copy it over:

cp gog-token.dat $LIBDIR/
cd $LIBDIR
Post edited February 04, 2026 by UrsaCorvalis
avatar
Dawnsinger: Is there a way to copy over the authentication tokens from a browser like it can be done with lgogdownloader? A plain copy isn't working, from the code the token layout is different, but maybe I'm missing an option?
If you use gorepoc to try to login it should walk you through the process necessary to get the token ( it'll provide you a URL to use and then ask you to copy a resulting URL back from which it'll generate the token ) if the Username / Password fail. If that's failing lmk, it's possible that GOG has changed the captcha again and it's not being detected properly.
avatar
UrsaCorvalis:
I'm starting to think I will end up spoiled, being handed everything I need like this with no need to figure anything for myself. :-)

Thanks for your help. With your detailed scripts plus some stuff people included above in their replies to me, I probably won't have any trouble setting up my own scripts.

avatar
UrsaCorvalis: Note: this is Looooong because I can't use any markup to create code boxes. And I can't attach a zip file :(
Hint: You actually can create some "boxes" using the quote tag, without a post number to reference. Like I will do below.


I suppose this largely unknown forum feature would work for your intents.

It's not perfect, but better than nothing.
Post edited February 08, 2026 by joppo
avatar
joppo: I'm starting to think I will end up spoiled, being handed everything I need like this with no need to figure anything for myself. :-)

Thanks for your help. With your detailed scripts plus some stuff people included above in their replies to me, I probably won't have any trouble setting up my own scripts.
;D

This is just your starting point. You'll adapt these, then start watching youtubes (learnlinux, distrotube, linuxcast, etc) and increase your skills.

Next thing you know, you'll be supplying the scripts and configs.

Using the quote tag - brilliant. - see what I mean?
avatar
Kalanyr: If you use gorepoc to try to login it should walk you through the process necessary to get the token ( it'll provide you a URL to use and then ask you to copy a resulting URL back from which it'll generate the token ) if the Username / Password fail. If that's failing lmk, it's possible that GOG has changed the captcha again and it's not being detected properly.
I bet it works, it's just that I'd much prefer not to enter credentials at all. :) So I assume I could just purposefully fail the username/pw and then go through the URL, though.
Post edited February 08, 2026 by Dawnsinger
avatar
Kalanyr: If you use gorepoc to try to login it should walk you through the process necessary to get the token ( it'll provide you a URL to use and then ask you to copy a resulting URL back from which it'll generate the token ) if the Username / Password fail. If that's failing lmk, it's possible that GOG has changed the captcha again and it's not being detected properly.
avatar
Dawnsinger: I bet it works, it's just that I'd much prefer not to enter credentials at all. :) So I assume I could just purposefully fail the username/pw and then go through the URL, though.
No, the rejection for an incorrect Username/Password is different to triggering the captcha so it won't go down the captcha path. I could add a login pathway for that specifically I suppose, I should note there's not really any safety increase here, any mechanism to exfiltrate your creds could also exfiltrate the token and the token is sufficient to establish a session and renew it indefinitely.
avatar
Kalanyr: I could add a login pathway for that specifically I suppose,
Nah, not for me alone, anyway, as I seem to be the only one even thinking about it. :)
avatar
Kalanyr: I should note there's not really any safety increase here, any mechanism to exfiltrate your creds could also exfiltrate the token and the token is sufficient to establish a session and renew it indefinitely.
Hm, mostly correct I suppose, but I think (hope?) that with the token one could post on the forum, buy and install games, but not change login credentials.

I've of course enabled 2FA so there's not a great risk either way, I'm probably just being paranoid. And of course I've looked at the code and it does look good, it's just that I'm not good enough with Python to fully appreciate it.
Post edited February 09, 2026 by Dawnsinger
FWIW,

The few times I've had issues logging in with the script all I did was log in with the browser, then - while still logged in - log in via the script.

So for a brief period I was logged in twice.

And the script got the token.

So however gog interpreted it, it worked for me
avatar
UrsaCorvalis: The few times I've had issues logging in with the script all I did was log in with the browser, then - while still logged in - log in via the script.
I was about to suggest the same. I don't recall the last time I've had to deal with 2FA or CAPTCHA with gogrepoc login (or ever importing the login token from a web browser for that matter), even if starting from the scratch on a new machine. I do exactly like you, ie. on that very same PC, I log into the GOG web site, ie. do all that 2FA stuff etc. on the web browser, and then gogrepoc login works without any extra hurdles. Maybe GOG simply recognizes that both connection attempts come from the same IP address so it is all ok, no 2FA required.

Of course I don't know what is the case with the person who asks, if he wants to automate it so that manually using a web browser on that same machine to log into gog.com is not an option etc.
Hi, "gogrepoc.py" is skipping the download of a file for me:

https://www.gog.com/downloads/alone_in_the_dark_2/en1installer0

It does download the "extra" files for that game, however.
The file seems downloadable from the web site, it is listed for multiple languages, but apparently always the same.

Another weird thing I noticed:

gogrepo.log:19:24:29 | missing file metro_2033_redux/setup_metro_2033_redux_2.0.0.2.exe
gogrepo.log:19:24:29 | missing file metro_2033_redux/setup_metro_2033_redux_2.0.0.2-1.bin
gogrepo.log:19:24:29 | missing file metro_2033_redux/setup_metro_2033_redux_2.0.0.2-2.bin
gogrepo.log:19:24:29 | verifying metro_2033_redux/setup_metro_2033_redux_1.03_(33180).exe...
gogrepo.log:19:24:29 | verifying metro_2033_redux/setup_metro_2033_redux_1.03_(33180)-1.bin...
gogrepo.log:19:25:14 | verifying metro_2033_redux/setup_metro_2033_redux_1.03_(33180)-2.bin...

It is listing version 2.0.0.2 as "missing", but on the web site, there's only version 1.03 for download.

Likewise FlatOut has got an issue:
https://www.gog.com/downloads/flatout/en3installer0
gogrepo-p.log:01:15:42 | missing file flatout/setup_flatout_2.1.0.7.exe
gogrepo-p.log:01:15:42 | verifying flatout/gog_flatout_2.1.0.8.sh...
gogrepo-p.log:01:15:42 | skipping previously verified flatout/gog_flatout_2.1.0.8.sh
gogrepo-p.log:01:15:42 | verifying flatout/setup_flatout_1.1_(17772).exe...
gogrepo-p.log:01:15:42 | skipping previously verified flatout/setup_flatout_1.1_(17772).exe
gogrepo-p.log:01:15:42 | verifying flatout/flatout_gog_3_23461.sh...
gogrepo-p.log:01:15:42 | skipping previously verified flatout/flatout_gog_3_23461.sh
The verified files are actually there, for Windows there's 1.1_(17772) on my hard disk, while the obviously older 2.1.0.7 is still reported as "missing".

Note: I'm keeping a "full" manifest (of everything), and restrict downloads by OS and language lists.
I perform a "full download" of the manifest from time to time as well, but without deleting the previous one, if that matters.

I'ts actually not much of a problem when "ancient files" are reported as "missing", but available files not getting downloaded is (1st problem mentioned above [Alone in the Dark 2]).
Post edited February 11, 2026 by ChFra
avatar
ChFra: Hi, "gogrepoc.py" is skipping the download of a file for me:

https://www.gog.com/downloads/alone_in_the_dark_2/en1installer0

It does download the "extra" files for that game, however.
The file seems downloadable from the web site, it is listed for multiple languages, but apparently always the same.

Another weird thing I noticed:

gogrepo.log:19:24:29 | missing file metro_2033_redux/setup_metro_2033_redux_2.0.0.2.exe
gogrepo.log:19:24:29 | missing file metro_2033_redux/setup_metro_2033_redux_2.0.0.2-1.bin
gogrepo.log:19:24:29 | missing file metro_2033_redux/setup_metro_2033_redux_2.0.0.2-2.bin
gogrepo.log:19:24:29 | verifying metro_2033_redux/setup_metro_2033_redux_1.03_(33180).exe...
gogrepo.log:19:24:29 | verifying metro_2033_redux/setup_metro_2033_redux_1.03_(33180)-1.bin...
gogrepo.log:19:25:14 | verifying metro_2033_redux/setup_metro_2033_redux_1.03_(33180)-2.bin...

It is listing version 2.0.0.2 as "missing", but on the web site, there's only version 1.03 for download.

Likewise FlatOut has got an issue:
https://www.gog.com/downloads/flatout/en3installer0
gogrepo-p.log:01:15:42 | missing file flatout/setup_flatout_2.1.0.7.exe
gogrepo-p.log:01:15:42 | verifying flatout/gog_flatout_2.1.0.8.sh...
gogrepo-p.log:01:15:42 | skipping previously verified flatout/gog_flatout_2.1.0.8.sh
gogrepo-p.log:01:15:42 | verifying flatout/setup_flatout_1.1_(17772).exe...
gogrepo-p.log:01:15:42 | skipping previously verified flatout/setup_flatout_1.1_(17772).exe
gogrepo-p.log:01:15:42 | verifying flatout/flatout_gog_3_23461.sh...
gogrepo-p.log:01:15:42 | skipping previously verified flatout/flatout_gog_3_23461.sh
The verified files are actually there, for Windows there's 1.1_(17772) on my hard disk, while the obviously older 2.1.0.7 is still reported as "missing".

Note: I'm keeping a "full" manifest (of everything), and restrict downloads by OS and language lists.
I perform a "full download" of the manifest from time to time as well, but without deleting the previous one, if that matters.

I'ts actually not much of a problem when "ancient files" are reported as "missing", but available files not getting downloaded is (1st problem mentioned above [Alone in the Dark 2]).
I suspect the changed behaviour of the manifest is causing you to have outdated manifest entries for some games. Gogrepoc now ( for a pretty long time actually ) tries to determine your OS & Language from your system, so unless you're affirmatively specifying the full set of languages and OS when you do a full manifest update it's probably not actually updating everything in the manifest.
avatar
Kalanyr: I suspect the changed behaviour of the manifest is causing you to have outdated manifest entries for some games.
I think I'll look again after creating a new manifest. Will it be enough to simply move the old file away or could that break something?
avatar
Kalanyr: Gogrepoc now ( for a pretty long time actually ) tries to determine your OS & Language from your system,
I don't think that this matters in my case, because…
avatar
Kalanyr: unless you're affirmatively specifying the full set of languages and OS when you do a full manifest update it's probably not actually updating everything in the manifest.
I actually do that, I've made a script similar to those UrsaCorvalis has posted above; to avoid that sort of issues, I've chosen to not rely on implicit default settings not changing.

All this, however, can only reasonably explain the entries, where files are reported as missing despite of not being downloadable (any more) at all.

The other issue is far more disturbing: there's at least one file appartently "not seen" by the programme.
avatar
Kalanyr: I suspect the changed behaviour of the manifest is causing you to have outdated manifest entries for some games.
avatar
ChFra: I think I'll look again after creating a new manifest. Will it be enough to simply move the old file away or could that break something?
avatar
Kalanyr: Gogrepoc now ( for a pretty long time actually ) tries to determine your OS & Language from your system,
avatar
ChFra: I don't think that this matters in my case, because…
avatar
Kalanyr: unless you're affirmatively specifying the full set of languages and OS when you do a full manifest update it's probably not actually updating everything in the manifest.
avatar
ChFra: I actually do that, I've made a script similar to those UrsaCorvalis has posted above; to avoid that sort of issues, I've chosen to not rely on implicit default settings not changing.

All this, however, can only reasonably explain the entries, where files are reported as missing despite of not being downloadable (any more) at all.

The other issue is far more disturbing: there's at least one file appartently "not seen" by the programme.
I just checked and I have a proper entry for Alone in the Dark 2 , and the file was downloaded successfully , however it hasn't been updated in ages ( 2019 )/. I recently did a full update too so it should have cleared the entry if it was a proper entry. Have you tried force updating the manifest using -ids alone_in_the_dark_2 ? It's possible there was a communication error at the time and the entry is simply not in your manifest as a result.

ETA - Moving the old file away and then back can cause the result of verifications and last downloaded to desychronize but that should only be a real problem in very rare cases where GOG updates the file without changing the name and the file size doesn't change either ( weird things like the Baldur's Gate III Mac GameData files are the only things particularly likely to have this problem and that's probably finished updating for the immediate future, most of the other games with this issue also are no longer currently updating ).
Post edited February 12, 2026 by Kalanyr