Git Product home page Git Product logo

league_record's Introduction

LeagueRecord

LeagueRecord 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 Riot Games properties. Riot Games, and all associated properties are trademarks or registered trademarks of Riot Games, Inc.

LeagueRecord automatically detects when a League of Legends game is running and records it.
Currently only supports Windows.

Downloads are available on the Releases page as an installer (*.msi file) or as a portable version (*.zip file).

In case you have any problems, questions or suggestions feel free to open an issue or send me an email ([email protected]).

Table of Contents

Usage

LeagueRecord launches minimized to the windows tray to get out of your way.
By default Windows puts the icon into the tray-icon drawer.

screenshot-tray

It possible to drag the LeagueRecord icon out of the drawer (see next image). Right-clicking the LeagueRecord tray-icon opens a menu.

screenshot-tray-menu

  1. The topmost grayed out "Recording" entry has a checkmark next to it if your game is currently being recorded.
  2. The 'Settings' button opens the LeagueRecord settings in the windows text editor. See Settings for more information.
  3. The 'Open' button opens a window that shows you all your recordings.
  4. The 'Quit' button stops LeagueRecord completely.

Double left-clicking the LeagueRecord tray icon or clicking 'right-click' -> 'Open' in the tray menu opens a window that shows all your recordings.

screenshot2

There are 3 parts to the window.

  1. In the top left corner there is an info-box where you can see how much space your recordings take up as well as a button that opens the folder in which your recordings are stored.
  2. On the left side under the info-box there is a list of all you recordings. The inital name of each recording is the timestamp of the game (can be adjusted in Settings). Clicking on a recording shows it in the right part of the window. When moving your mouse over a recording there are buttons to mark a recording as a 'favorite' (see Settings), rename a recording and delete a recording.
  3. The right part of the window shows the currently selected recording with some information about the game at the bottom. The timeline of the video shows colored markers for the most important events that happened in the game. In case you don't want to see ALL events because they clutter the timeline you can show/hide eventtypes (Kills, Deaths, Assists, ...) by clicking the corresponding checkbox on the bottom right.

Just closing the window doesn't completely stop LeagueRecord because it needs to run in the background to record your games. In order to completely stop LeagueRecord you have to right-click the tray-icon at the bottom right of your screen and click the 'Quit' button.

Note

A bunch of stuff can be customized in the Settings. Video resolution, framerate, only record ranked games, record voice-comms or only game audio, autostart LeagueRecord when you turn on your PC, ...

Note

In case LeagueRecord only records a black screen instead of the game, try running the software as Admin. That should fix the Problem!

Keyboard Shortcuts

Key Function
Space Play/Pause
Arrow Right +5 seconds
Arrow Left -5 seconds
Shift + Arrow Right next event
Shift + Arrow Left previous event
Arrow Up +10% volume
Arrow Down -10% volume
f toggle fullscreen
m toggle mute
> +0.25 playbackrate
< -0.25 playbackrate
Esc exit fullscreen

Settings

It is possible to adjust the settings via the settings button in the tray menu. It opens the settings file in the windows text editor.
Settings get applied as soon as you save and close the text editor. If you write an invalid setting or delete an entry it gets reset to the default value.

Name Value Default Description
recordingsFolder String (only characters that can be in a filename) {System Video Folder}/league_recordings The name of the folder in which the recordings are stored. Relative paths are appended to your default video folder.
filenameFormat String (with special placeholders) %Y-%m-%d_%H-%M.mp4 Format string for naming new recordings. Can contain special placeholders in order to make each name unique. If a new recording has the same name as an already existing recording, the old recording gets overwritten!
encodingQuality positive whole number from 0-50 30 Determines the size vs. quality tradeoff for the mp4 files. Zero means best encoding quality with a big filesize. 50 means heavily compressed with a small filesize.
outputResolution ['480p', '720p', '1080p', '1440p', '2160p', '4320p'] | null null Sets the output resolution of the recordings to a fixed resolution. If null uses the resolution of the LoL ingame window.
outputFramerate [whole number > 0, whole number > 0] 30 Sets the framerate of the recordings as a fraction (numerator/denominator). e.g. [30, 1] => 30fps, [30, 2] => 15fps
recordAudio 'NONE' | 'APPLICATION' | 'SYSTEM' | ALL APPLICATION Determines what audio gets recorded. 'NONE' records no audio. 'APPLICATION' records only the games' audio. 'SYSTEM' records all sound output of your pc (e.g music in the background). 'ALL' records everything that 'SYSTEM' records but also your microphone input.
markerFlags { 'kill', 'death', 'assist', 'turret', 'inhibitor', 'dragon', 'herald', 'baron' } : true | false all true Choose which events are shown by default in the timeline when playing a recording.
checkForUpdates true | false true Determines if on start LeagueRecord checks for new releases on GitHub
debugLog true | false false If true prints logs to the console and saves it to a log file names after the current date in %APPDATA%/fx.LeagueRecord/logs/
autostart true | false false If true runs LeagueRecord when you start your PC
onlyRecordRanked true | false false If true only records Solo/DuoQ and FlexQ games
maxRecordingAgeDays positive numbers | null null Recordings that are not marked as favorites (golden star) get deleted after X days. null means disabled.
maxRecordingsSizeGb positive numbers | null null Recordings that are not marked as favorites (golden star) get deleted if the size of all your recordings exceeds this number (in Gigabytes). null means disabled.

Resources and Performance

LeagueRecord takes up ~70MB of your disk space with most of that coming from the libobs dependency.

On a system with a Ryzen 3600 CPU and RX5700 GPU these are the performance numbers measured with Windows Taskmanager.

CPU RAM GPU
idle ~0% ~5MB 0%
record ~3% ~50MB ~4%
watch recording ~2.5% ~160MB ~2.5%

The high RAM usage when watching a recording is due to using a WebView2 Window for the UI, which basically is a Chromium version that is pre-installed on most windows PCs. UIs are easy to make with HTML + some CSS. It also keeps the program size small and the common case - running hidden in the taskbar - efficient.

This is just a rough estimate with the default settings so you can get a sense for how much resources LeagueRecord uses.

Release / Build

There is a release for Windows-x64, but you can build the project on your own.

In order to build the project you need to have the nightly Rust toolchain and NPM installed.
From the root folder of the project run npm install and then npx tauri dev to run the project in debug mode or npx tauri build to build in release-mode and create the installer.

In order to package the compiled files into a standalone archive, run one of the following commands after a successful npx tauri build:

# outputs 'LeagueRecord.tar.gz' in the project root folder
tar -czv -f LeagueRecord.tar.gz -C ./src-tauri/target/release/ LeagueRecord.exe libobs licenses

or

# outputs 'LeagueRecord.zip' in the project root folder
cd src-tauri/target/release && 7z a -tzip ../../../LeagueRecord.zip LeagueRecord.exe libobs licenses && cd ../../..

License

This project (LeagueRecord) is distributed under the GNU General Public License v3 (or any later version).
I want to release this project under an open-source license but that license needs to comply with the licenses of all my dependencies. GPLv3+ seems to be the way to do that.

league_record's People

Contributors

fffffffxxxxxxx avatar szymonkaminski avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

szymonkaminski

league_record's Issues

[FEATURE REQUEST] be able to turn on/off recording depending on gamemode

URF is live and I think I'm not the only one who is playing a lot of urf games haha. I mainly use this program for recording gameplay to review of my ranked games though, and its quite cumbersome to delete all urf replays manually.

It would be nice if we could simply turn on/off storage of recordings depending on the gamemode we're playing.

auto updating

hey- obviously incredibly grateful for the countless hours you've put into this project

feel free to shoot this down if it would be too much, was wondering if you've considered auto updating? not sure how difficult it would be, but would be nice to not have to download for every fix.

again totally get it if there's no simple way- don't want you to have to pay to host the updates or anything

thanks again!

[feature request] auto-delete old recordings

By age, by total directory size, or both. Renamed videos should not be deleted, but I'm not sure how to check for it without introducing funky behaviour, so probably should add favourite/starring functionality too, and exclude those. (maybe even starring on rename automatically)

[bug] "no data" when finishing game with the webview open

Will reliably show "no data" when finishing ranked games if leaguerecord was open but not in tray. IF it is in tray it behaves as expected.

I know you've been tracking down this bug for a while (I think)? So I hope this helps.

remove .pdb files

.pdb files is only for debug thing you dont need it in released version.
this will reduce folder size from
98 mb --> 70mb

~1/10ish games not recording

hey, I've been playing a lot, and I noticed strangely that roughly 10% of games don't record. I tried to replicate with debug in practice tool and I found out that sometimes it falsely detects the game as a spectator game and the recorder shuts down. any ideas on this? not the end of the world but can be annoying

not working

seems like the app is crashing

  • windows 11

Replay doesnt show Kills/Death/etc and Show No data

Hello so ive noticed that most of my replayed games i dont see where for example i get a kill and when I die, only the (raw) footage and instead of showing my final score and Victory or Defeat in shows No data.

I have a game where it works as it should and many games where it doesnt, its just i don't know which log to send you.

Concerns about vanguard + question

Lovely project! Didn't find a way to conctact you so I'll do it here (its in the general interest anyway to know this)

The program only interacts with LCU for stats correct? so we should be in the clear regarding vanguard? no hooking is done into the actual process right?

Furthermore, I am planning on writing a plugin for obsidian to allow us to import our games into there and am requesting your permission to publish it.

videos don't show any info

image

all videos look like this, 0/0 statline with no champ identifier (idk if the champ part was ever a thing)

Ultrawide support

Hey! I love the app, as it streamlines league recording a lot. Much easier than manually recording every time with OBS, so thank you for that!!

Would it be possible to add ultrawide (43:18) recording support? Currently, the recording is compressed to 16:9, which looks quite funny, and it won't detect the in game events properly either, which I assume is tied to how it is recorded.

Thank you in advance!

Game recording isnt working properly

For some reason I am not able to properly record any games with the software
https://i.imgur.com/7KxpaEM.png

As you can see in the link above, the software is recording something but if I open the file the only thing that seems to get recorded is the audio and no video.

Do you have any idea on how I can fix this?

Hardware and Software information:

Software:
OS: Windows 10 Pro Version 10.0.19045 Build 19045

Hardware:
GPU: AMD Radeon RX 6750XT with driver software version 23.3.2 minimal setup (so just drivers without the software center)
CPU: Ryzen 7 5800X3D

Game not recording cause of change in settings?

Hello, I really like this software since it's very light and very easy to use, but most of my games don't record, it just shows some seconds when I load into the game and that's it. I clicked on settings and saw that framerate was 30 changed it to 60, and changed autostart from false to true with a small t. I'm not sure if it letter sensitive since I've no idea of coding. Here are my setting:
"checkForUpdates": true,
"debugLog": false,
"recordingsFolder": "C:\Users\xrist\Videos\league_recordings",
"filenameFormat": "%Y-%m-%d_%H-%M.mp4",
"encodingQuality": 25,
"framerate": [
60,
1
],
"recordAudio": "APPLICATION",
"autostart": true
}

Application randomly closing/crashing?

my friends and i love this application. it seems like as of yesterday its been randomly closing while recording, and we haven't been able to record any games since- possibly from new patch? tried running as admin, i also ran with -d, i included the output.
logs.txt

Startup at Windows startup

Perhaps I'm reading over something, but it's not been implemented as a feature, I'd like to request this feature

[FEATURE REQUEST] Store whether "Classic" game is soloduo/flex/draft/quickplay

Right now, these are all marked as "Game mode: Classic". I can't imagine the LCU doesn't provide a way to differentiate between them, since the post screen lobby does show stuff like lp gains and it must be getting them from the /lol-end-of-game/ endpoint that you use, right?

LCU is documentation hell, so I'm not sure whether this is 100% the case though.

I'd try to implement it myself but sadly I've never written rust before

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.