## steamsync cli
[![PyPI version](https://badge.fury.io/py/steamsync.svg)](https://badge.fury.io/py/steamsync)
Simple command line tool (and poorly documented library!) to automatically add
games from the Epic Games Launcher to Steam.
Makes playing all of those free EGS games in Big Picture Mode a lot easier. In my experience,
when launching from Big Picture Mode, Steam Input works as expected (even in Fortnite!).
steamsync will scan all of the Epic Games Store games installed on your computer and
add them to your Steam Library. If a shortcut with the same path already exists, it will
skip it, so it's safe to import all of your games over and over.
steamsync attempts to be simple. It does not attempt to fetch any banner art, it
simply uses the executable's icon as the icon in steam.
### Installation (brief)
Requires > Python 3.8
```console
$ pip install steamsync
$ steamsync
```
## Installation and Usage (for beginners)
1. [Download Python 3.8](https://www.python.org/downloads/)
2. Choose the latest version of Python 3.8, and get the "Windows x86-64 executable installer" option
3. When installing Python, make sure to install pip and to *add Python to your PATH*
4. Open Commmand Prompt (search Start Menu for cmd.exe)
5. Type `pip install steamsync`, press enter.
6. Make sure Steam is not running!
7. Type `steamsync.py`, press enter. The tool will walk you through everything else.
Press ctrl+c if you get scared and want to abort.
## Usage
```
(steamsync-py3.10) PS C:\Users\jayde\Documents\GitHub\steamsync> steamsync -h
usage: steamsync [-h] [--source {legendary,epicstore,itchio,xbox}]
[--egs-manifests EGS_MANIFESTS]
[--legendary-command LEGENDARY_COMMAND]
[--itch-library ITCH_LIBRARY]
[--steam-path STEAM_PATH]
[--all]
[--replace-existing]
[--remove-missing]
[--live-dangerously]
[--steamid STEAMID]
[--use-uri]
[--download-art]
[--download-art-all-shortcuts]
[--init-shortcuts-file]
Utility to import games from the Epic Games Store, Microsoft Store (Xbox for
Windows), and itch.io to your Steam library
options:
-h, --help show this help message and exit
--source {legendary,epicstore,itchio,xbox}
Storefronts with games to add to Steam. If unspecified,
uses all sources. Use argument multiple times to select
multiple sources (--source itchio --source xbox).
(default: None)
--egs-manifests EGS_MANIFESTS
Path to search for Epic Games Store manifest files
(default: C:\ProgramData\Epic\EpicGamesLauncher\Data\Manifests)
--legendary-command LEGENDARY_COMMAND
Command/Path to run 'legendary' executable
(default: legendary)
--itch-library ITCH_LIBRARY
Path where the itch.io app installs games
(default: C:\Users\jayde\AppData\Roaming\itch\itch\apps)
--steam-path STEAM_PATH
Path to Steam installation (default: C:\Program Files (x86)\Steam)
--all
Install all games found, do not prompt user to select which
(default: False)
--replace-existing
Instead of skipping existing shortcuts (ones with the
same path), overwrite them with new data. Useful to
repair broken shortcuts.
(default: False)
--remove-missing
Remove shortcuts to games that no longer exist. Uses
selected sources to determine if games without executables
(uri or Xbox) still exist. i.e., if you don't include
xbox source all xbox games will appear to be missing.
(default: False)
--live-dangerously
Don't backup Steam's shortcuts.vdf file to shortcuts.vdf-{time}.bak
(default: False)
--steamid STEAMID SteamID or username to install the shortcuts to, only
needed if >1 accounts on this machine
(default: )
--use-uri
Use a launcher URI (`com.epicgames.launcher://apps/fortnite?action=launch&silent=true`)
instead of the path to the executable (eg `C:\Fortnite\Fortnite.exe`).
Some games with online functionality (eg GTAV) require
being launched through the EGS. Other games work better with Steam
game streaming (eg Steam Link or Big Picture) using the path to the executable.
(default: False)
--download-art
Download Steam grid and Big Picture art from steam's
servers for games we're adding. Only downloads art that
we haven't already downloaded.
(default: False)
--download-art-all-shortcuts
Download Steam grid and Big Picture art for all non-steam
game shortcuts. Only downloads art that we haven't already
downloaded. Implies --download-art
(default: False)
--init-shortcuts-file
Initialize Steam shortcuts.vdf file if it doesn't exist.
EXPERIMENTAL!!
(default: False)
```
### FAQ
#### Does this work on OSX?
Probably not. You may have luck with `--egs-manifests` and `--steam-path`, maybe
MRs are welcome
#### What about Linux?
When using [Legendary](https://github.com/derrod/legendary) or [Heroic](https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher) steamsync should work.
Use `--legendary-command` option to path to correct binary if not already in `PATH`.
Not tested with [Rare](https://github.com/Dummerle/Rare)
Not tested with EGS running through Wine.
#### It doesn't work!
Open an issue on GitHub.
#### Steam crashed after opening my library the first time, but worked after that
Weird, right? Mine did that too ¯\\_(ツ)_/¯. Maybe loading 52 shortcuts at once
was too much for it.
#### I want to go back to the way it was
steamsync will backup your `shortcuts.vdf` file by default every time you run it.
Go to `C:\Program Files (x86)\Steam\userdata\{your steam userid}\config`. You will see some
`shortcuts.vdf-DATE.bak` files. Delete `shortcuts.vdf` (this is the one steamsync modified),
and rename the `.bak` file you want to use to `shortcuts.vdf`, restart steam.
#### I got a `could not find shortcuts file at ...` error
Try making a shortcut in Steam (Library ➡ ➕ Add Game ➡ Add a Non-Steam Game...) first.
By default steamsync will not make a `shortcuts.vdf` file for you if it isn't already there.
You can enable the experimental functionality for automatically initializing the
`shortcuts.vdf` file with the `--init-shortcuts-file` option.
#### Can this run automagically?
Yes, yes it can! (you may need to adjust paths below)
1. Open Task Scheduler (start + type "task...")
2. Action Menu ➡ Create Basic Task
3. Fill in a name and description
4. Set the trigger you want to use (daily, log in, etc), Next
5. Action = Start a Program
6. Program/Script is `pythonw`
7. Add arguments `C:\Users\{username}\AppData\Local\Programs\Python\Python38\Scripts\steamsync.py --all --steamid={steam id}`, Next
8. Make sure to restart Steam once in a while
TADA!
Raw data
{
"_id": null,
"home_page": "https://github.com/jaydenmilne/steamsync",
"name": "steamsync",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.10,<4.0",
"maintainer_email": "",
"keywords": "Steam,Epic Games Store,Big Picture Mode,EGS",
"author": "Jayden Milne",
"author_email": "jaydenmilne@users.noreply.github.com",
"download_url": "https://files.pythonhosted.org/packages/f4/44/39999dd46598b33b35760874acdad8185f4f6c5cdd1a162f20682082dd06/steamsync-0.4.2.tar.gz",
"platform": null,
"description": "## steamsync cli\n[![PyPI version](https://badge.fury.io/py/steamsync.svg)](https://badge.fury.io/py/steamsync)\n\nSimple command line tool (and poorly documented library!) to automatically add\ngames from the Epic Games Launcher to Steam.\n\nMakes playing all of those free EGS games in Big Picture Mode a lot easier. In my experience,\nwhen launching from Big Picture Mode, Steam Input works as expected (even in Fortnite!).\n\nsteamsync will scan all of the Epic Games Store games installed on your computer and\nadd them to your Steam Library. If a shortcut with the same path already exists, it will\nskip it, so it's safe to import all of your games over and over.\n\nsteamsync attempts to be simple. It does not attempt to fetch any banner art, it\n simply uses the executable's icon as the icon in steam.\n\n### Installation (brief)\nRequires > Python 3.8\n\n```console\n$ pip install steamsync\n$ steamsync\n```\n\n## Installation and Usage (for beginners)\n\n1. [Download Python 3.8](https://www.python.org/downloads/)\n2. Choose the latest version of Python 3.8, and get the \"Windows x86-64 executable installer\" option\n3. When installing Python, make sure to install pip and to *add Python to your PATH*\n4. Open Commmand Prompt (search Start Menu for cmd.exe)\n5. Type `pip install steamsync`, press enter.\n6. Make sure Steam is not running!\n7. Type `steamsync.py`, press enter. The tool will walk you through everything else.\n Press ctrl+c if you get scared and want to abort.\n\n## Usage\n```\n(steamsync-py3.10) PS C:\\Users\\jayde\\Documents\\GitHub\\steamsync> steamsync -h \nusage: steamsync [-h] [--source {legendary,epicstore,itchio,xbox}] \n [--egs-manifests EGS_MANIFESTS] \n [--legendary-command LEGENDARY_COMMAND] \n [--itch-library ITCH_LIBRARY] \n [--steam-path STEAM_PATH] \n [--all] \n [--replace-existing] \n [--remove-missing] \n [--live-dangerously] \n [--steamid STEAMID] \n [--use-uri]\n [--download-art] \n [--download-art-all-shortcuts] \n [--init-shortcuts-file]\n\nUtility to import games from the Epic Games Store, Microsoft Store (Xbox for \nWindows), and itch.io to your Steam library\n\noptions:\n -h, --help show this help message and exit\n --source {legendary,epicstore,itchio,xbox}\n Storefronts with games to add to Steam. If unspecified, \n uses all sources. Use argument multiple times to select \n multiple sources (--source itchio --source xbox). \n (default: None)\n --egs-manifests EGS_MANIFESTS\n Path to search for Epic Games Store manifest files \n (default: C:\\ProgramData\\Epic\\EpicGamesLauncher\\Data\\Manifests)\n --legendary-command LEGENDARY_COMMAND\n Command/Path to run 'legendary' executable \n (default: legendary)\n --itch-library ITCH_LIBRARY\n Path where the itch.io app installs games \n (default: C:\\Users\\jayde\\AppData\\Roaming\\itch\\itch\\apps)\n --steam-path STEAM_PATH\n Path to Steam installation (default: C:\\Program Files (x86)\\Steam)\n --all \n Install all games found, do not prompt user to select which \n (default: False)\n --replace-existing \n Instead of skipping existing shortcuts (ones with the \n same path), overwrite them with new data. Useful to \n repair broken shortcuts. \n (default: False)\n --remove-missing \n Remove shortcuts to games that no longer exist. Uses \n selected sources to determine if games without executables \n (uri or Xbox) still exist. i.e., if you don't include \n xbox source all xbox games will appear to be missing. \n (default: False)\n --live-dangerously \n Don't backup Steam's shortcuts.vdf file to shortcuts.vdf-{time}.bak \n (default: False)\n --steamid STEAMID SteamID or username to install the shortcuts to, only \n needed if >1 accounts on this machine \n (default: )\n --use-uri \n Use a launcher URI (`com.epicgames.launcher://apps/fortnite?action=launch&silent=true`) \n instead of the path to the executable (eg `C:\\Fortnite\\Fortnite.exe`). \n Some games with online functionality (eg GTAV) require \n being launched through the EGS. Other games work better with Steam \n game streaming (eg Steam Link or Big Picture) using the path to the executable. \n (default: False)\n --download-art \n Download Steam grid and Big Picture art from steam's \n servers for games we're adding. Only downloads art that \n we haven't already downloaded. \n (default: False)\n --download-art-all-shortcuts\n Download Steam grid and Big Picture art for all non-steam \n game shortcuts. Only downloads art that we haven't already \n downloaded. Implies --download-art \n (default: False)\n --init-shortcuts-file\n Initialize Steam shortcuts.vdf file if it doesn't exist.\n EXPERIMENTAL!! \n (default: False)\n```\n\n### FAQ\n#### Does this work on OSX?\nProbably not. You may have luck with `--egs-manifests` and `--steam-path`, maybe\nMRs are welcome\n\n#### What about Linux?\nWhen using [Legendary](https://github.com/derrod/legendary) or [Heroic](https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher) steamsync should work.\nUse `--legendary-command` option to path to correct binary if not already in `PATH`.\nNot tested with [Rare](https://github.com/Dummerle/Rare)\nNot tested with EGS running through Wine.\n\n#### It doesn't work!\nOpen an issue on GitHub.\n\n#### Steam crashed after opening my library the first time, but worked after that\nWeird, right? Mine did that too \u00af\\\\_(\u30c4)_/\u00af. Maybe loading 52 shortcuts at once\nwas too much for it.\n\n#### I want to go back to the way it was\nsteamsync will backup your `shortcuts.vdf` file by default every time you run it.\n\nGo to `C:\\Program Files (x86)\\Steam\\userdata\\{your steam userid}\\config`. You will see some\n`shortcuts.vdf-DATE.bak` files. Delete `shortcuts.vdf` (this is the one steamsync modified),\nand rename the `.bak` file you want to use to `shortcuts.vdf`, restart steam.\n\n#### I got a `could not find shortcuts file at ...` error\nTry making a shortcut in Steam (Library \u27a1 \u2795 Add Game \u27a1 Add a Non-Steam Game...) first.\nBy default steamsync will not make a `shortcuts.vdf` file for you if it isn't already there.\nYou can enable the experimental functionality for automatically initializing the\n`shortcuts.vdf` file with the `--init-shortcuts-file` option.\n\n#### Can this run automagically?\nYes, yes it can! (you may need to adjust paths below)\n\n1. Open Task Scheduler (start + type \"task...\")\n2. Action Menu \u27a1 Create Basic Task\n3. Fill in a name and description\n4. Set the trigger you want to use (daily, log in, etc), Next\n5. Action = Start a Program\n6. Program/Script is `pythonw`\n7. Add arguments `C:\\Users\\{username}\\AppData\\Local\\Programs\\Python\\Python38\\Scripts\\steamsync.py --all --steamid={steam id}`, Next\n8. Make sure to restart Steam once in a while\n\nTADA!\n",
"bugtrack_url": null,
"license": "AGPL-3.0-or-later",
"summary": "Tool to automatically add games from the Epic Games Launcher to Steam",
"version": "0.4.2",
"project_urls": {
"Homepage": "https://github.com/jaydenmilne/steamsync",
"Repository": "https://github.com/jaydenmilne/steamsync"
},
"split_keywords": [
"steam",
"epic games store",
"big picture mode",
"egs"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "1b257130870e7ac540f4ef1f4294380a5cb48a9ad95237d4b219b496b2a99cef",
"md5": "15a8567cc2bf1bed9b173347c50c1e9c",
"sha256": "64c4f1804159697518232d02d2a395305a458f670f2f085734d120e5dd031b73"
},
"downloads": -1,
"filename": "steamsync-0.4.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "15a8567cc2bf1bed9b173347c50c1e9c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10,<4.0",
"size": 26165,
"upload_time": "2023-12-29T23:45:06",
"upload_time_iso_8601": "2023-12-29T23:45:06.351508Z",
"url": "https://files.pythonhosted.org/packages/1b/25/7130870e7ac540f4ef1f4294380a5cb48a9ad95237d4b219b496b2a99cef/steamsync-0.4.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f44439999dd46598b33b35760874acdad8185f4f6c5cdd1a162f20682082dd06",
"md5": "f4f9242dac05e15b7431b482e11ffe76",
"sha256": "914e4020ab44c7804c1d7d6eb7ac8ff0be6a102ac0ba87f4df681b5d9227c416"
},
"downloads": -1,
"filename": "steamsync-0.4.2.tar.gz",
"has_sig": false,
"md5_digest": "f4f9242dac05e15b7431b482e11ffe76",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10,<4.0",
"size": 24655,
"upload_time": "2023-12-29T23:45:08",
"upload_time_iso_8601": "2023-12-29T23:45:08.031495Z",
"url": "https://files.pythonhosted.org/packages/f4/44/39999dd46598b33b35760874acdad8185f4f6c5cdd1a162f20682082dd06/steamsync-0.4.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-12-29 23:45:08",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "jaydenmilne",
"github_project": "steamsync",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "steamsync"
}