Stream Link

Microsoft Stream empowers IT admins to customize Stream controls for simple and safe video communications in their workplace. For IT professionals and admins. New version of Microsoft Stream Check out the articles about the newest version of Stream and migrating to it. Stay tuned for more content (coming soon). Streamlink is a CLI utility which pipes video streams from various services into a video player, such as VLC. The main purpose of streamlink is to avoid resource-heavy and unoptimized websites, while still allowing the user to enjoy various streamed content. Streamlink is a fork of the Livestreamer project. Steam’s in-home remote play app, Steam Link, is finally available for Mac, offering gamers even more control over where and how they play Steam games. Steam Link lets you stream gameplay from.

There are some great games on the Epic Games Store (I personally am a big fan ofTetris Effect). However, Epic’s storefront is less mature, and Epic’s launcherlacks a lot of the comforts we have with Steam (such as Big Picture Mode,In-Home Streaming, etc). However, you can add games from the Epic Games Store toSteam, and even play those games on a Steam Link.

Note: You’ll still need the Epic Game Store application to launch games once thisis up and running. We’re not replacing their launcher, just automating it

To begin, we need a way to launch games purchased through the Epic Games Store.Thankfully, we can take advantage of how Epic itself launches games. Windowsallows programs to register special urls that are opened by specific programs.For example, Zoom meeting links, when clicked in the browser, allow theoperating system to launch Zoom with some additional data about what meeting tojoin. The Epic Games Launcher registers the handler com.epicgames.launcher://,so when a url with this prefix is encountered, the data is sent to the EpicLauncher. The data after the double slash tells the launcher what game to start.

Model

So, to start, we’ll need to get the launch url for our game from the Epic GamesStore. Thankfully, this is included in a shortcut to a game. To get the URL:

  • In the Epic Games Launcher, navigate to your library, and find the game you’d like to play on Steam.
  • Click on the ... menu near the game, and click ‘Create Shortcut’, this will place a shortcut to the game on your Desktop.
  • Minimize the Launcher, navigate to the Desktop, and find your new shortcut (it will have the name and icon of the game). Right click on it, and hit ‘Properties’.
  • Copy the URL field from the ‘Web Document’ tab and save it somewhere. We’ll need it later.
  • You can delete the shortcut at this point.

OK - so we have our URL, we should just be able to go there any launch the game.As you can see in the picture, we’re launching apps/Kiwi, which is Tetris Effect.

Steam, however, can’t open this type of shortcut directly. And, even if it did,Steam would have no way of knowing if the game was running or not (while youcould launch the game, Big Picture and streaming wouldn’t work). So we’ll needto help it a little bit.

If you’re someone who has a preferred text editor (like Visual Studio Code,Notepad++, Sublime), you can use that for the next step - otherwise, go aheadand launch “Windows PowerShell ISE” from the Start Menu.

In your editor, copy and paste this (we’ll fill in the ‘_HERE’ values in a moment):

Let’s explain what this is doing. It’s:

  • Starting the URL (which launches the Epic Games Store, and instructs it to launch the game)
  • Waiting for 5 seconds (this gives the Epic Launcher time to start the game)
  • Locating the game process that Epic started (for Tetris Effect, this is TetrisEffect)
  • Waiting for the program to finish.

By waiting for the game to finish before exitting, we’ve ensured Steam will beable to track our game’s status, and will know when it exits (so it can drop usback in Big Picture).

Replace the URL_HERE with the URL from the shortcut. The PROCESS_NAME_HEREis a bit harder - it’s what you’d see if you brought up Task Manager and lookedfor the game when it’s running. Often this is just the name of the game(it’s ‘TetrisEffect’ for Tetris Effect), but if you’reunsure, go to the folder where your game is installed, and find the exe - it’susually that without the ‘.exe’.

We now have our script that will launch our game, and will keep running untilthe game closes. Save this file with a ‘.ps1’ extension - you name it whateveryou want, but I’d recommend something descriptive. I called mine“launchTetris.ps1”.

Let’s test this out. With the Epic Games Launcher running, right click on thisscript, and hit “Run With Powershell” - it should launch your game.

Now that we have a script, we just need Steam to execute it. Steam can’t executeshortcuts (or scripts) directly - but we’ve just written a PowerShell script, sowe can get Windows PowerShell to run it. So, we just need Steam to runPowerShell, and have PowerShell call our script.

  • Click on the Games menu, and click ‘Add a Non-Steam Game to my Library’.
  • Click the ‘Browse’ button.
  • Navigate to C:WindowsSystem32WindowsPowerShellv1.0, which is where PowerShell is installed by default on Windows 10.
  • Select the PowerShell exe.
  • Click ‘Add Selected’
Steam link account
But wait, couldn't we just add the game directly to Steam?
Unfortunately, Epic’s digital rights management (DRM) means some games in theirstore simply won’t work when not launched via the Epic Games Launcher. It’s notclear if this affects all games, or just some. Some games also may appear to startwhen launched directly, but crash out before gameplay begins.

Now we’re in the home stretch - we can now launch PowerShell from Steam (itshould be under your game list as ‘powershell’), but we need PowerShell to runour launching script. In your Steam library tab:

  • Right-Click on your shortcut (it will have a PowerShell icon), and hit ‘Properties’.
  • Gave it a more descriptive name, like the name of your game.
  • Under target, paste in 'C:WindowsSystem32WindowsPowerShellv1.0powershell.exe' -ExecutionPolicy Bypass -File PATH_TO_SCRIPT
  • Hit return in the textbox to close the window.
Stream Link

You can get the PATH_TO_SCRIPT by holding down shift, right clicking on thescript you created (the file ending in .ps1), and selecting ‘Copy As Path’, soit should look something like:'C:WindowsSystem32WindowsPowerShellv1.0powershell.exe' -ExecutionPolicy Bypass -File 'C:UsersSeanDesktopLaunchTetris.ps1'

Alright - you’re now pretty much ready. Start the Epic Games Store, switch overto Steam, click your newly added entry, and hit Play. If all works as expected,you should have your Epic Game Store running in Steam!

Note: You can also change the icon Steam displays for your game in the Propertiesdialog, though we won’t be covering that here.

Link

Once the game is working in Steam, it will be visible to Steam streaming, so aSteam Link can be used to play games from the Epic Games store (this even workson mobile - you can play games using the Steam Link app). That said, you’llgenerally want to start the Epic Games Store on the machine first, beforelaunching from Steam. While it’s not required, if the store has an update, itmight take longer than 5 seconds to start your game, and then the script willquit before the game starts.

But, at this point, you’re free to play your games wherever you want, from eitherstorefront!

An Addendum For Programmers

If all you want to do is play your games on Steam/SteamLink, you can ignore this, butjust in case someone wants to dig a big more into this…

All of the above works, and, critically, works if you don’t have access to a compiler. Also,when writing this I felt having one script per game makes it easier for non-programmersto check that things are working (they can easily launch their script graphically).

However, we can make a universal launcher pretty easily - just tweak our code to acceptthe URL and the exe name as arguments. Also, if we make an executable, we can have Steamcall it directly, instead of needing to call an interpreter (like PowerShell).

So let’s do that quickly - let’s make a launcher that can accept a game’s URL and name,and then launch it. I’ll use C# here, but really anything that generates an executablewill work just fine.

When you compile this, you’ll get a program that can be called from Steam, and can launchany game. Simply run the compiled code as:

And now you have a universal launcher, that you can directly add to Steam! Just adjust thearguments to change which game is launched.

Update (12/06/2020) - Some people reported that they were unable to get Steam to run thePowerShell script unless there was a -File before the script path in Steam. I’ve updatedthat section accordingly.

Update (02/19/2021) - A reader reported that Epic games usingDenuvo DRM may not start when launchedfrom Steam (but still work when a user manually launches the PowerShell script).It’s unclear how widespread this problem is, and if it affects all Denuvo gamesor just certain ones. H/T to Cygnata for the report.

Related