lgogdownloader - Man Page

manual page for LGOGDownloader 3.12

Synopsis

lgogdownloader [OPTION]...

Description

An open-source GOG.com downloader for Linux users which uses the same API as GOG Galaxy.

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.

LGOGDownloader 3.12 Options:

-h [ --help ]

Print help message

--version

Print version information

--login

Login

--list [=arg(=games)]

List games/tags Games = g|games Details = d|details JSON = j|json Tags = t|tags Transformations = tr|transform|transfor mations

--download

Download

--repair

Repair downloaded files Use --repair --download to redownload files when filesizes don't match (possibly different version). Redownload will rename the old file (appends .old to filename)

--game arg

Set regular expression filter for download/list/repair (Perl syntax)

--create-xml [=arg(=automatic)]

Create GOG XML for file "automatic" to enable automatic XML creation

--notifications

Check notifications

--updated

List/download only games with update flag set

--new

List/download only games with new flag set

--clear-update-flags

Clear update notification flags

--check-orphans 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 '.*\.(zip|exe|bin|dmg|old|deb|tar\.gz|p kg|sh)$'

--delete-orphans

Delete orphaned files during --check-orphans and --galaxy-install

--status

Show status of files

Output format:

statuscode gamename filename filesize filehash

Status codes:

OK - File is OK ND - File is not downloaded MD5 - MD5 mismatch, different version FS - File size mismatch, incomplete download

See also --no-fast-status-check option
    --save-config
    Create config file with current
    settings
    --reset-config
    Reset config settings to default
    --report [=arg(=lgogdownloader-report.log)]
    Save report of downloaded/repaired
    files to specified file
    Default filename: lgogdownloader-report
    .log
    --update-cache
    Update game details cache
    --no-platform-detection
    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 --platform with --list doesn't
    work with this option.
    --download-file arg
    Download files using fileid
    Format:
    "gamename/fileid"
    or: "gogdownloader://gamename/fileid"
    Multiple files:
    "gamename1/fileid1,gamename2/fileid2"
    or: "gogdownloader://gamename1/fileid1,
    gamename2/fileid2"
    This option ignores all subdir options.
    The files are downloaded to directory
    specified with --directory option.
    -o [ --output-file ] arg
    Set filename of file downloaded with
    --download-file.
    --wishlist
    Show wishlist
    --cacert arg
    Path to CA certificate bundle in PEM
    format
    --respect-umask
    Do not adjust permissions of sensitive
    files
    --user-agent arg (=LGOGDownloader/3.12 (Linux x86_64))
    Set user agent
    --wine-prefix arg (=.)
    Set wineprefix directory
    --cloud-whitelist arg
    Include this list of cloud saves, by
    default all cloud saves are included
    Example: --cloud-whitelist
    saves/AutoSave-0 saves/AutoSave-1/scree
    nshot.png
    --cloud-blacklist arg
    Exclude this list of cloud saves
    Example: --cloud-blacklist
    saves/AutoSave-0 saves/AutoSave-1/scree
    nshot.png
    --cloud-force
    Download or Upload cloud saves even if
    they're up-to-date
    Delete remote cloud saves even if no
    saves are whitelisted
    --enable-login-gui
    Enable login GUI when encountering
    reCAPTCHA on login form
    --tag arg
    Filter using tags. Separate with "," to
    use multiple values
    --directory arg (=.)
    Set download directory
    --limit-rate arg (=0)
    Limit download rate to value in kB
    0 = unlimited
    --xml-directory arg
    Set directory for GOG XML files
    --chunk-size arg (=10)
    Chunk size (in MB) when creating XML
    --platform arg (=w+l)
    Select which installers are downloaded
    Windows = w|win|windows
    Mac = m|mac|osx
    Linux = l|lin|linux
    All = all
    Set priority by separating values with
    ","
    Combine values by separating with "+"
    Example: Linux if available otherwise
    Windows and Mac: l,w+m
    --language 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
    Set priority by separating values with
    ","
    Combine values by separating with "+"
    Example: German if available otherwise
    English and French: de,en+fr
    --no-remote-xml
    Don't use remote XML for repair
    --no-unicode
    Don't use Unicode in the progress bar
    --no-color
    Don't use coloring in the progress bar
    or status messages
    --no-duplicate-handling
    Don't use duplicate handler for
    installers
    Duplicate installers from different
    languages are handled separately
    --no-subdirectories
    Don't create subdirectories for extras,
    patches and language packs
    --curl-verbose
    Set libcurl to verbose mode
    --insecure
    Don't verify authenticity of SSL
    certificates
    --timeout arg (=10)
    Set timeout for connection
    Maximum time in seconds that connection
    phase is allowed to take
    --retries arg (=3)
    Set maximum number of retries on failed
    download
    --wait arg (=0)
    Time to wait between requests
    (milliseconds)
    --subdir-installers arg
    Set subdirectory for installers
    Templates:
    - %platform%
    - %gamename%
    - %gamename_firstletter%
    - %dlcname%
    - %gamename_transformed%
    - %gamename_transformed_firstletter%
    --subdir-extras arg (=extras)
    Set subdirectory for extras
    Templates:
    - %platform%
    - %gamename%
    - %gamename_firstletter%
    - %dlcname%
    - %gamename_transformed%
    - %gamename_transformed_firstletter%
    --subdir-patches arg (=patches)
    Set subdirectory for patches
    Templates:
    - %platform%
    - %gamename%
    - %gamename_firstletter%
    - %dlcname%
    - %gamename_transformed%
    - %gamename_transformed_firstletter%
    --subdir-language-packs arg (=languagepacks)
    Set subdirectory for language packs
    Templates:
    - %platform%
    - %gamename%
    - %gamename_firstletter%
    - %dlcname%
    - %gamename_transformed%
    - %gamename_transformed_firstletter%
    --subdir-dlc arg (=dlc/%dlcname%)
    Set subdirectory for dlc
    Templates:
    - %platform%
    - %gamename%
    - %gamename_firstletter%
    - %dlcname%
    - %gamename_transformed%
    - %gamename_transformed_firstletter%
    --subdir-game arg (=%gamename%)
    Set subdirectory for game
    Templates:
    - %platform%
    - %gamename%
    - %gamename_firstletter%
    - %dlcname%
    - %gamename_transformed%
    - %gamename_transformed_firstletter%
    --use-cache
    Use game details cache
    --cache-valid arg (=2880)
    Set how long cached game details are
    valid (in minutes)
    Default: 2880 minutes (48 hours)
    --save-serials
    Save serial numbers when downloading
    --save-logo
    Save logo when downloading
    --ignore-dlc-count [=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
    --include 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
    --exclude 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
    --automatic-xml-creation
    Automatically create XML data after
    download has completed
    --save-changelogs
    Save changelogs when downloading
    --threads arg (=4)
    Number of download threads
    --info-threads arg (=4)
    Number of threads for getting product
    info
    --use-dlc-list
    Use DLC list specified with --dlc-list
    --dlc-list arg (=https://raw.githubusercontent.com/Sude-/lgogdownloader-lists/master/game_has_dlc.txt)
    Set URL for list of games that have DLC
    --progress-interval arg (=100)
    Set interval for progress bar update
    (milliseconds)
    Value must be between 1 and 10000
    --lowspeed-timeout arg (=30)
    Set time in number seconds that the
    transfer speed should be below the rate
    set with --lowspeed-rate for it to
    considered too slow and aborted
    --lowspeed-rate arg (=200)
    Set average transfer speed in bytes per
    second that the transfer should be
    below during time specified with
    --lowspeed-timeout for it to be
    considered too slow and aborted
    --include-hidden-products
    Include games that have been set hidden
    in account page
    --size-only
    Don't check the hashes of the files
    whose size matches that on the server
    --verbosity arg (=0)
    Set message verbosity level
    -1 = Less verbose
    0 = Default
    1 = Verbose
    2 = Debug
    --check-free-space
    Check for available free space before
    starting download
    --no-fast-status-check
    Don't use fast status check.
    Makes --status much slower but able to
    catch corrupted files by calculating
    local file hash for all files.

Experimental

--galaxy-install 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.

Example: 12345/2 selects build 2 for

product 12345

--galaxy-show-builds 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.

Example: 12345/2 selects build 2 for

product 12345

--galaxy-download-cloud-saves 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.

Example: 12345/2 selects build 2 for

product 12345

--galaxy-upload-cloud-saves 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.

Example: 12345/2 selects build 2 for

product 12345

--galaxy-show-cloud-saves 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.

Example: 12345/2 selects build 2 for

product 12345

--galaxy-show-local-cloud-saves 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.

Example: 12345/2 selects build 2 for

product 12345

--galaxy-delete-cloud-saves 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.

Example: 12345/2 selects build 2 for

product 12345

--galaxy-platform arg (=w)

Select platform Windows = w|win|windows Mac = m|mac|osx Linux = l|lin|linux

--galaxy-language 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

--galaxy-arch arg (=x64)

Select architecture 32-bit = 32|x86|32bit|32-bit 64-bit = 64|x64|64bit|64-bit

--galaxy-no-dependencies

Don't download dependencies during --galaxy-install

--subdir-galaxy-install arg (=%install_dir%)

Set subdirectory for galaxy install

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

"stripped" means that every character

that doesn't match the following list is removed: > alphanumeric > space > - _ . ( ) [ ] { }

--galaxy-cdn-priority 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

Set priority by separating values with

"," Combine values by separating with "+"

Blacklist

Allows user to specify individual files that should not be downloaded or mentioned as orphans.

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 --directory.

Example black list
# used to store manually downloaded mods/patches/maps/, don't mention it as orphans
Rp ^[^/]*/manual/.*
# included with every *divinity game, once is enough
Rp beyond_divinity/extras/bd_ladymageknight.zip
Rp divinity_2_developers_cut/extras/divinity_2_ladymageknight.zip

# extra 6GB is A LOT of space if you don't actually plan to mod your game
Rp the_witcher_2/extras/the_witcher_2_redkit.zip
Rp the_witcher_2/extras/extras_pack_3_hu_pl_ru_tr_zh_.zip
Rp the_witcher_2/extras/extras_pack_2_fr_it_jp_.zip

Priorities

Separating values with "," when using language and platform switches enables a priority-based mode: only the first matching one will be downloaded.

For example, setting language to fr+en means both French and English will be downloaded (if available) for all games. Setting language to fr,en means that the French version (and only that one) will be downloaded if available, and if not, the English version will be downloaded.

You're allowed to "stack" codes in the priority string if needed. If you set language to es+fr,en 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.

Availability

The latest version of this distribution is available from https://github.com/Sude-/lgogdownloader

Files

$XDG_CONFIG_HOME/lgogdownloader/

Storage for configuration files and cookies
If $XDG_CONFIG_HOME is not set, it will use $HOME/.config/lgogdownloader/.

$XDG_CACHE_HOME/lgogdownloader/xml/

Storage for XML files
If $XDG_CACHE_HOME is not set, it will use $HOME/.cache/lgogdownloader/xml/.

$XDG_CONFIG_HOME/lgogdownloader/blacklist.txt

Allows user to specify individual files that should not be downloaded.
It doesn't have to exist, but if it does exist, it must be readable to lgogdownloader.

$XDG_CONFIG_HOME/lgogdownloader/ignorelist.txt

Allows user to specify individual files that should not be mentioned as orphans.  The file has the same format and interpretation as a blacklist.
It doesn't have to exist, but if it does exist, it must be readable to lgogdownloader.

$XDG_CONFIG_HOME/lgogdownloader/game_has_dlc.txt

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.
It doesn't have to exist, but if it does exist, it must be readable to lgogdownloader.
If the file exists lgogdownloader uses it instead of list specified with --dlc-list option

$XDG_CONFIG_HOME/lgogdownloader/gamespecific/gamename.conf

JSON formatted file. Sets game specific settings for gamename.
Allowed settings are language, platform, include, ignore-dlc-count, subdirectories, directory, subdir-game, subdir-installers, subdir-extras, subdir-patches, subdir-language-packs and subdir-dlc.
Must be in the following format:
{
   "language" : <string>,
   "platform" : <string>,
   "include" : <string>,
   "ignore-dlc-count" : <bool>,
   "subdirectories" : <bool>,
   "directory" : <string>,
   "subdir-game" : <string>,
   "subdir-installers" : <string>,
   "subdir-extras" : <string>,
   "subdir-patches" : <string>,
   "subdir-language-packs" : <string>,
   "subdir-dlc" : <string>
}

$XDG_CONFIG_HOME/lgogdownloader/transformations.json

JSON formatted file. Used to transform gamenames.
Must be in the following format:
{
   <string> :
   {
       "regex" : <string>,
       "replacement" : <string>,
       "exceptions" : [
           <string>,
           <string>,
       ],
   },
   <string> :
   {
       "regex" : <string>,
       "replacement" : <string>,
   },
}
Member names are used to match the gamename (regex). Member names must be unique.
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.*.*")
If it matches then regex is used for the actual replacement using the value in replacement.
"exceptions" is an optional array of gamenames excluded from the rule. These are matched exactly, no regex.
Example:
match all games beginning with "b" and if they end with "_the" then remove "_the" at the end and prefix it with "the_" with exception of "blackwell_epiphany_the"
{
   "^b" :
   {
       "regex" : "(.*)_the$",
       "replacement" : "the_\\1",
       "exceptions" : [
           "blackwell_epiphany_the",
       ],
   },
}

Referenced By

game-data-packager(6).

March 2024 LGOGDownloader 3.12