.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3. .TH LGOGDOWNLOADER "1" "March 2024" "LGOGDownloader 3.12" "User Commands" .SH NAME LGOGDownloader \- downloader for GOG.com games and other files .SH SYNOPSIS .B lgogdownloader [\fIOPTION\fP]... .SH DESCRIPTION An open-source GOG.com downloader for Linux users which uses the same API as GOG Galaxy. .PP LGOGDownloader can download purchased games, query GOG.com to see if game files have changed, as well as downloading extras such as artwork and manuals. It is capable of downloading language-specific installers for games where they exist. .PP LGOGDownloader 3.12 Options: .TP \fB\-h\fR [ \fB\-\-help\fR ] Print help message .TP \fB\-\-version\fR Print version information .TP \fB\-\-login\fR Login .TP \fB\-\-list\fR [=arg(=games)] List games/tags Games = g|games Details = d|details JSON = j|json Tags = t|tags Transformations = tr|transform|transfor mations .TP \fB\-\-download\fR Download .TP \fB\-\-repair\fR Repair downloaded files Use \fB\-\-repair\fR \fB\-\-download\fR to redownload files when filesizes don't match (possibly different version). Redownload will rename the old file (appends .old to filename) .TP \fB\-\-game\fR arg Set regular expression filter for download/list/repair (Perl syntax) .TP \fB\-\-create\-xml\fR [=arg(=automatic)] Create GOG XML for file "automatic" to enable automatic XML creation .TP \fB\-\-notifications\fR Check notifications .TP \fB\-\-updated\fR List/download only games with update flag set .TP \fB\-\-new\fR List/download only games with new flag set .TP \fB\-\-clear\-update\-flags\fR Clear update notification flags .TP \fB\-\-check\-orphans\fR arg Check for orphaned files (files found on local filesystem that are not found on GOG servers). Sets regular expression filter (Perl syntax) for files to check. If no argument is given then the regex defaults to \&'.*\e.(zip|exe|bin|dmg|old|deb|tar\e.gz|p kg|sh)$' .TP \fB\-\-delete\-orphans\fR Delete orphaned files during \fB\-\-check\-orphans\fR and \fB\-\-galaxy\-install\fR .TP \fB\-\-status\fR Show status of files .TP Output format: statuscode gamename filename filesize filehash .TP Status codes: OK \- File is OK ND \- File is not downloaded MD5 \- MD5 mismatch, different version FS \- File size mismatch, incomplete download .nf .IP See also \fB\-\-no\-fast\-status\-check\fR option .TP \fB\-\-save\-config\fR Create config file with current settings .TP \fB\-\-reset\-config\fR Reset config settings to default .TP \fB\-\-report\fR [=arg(=lgogdownloader\-report.log)] Save report of downloaded/repaired files to specified file Default filename: lgogdownloader\-report \&.log .TP \fB\-\-update\-cache\fR Update game details cache .TP \fB\-\-no\-platform\-detection\fR Don't try to detect supported platforms from game shelf. Skips the initial fast platform detection and detects the supported platforms from game details which is slower but more accurate. Useful in case platform identifier is missing for some games in the game shelf. Using \fB\-\-platform\fR with \fB\-\-list\fR doesn't work with this option. .TP \fB\-\-download\-file\fR arg Download files using fileid .TP Format: "gamename/fileid" or: "gogdownloader://gamename/fileid" .TP Multiple files: "gamename1/fileid1,gamename2/fileid2" or: "gogdownloader://gamename1/fileid1, gamename2/fileid2" .TP This option ignores all subdir options. The files are downloaded to directory specified with \fB\-\-directory\fR option. .TP \fB\-o\fR [ \fB\-\-output\-file\fR ] arg Set filename of file downloaded with \fB\-\-download\-file\fR. .TP \fB\-\-wishlist\fR Show wishlist .TP \fB\-\-cacert\fR arg Path to CA certificate bundle in PEM format .TP \fB\-\-respect\-umask\fR Do not adjust permissions of sensitive files .TP \fB\-\-user\-agent\fR arg (=LGOGDownloader/3.12) Set user agent .TP \fB\-\-wine\-prefix\fR arg (=.) Set wineprefix directory .TP \fB\-\-cloud\-whitelist\fR arg Include this list of cloud saves, by default all cloud saves are included .TP Example: \fB\-\-cloud\-whitelist\fR saves/AutoSave\-0 saves/AutoSave\-1/scree nshot.png .TP \fB\-\-cloud\-blacklist\fR arg Exclude this list of cloud saves Example: \fB\-\-cloud\-blacklist\fR .TP saves/AutoSave\-0 saves/AutoSave\-1/scree nshot.png .TP \fB\-\-cloud\-force\fR Download or Upload cloud saves even if they're up\-to\-date Delete remote cloud saves even if no saves are whitelisted .TP \fB\-\-enable\-login\-gui\fR Enable login GUI when encountering reCAPTCHA on login form .TP \fB\-\-tag\fR arg Filter using tags. Separate with "," to use multiple values .TP \fB\-\-directory\fR arg (=.) Set download directory .TP \fB\-\-limit\-rate\fR arg (=0) Limit download rate to value in kB 0 = unlimited .TP \fB\-\-xml\-directory\fR arg Set directory for GOG XML files .TP \fB\-\-chunk\-size\fR arg (=10) Chunk size (in MB) when creating XML .TP \fB\-\-platform\fR arg (=w+l) Select which installers are downloaded Windows = w|win|windows Mac = m|mac|osx Linux = l|lin|linux All = all .TP Set priority by separating values with "," Combine values by separating with "+" Example: Linux if available otherwise Windows and Mac: l,w+m .TP \fB\-\-language\fR arg (=en) Select which language installers are downloaded English = en|eng|english|en[_\-]US German = de|deu|ger|german|de[_\-]DE French = fr|fra|fre|french|fr[_\-]FR Polish = pl|pol|polish|pl[_\-]PL Russian = ru|rus|russian|ru[_\-]RU Chinese = cn|zh|zho|chi|chinese|zh[_\-]C N Czech = cz|cs|ces|cze|czech|cs[_\-]CZ Spanish = es|spa|spanish|es[_\-]ES Hungarian = hu|hun|hungarian|hu[_\-]HU Italian = it|ita|italian|it[_\-]IT Japanese = jp|ja|jpn|japanese|ja[_\-]JP Turkish = tr|tur|turkish|tr[_\-]TR Portuguese = pt|por|portuguese|pt[_\-]PT Korean = ko|kor|korean|ko[_\-]KR Dutch = nl|nld|dut|dutch|nl[_\-]NL Swedish = sv|swe|swedish|sv[_\-]SE Norwegian = no|nor|norwegian|nb[_\-]no|n n[_\-]NO Danish = da|dan|danish|da[_\-]DK Finnish = fi|fin|finnish|fi[_\-]FI Brazilian Portuguese = br|pt_br|pt\-br|ptbr|brazilian_portugues e Slovak = sk|slk|slo|slovak|sk[_\-]SK Bulgarian = bl|bg|bul|bulgarian|bg[_\-]B G Ukrainian = uk|ukr|ukrainian|uk[_\-]UA Spanish (Latin American) = es_mx|es\-mx|esmx|es\-419|spanish_latin_a merican Arabic = ar|ara|arabic|ar[_\-][A\-Z]{2} Romanian = ro|ron|rum|romanian|ro[_\-][R M]O Hebrew = he|heb|hebrew|he[_\-]IL Thai = th|tha|thai|th[_\-]TH All = all .TP Set priority by separating values with "," Combine values by separating with "+" Example: German if available otherwise English and French: de,en+fr .TP \fB\-\-no\-remote\-xml\fR Don't use remote XML for repair .TP \fB\-\-no\-unicode\fR Don't use Unicode in the progress bar .TP \fB\-\-no\-color\fR Don't use coloring in the progress bar or status messages .TP \fB\-\-no\-duplicate\-handling\fR Don't use duplicate handler for installers Duplicate installers from different languages are handled separately .TP \fB\-\-no\-subdirectories\fR Don't create subdirectories for extras, patches and language packs .TP \fB\-\-curl\-verbose\fR Set libcurl to verbose mode .TP \fB\-\-insecure\fR Don't verify authenticity of SSL certificates .TP \fB\-\-timeout\fR arg (=10) Set timeout for connection Maximum time in seconds that connection phase is allowed to take .TP \fB\-\-retries\fR arg (=3) Set maximum number of retries on failed download .TP \fB\-\-wait\fR arg (=0) Time to wait between requests (milliseconds) .TP \fB\-\-subdir\-installers\fR arg Set subdirectory for installers Templates: \- %platform% \- %gamename% \- %gamename_firstletter% \- %dlcname% \- %gamename_transformed% \- %gamename_transformed_firstletter% .TP \fB\-\-subdir\-extras\fR arg (=extras) Set subdirectory for extras Templates: \- %platform% \- %gamename% \- %gamename_firstletter% \- %dlcname% \- %gamename_transformed% \- %gamename_transformed_firstletter% .TP \fB\-\-subdir\-patches\fR arg (=patches) Set subdirectory for patches Templates: \- %platform% \- %gamename% \- %gamename_firstletter% \- %dlcname% \- %gamename_transformed% \- %gamename_transformed_firstletter% .TP \fB\-\-subdir\-language\-packs\fR arg (=languagepacks) Set subdirectory for language packs Templates: \- %platform% \- %gamename% \- %gamename_firstletter% \- %dlcname% \- %gamename_transformed% \- %gamename_transformed_firstletter% .TP \fB\-\-subdir\-dlc\fR arg (=dlc/%dlcname%) Set subdirectory for dlc Templates: \- %platform% \- %gamename% \- %gamename_firstletter% \- %dlcname% \- %gamename_transformed% \- %gamename_transformed_firstletter% .TP \fB\-\-subdir\-game\fR arg (=%gamename%) Set subdirectory for game Templates: \- %platform% \- %gamename% \- %gamename_firstletter% \- %dlcname% \- %gamename_transformed% \- %gamename_transformed_firstletter% .TP \fB\-\-use\-cache\fR Use game details cache .TP \fB\-\-cache\-valid\fR arg (=2880) Set how long cached game details are valid (in minutes) Default: 2880 minutes (48 hours) .TP \fB\-\-save\-serials\fR Save serial numbers when downloading .TP \fB\-\-save\-logo\fR Save logo when downloading .TP \fB\-\-ignore\-dlc\-count\fR [=arg(=.*)] Set regular expression filter for games to ignore DLC count information Ignoring DLC count information helps in situations where the account page doesn't provide accurate information about DLCs .TP \fB\-\-include\fR arg (=all) Select what to download/list/repair Base game installers = bi|basegame_installers Base game extras = be|basegame_extras Base game patches = bp|basegame_patches Base game language packs = bl|basegame_languagepacks|basegame_lang packs DLC installers = di|dlc_installers DLC extras = de|dlc_extras DLC patches = dp|dlc_patches DLC language packs = dl|dlc_languagepacks|dlc_langpacks DLCs = d|dlc|dlcs Basegame = b|bg|basegame All installers = i|installers All extras = e|extras All patches = p|patches All language packs = l|languagepacks|langpacks All = all Separate with "," to use multiple values .TP \fB\-\-exclude\fR arg Select what not to download/list/repair Base game installers = bi|basegame_installers Base game extras = be|basegame_extras Base game patches = bp|basegame_patches Base game language packs = bl|basegame_languagepacks|basegame_lang packs DLC installers = di|dlc_installers DLC extras = de|dlc_extras DLC patches = dp|dlc_patches DLC language packs = dl|dlc_languagepacks|dlc_langpacks DLCs = d|dlc|dlcs Basegame = b|bg|basegame All installers = i|installers All extras = e|extras All patches = p|patches All language packs = l|languagepacks|langpacks All = all Separate with "," to use multiple values .TP \fB\-\-automatic\-xml\-creation\fR Automatically create XML data after download has completed .TP \fB\-\-save\-changelogs\fR Save changelogs when downloading .TP \fB\-\-threads\fR arg (=4) Number of download threads .TP \fB\-\-info\-threads\fR arg (=4) Number of threads for getting product info .TP \fB\-\-use\-dlc\-list\fR Use DLC list specified with \fB\-\-dlc\-list\fR .TP \fB\-\-dlc\-list\fR arg (=https://raw.githubusercontent.com/Sude\-/lgogdownloader\-lists/master/game_has_dlc.txt) Set URL for list of games that have DLC .TP \fB\-\-progress\-interval\fR arg (=100) Set interval for progress bar update (milliseconds) Value must be between 1 and 10000 .TP \fB\-\-lowspeed\-timeout\fR arg (=30) Set time in number seconds that the transfer speed should be below the rate set with \fB\-\-lowspeed\-rate\fR for it to considered too slow and aborted .TP \fB\-\-lowspeed\-rate\fR arg (=200) Set average transfer speed in bytes per second that the transfer should be below during time specified with \fB\-\-lowspeed\-timeout\fR for it to be considered too slow and aborted .TP \fB\-\-include\-hidden\-products\fR Include games that have been set hidden in account page .TP \fB\-\-size\-only\fR Don't check the hashes of the files whose size matches that on the server .TP \fB\-\-verbosity\fR arg (=0) Set message verbosity level \fB\-1\fR = Less verbose 0 = Default 1 = Verbose 2 = Debug .TP \fB\-\-check\-free\-space\fR Check for available free space before starting download .TP \fB\-\-no\-fast\-status\-check\fR Don't use fast status check. Makes \fB\-\-status\fR much slower but able to catch corrupted files by calculating local file hash for all files. .SS "Experimental:" .TP \fB\-\-galaxy\-install\fR arg Install game using product id [product_id/build_index] or gamename regex [gamename/build_id] Build index is used to select a build and defaults to 0 if not specified. .TP Example: 12345/2 selects build 2 for product 12345 .TP \fB\-\-galaxy\-show\-builds\fR arg Show game builds using product id [product_id/build_index] or gamename regex [gamename/build_id] Build index is used to select a build and defaults to 0 if not specified. .TP Example: 12345/2 selects build 2 for product 12345 .TP \fB\-\-galaxy\-download\-cloud\-saves\fR arg Download cloud saves using product\-id [product_id/build_index] or gamename regex [gamename/build_id] Build index is used to select a build and defaults to 0 if not specified. .TP Example: 12345/2 selects build 2 for product 12345 .TP \fB\-\-galaxy\-upload\-cloud\-saves\fR arg Upload cloud saves using product\-id [product_id/build_index] or gamename regex [gamename/build_id] Build index is used to select a build and defaults to 0 if not specified. .TP Example: 12345/2 selects build 2 for product 12345 .TP \fB\-\-galaxy\-show\-cloud\-saves\fR arg Show game cloud\-saves using product id [product_id/build_index] or gamename regex [gamename/build_id] Build index is used to select a build and defaults to 0 if not specified. .TP Example: 12345/2 selects build 2 for product 12345 .TP \fB\-\-galaxy\-show\-local\-cloud\-saves\fR arg Show local cloud\-saves using product id [product_id/build_index] or gamename regex [gamename/build_id] Build index is used to select a build and defaults to 0 if not specified. .TP Example: 12345/2 selects build 2 for product 12345 .TP \fB\-\-galaxy\-delete\-cloud\-saves\fR arg Delete cloud\-saves using product id [product_id/build_index] or gamename regex [gamename/build_id] Build index is used to select a build and defaults to 0 if not specified. .TP Example: 12345/2 selects build 2 for product 12345 .TP \fB\-\-galaxy\-platform\fR arg (=w) Select platform Windows = w|win|windows Mac = m|mac|osx Linux = l|lin|linux .TP \fB\-\-galaxy\-language\fR arg (=en) Select language English = en|eng|english|en[_\-]US German = de|deu|ger|german|de[_\-]DE French = fr|fra|fre|french|fr[_\-]FR Polish = pl|pol|polish|pl[_\-]PL Russian = ru|rus|russian|ru[_\-]RU Chinese = cn|zh|zho|chi|chinese|zh[_\-]C N Czech = cz|cs|ces|cze|czech|cs[_\-]CZ Spanish = es|spa|spanish|es[_\-]ES Hungarian = hu|hun|hungarian|hu[_\-]HU Italian = it|ita|italian|it[_\-]IT Japanese = jp|ja|jpn|japanese|ja[_\-]JP Turkish = tr|tur|turkish|tr[_\-]TR Portuguese = pt|por|portuguese|pt[_\-]PT Korean = ko|kor|korean|ko[_\-]KR Dutch = nl|nld|dut|dutch|nl[_\-]NL Swedish = sv|swe|swedish|sv[_\-]SE Norwegian = no|nor|norwegian|nb[_\-]no|n n[_\-]NO Danish = da|dan|danish|da[_\-]DK Finnish = fi|fin|finnish|fi[_\-]FI Brazilian Portuguese = br|pt_br|pt\-br|ptbr|brazilian_portugues e Slovak = sk|slk|slo|slovak|sk[_\-]SK Bulgarian = bl|bg|bul|bulgarian|bg[_\-]B G Ukrainian = uk|ukr|ukrainian|uk[_\-]UA Spanish (Latin American) = es_mx|es\-mx|esmx|es\-419|spanish_latin_a merican Arabic = ar|ara|arabic|ar[_\-][A\-Z]{2} Romanian = ro|ron|rum|romanian|ro[_\-][R M]O Hebrew = he|heb|hebrew|he[_\-]IL Thai = th|tha|thai|th[_\-]TH .TP \fB\-\-galaxy\-arch\fR arg (=x64) Select architecture 32\-bit = 32|x86|32bit|32\-bit 64\-bit = 64|x64|64bit|64\-bit .TP \fB\-\-galaxy\-no\-dependencies\fR Don't download dependencies during \fB\-\-galaxy\-install\fR .TP \fB\-\-subdir\-galaxy\-install\fR arg (=%install_dir%) Set subdirectory for galaxy install .TP Templates: \- %install_dir% = Installation directory from Galaxy API response \- %gamename% = Game name \- %title% = Title of the game \- %product_id% = Product id of the game \- %install_dir_stripped% = %install_dir% with some characters stripped \- %title_stripped% = %title% with some characters stripped .TP "stripped" means that every character that doesn't match the following list is removed: > alphanumeric > space > \- _ . ( ) [ ] { } .TP \fB\-\-galaxy\-cdn\-priority\fR arg (=edgecast,highwinds,akamai,lumen,gog_cdn) Set priority for used CDNs Edgecast = ec|edgecast Highwinds = hw|highwinds|high_winds GOG = gog|gog_cdn Lumen = lumen|lumen_cdn Akamai = akamai|akamai_cdn|akamai_ec|ak amai_edgecast_proxy .TP Set priority by separating values with "," Combine values by separating with "+" .SH BLACKLIST .fi Allows user to specify individual files that should not be downloaded or mentioned as orphans. .sp 1 Each line in the file specifies one blacklist expression, except for empty lines and lines starting with #. First few characters specify blacklist item type and flags. So far, only regular expression (perl variant) are supported, so each line must start with "Rp" characters. After a space comes the expression itself. Expressions are matched against file path relative to what was specified as \fI--directory\fP. \fIExample black list\fP .br # used to store manually downloaded mods/patches/maps/, don't mention it as orphans .br Rp ^[^/]*/manual/.* .br # included with every *divinity game, once is enough .br Rp beyond_divinity/extras/bd_ladymageknight\.zip .br Rp divinity_2_developers_cut/extras/divinity_2_ladymageknight\.zip .sp # extra 6GB is A LOT of space if you don't actually plan to mod your game .br Rp the_witcher_2/extras/the_witcher_2_redkit\.zip .br Rp the_witcher_2/extras/extras_pack_3_hu_pl_ru_tr_zh_\.zip .br Rp the_witcher_2/extras/extras_pack_2_fr_it_jp_\.zip .SH PRIORITIES Separating values with "," when using \fBlanguage\fP and \fBplatform\fP switches enables a priority-based mode: only the first matching one will be downloaded. .PP For example, setting \fBlanguage\fP to \fBfr+en\fP means both French and English will be downloaded (if available) for all games. Setting \fBlanguage\fP to \fBfr,en\fP means that the French version (and only that one) will be downloaded if available, and if not, the English version will be downloaded. .PP You're allowed to "stack" codes in the priority string if needed. If you set \fBlanguage\fP to \fBes+fr,en\fP it means it'll download both Spanish (es) and French (fr) versions if they are available, and the English (en) one only if none of French and Spanish are available. .SH AVAILABILITY The latest version of this distribution is available from \fIhttps://github.com/Sude-/lgogdownloader\fP .SH FILES .fi .TP \fI$XDG_CONFIG_HOME/lgogdownloader/\fP Storage for configuration files and cookies .br If \fB$XDG_CONFIG_HOME\fP is not set, it will use \fI$HOME/.config/lgogdownloader/\fP. .TP \fI$XDG_CACHE_HOME/lgogdownloader/xml/\fP Storage for XML files .br If \fB$XDG_CACHE_HOME\fP is not set, it will use \fI$HOME/.cache/lgogdownloader/xml/\fP. .TP \fI$XDG_CONFIG_HOME/lgogdownloader/blacklist.txt\fP Allows user to specify individual files that should not be downloaded. .br It doesn't have to exist, but if it does exist, it must be readable to lgogdownloader. .TP \fI$XDG_CONFIG_HOME/lgogdownloader/ignorelist.txt\fP Allows user to specify individual files that should not be mentioned as orphans. The file has the same format and interpretation as a blacklist. .br It doesn't have to exist, but if it does exist, it must be readable to lgogdownloader. .TP \fI$XDG_CONFIG_HOME/lgogdownloader/game_has_dlc.txt\fP Allows user to specify which games have dlc and should have their DLC count information ignored. The file has the same format and interpretation as a blacklist. .br It doesn't have to exist, but if it does exist, it must be readable to lgogdownloader. .br If the file exists lgogdownloader uses it instead of list specified with \fB--dlc-list\fP option .TP \fI$XDG_CONFIG_HOME/lgogdownloader/gamespecific/gamename.conf\fP JSON formatted file. Sets game specific settings for \fBgamename\fP. .br Allowed settings are \fBlanguage\fP, \fBplatform\fP, \fBinclude\fP, \fBignore-dlc-count\fP, \fBsubdirectories\fP, \fBdirectory\fP, \fBsubdir-game\fP, \fBsubdir-installers\fP, \fBsubdir-extras\fP, \fBsubdir-patches\fP, \fBsubdir-language-packs\fP and \fBsubdir-dlc\fP. .br Must be in the following format: .br { "language" : , "platform" : , "include" : , "ignore-dlc-count" : , "subdirectories" : , "directory" : , "subdir-game" : , "subdir-installers" : , "subdir-extras" : , "subdir-patches" : , "subdir-language-packs" : , "subdir-dlc" : .br } .TP \fI$XDG_CONFIG_HOME/lgogdownloader/transformations.json\fP JSON formatted file. Used to transform gamenames. .br Must be in the following format: .br { : { "regex" : , "replacement" : , "exceptions" : [ , , ], }, : { "regex" : , "replacement" : , }, .br } .br Member names are used to match the gamename (regex). Member names must be unique. .br For example if the file contains 2 rules with "^x" then only the last one is applied. However if user really wants multiple different rules for everything starting with "x" then adding wild wildcard matches makes them unique ("^x", "^x.*", "^x.*.*") .br If it matches then \fBregex\fP is used for the actual replacement using the value in \fBreplacement\fP. .br "\fBexceptions\fP" is an optional array of gamenames excluded from the rule. These are matched exactly, no regex. .br \fBExample:\fP .br match all games beginning with "\fBb\fP" and if they end with "\fB_the\fP" then remove "\fB_the\fP" at the end and prefix it with "\fBthe_\fP" with exception of "\fBblackwell_epiphany_the\fP" .br { "^b" : { "regex" : "(.*)_the$", "replacement" : "the_\\\\1", "exceptions" : [ "blackwell_epiphany_the", ], }, .br }