elogank / lol-replay-observer
A simple library to allow players to watch League of Legends replays on your server
Requires
- php: >=5.4.0
- elogank/lol-replay-downloader: 1.2.*@dev
- psr/log: ~1.0
Requires (Dev)
- symfony/var-dumper: ~2.7
This package is not auto-updated.
Last update: 2024-12-21 19:45:26 UTC
README
This project provides you a way to watch your downloaded replays directly in the League of Legend official client like replay.gg or op.gg feature.
Please note that is the library only : you need to connect it with your application (controller) and call all available services for each routes. Replays must be downloaded with the https://github.com/EloGank/lol-replay-downloader library (or the CLI built-in solution). See the documentation for more information.
If you want a built-in solution of this library, please see the repository : https://github.com/EloGank/lol-replay-observer-silex.
Features
- A fast way to download replays data (a 40min replay length is downloaded in ~1 minute).
- Avoid a "Bug Slat" on the beginning of the game when the computer has poor performances.
- Easily extendable.
- Monolog ready.
Installation
Requirements
For now, this library requires Redis.
Maybe, in the future, this requirement will be optional.
Composer
In your project, in the folder where the composer.json
file is located, run :
composer require elogank/lol-replay-observer
Manually
Clone this repository or download the full zipped library.
Configuration
Be sure to have a Virtual Host (Apache, NGINX, or other web servers) to handle clients requests.
All your routes must have the prefix /observer-mode/rest/consumer
.
See usage part below for more informations about routes configuration.
Usage
See the usage dedicated documentation for more information.
Client configuration
To connect to your client to watch your replays, you have to retrieve some data :
- Your domain name or IP.
- The spectated region (this is not the same as the game region).
- The game id.
- The game encryption key.
All are available in the metas.json
in the downloaded replay data folder, for example :
/* metas.json */ { "gameKey": { "gameId": 1234567890, "platformId": "EUW1" /* region */ }, "gameServerAddress": "...", "port": ..., "encryptionKey": "zfBsWycQuDkkDNJhwSzdIYAmsAJu0n2s", ... }
Then, run this command (on Windows, run + R) by replacing the 4 variables above and the location or your game directory :
"C:\Riot Games\RADS\solutions\lol_game_client_sln\releases\0.0.1.113\deploy\League of Legends.exe" "8394" "LoLLauncher.exe" "" "spectator [YOUR_DOMAIN_NAME]:80 [ENCRYPTION_KEY] [GAME_ID] [REGION]"
Example with my metas.json
file data above :
"C:\Riot Games\RADS\solutions\lol_game_client_sln\releases\0.0.1.113\deploy\League of Legends.exe" "8394" "LoLLauncher.exe" "" "spectator www.foobar.com:80 zfBsWycQuDkkDNJhwSzdIYAmsAJu0n2s 1234567890 EUW1"
Notes :
- The
0.0.1.113
folder name can change when the game is updated. Be sure to update it for your users. - The port (
:80
) is very important here, do not remove it. Of course, you can change it if your website is running on another port. - You can found some batch files to automatically run the game on lolking.net, op.gg, or other websites that has that feature.
Important notes
According to the new Riot Terms of Use (1st October 2014), using data from another source of their official API is not allowed. So using data by parsing replays decoded files is not allowed.
Reporting an issue or a feature request
Feel free to open an issue, fork this project or suggest an awesome new feature in the issue tracker.
Known issues
- The first minute of the game can be unreachable on some replays.
Credit
See the list of contributors.
Related projects
See the EloGank organization to have the full list of related projects the League of Legend game.
Licence
This repository isn't endorsed by Riot Games and doesn't reflect the views or opinions of Riot Games or anyone officially involved in producing or managing League of Legends.
League of Legends and Riot Games are trademarks or registered trademarks of Riot Games, Inc. League of Legends (c) Riot Games, Inc.