Skip to content

sxlphuric/replay-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

224 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Replay Manager

ReplayManagerIcon

An opinionated video browser

Built with Rust and egui for high performance

Version Commit Activity CI Stars

InstallationRoadmapStructure


Overview

The Replay Manager is an opinionated video browser built using Rust and egui. It's goal is to somewhat replicate Medal's features (excluding the social media part)

Key Features

  • 🎞 Automatic Thumbnail Generation - Works cross-platform using FFmpeg
  • 💾 Cloud Save - Upload your files to Catbox or Litterbox for easy sharing
  • 📈 Video Edit - Open replays in an editor of choice (default losslesscut)
  • Favorites - Favorite replays to find them easily

Screenshots

image

Dependencies

Building

This is currently the only way to install the Replay Manager.

Support

Linux macOS Windows (partial)

1. Install dependencies

Install all the dependencies listed above. These commands will also install git on your machine.

On Windows:

Note: The LosslessCut Winget package is unofficial. If you're unsure, you can grab it from their github releases or use Chocolatey.

winget install ch.LosslessCut Gyan.FFmpeg Git.Git

or

choco install losslesscut ffmpeg git

if you prefer Chocolatey.

On MacOS:

Note: I'm assuming you already have Homebrew installed. If not, please install it.

brew install losslesscut ffmpeg

On Linux:

Use your package manager to install ffmpeg and git.

  • On Arch Linux and derivatives: Use yay or your preferred AUR helper to install LosslessCut (package losslesscut)

  • On other distros: Use snap to install LosslessCut (package losslesscut)

2. Cloning the repository

Clone the repository to your local machine. This can be done with

# Clone the repository
git clone https://github.com/sxlphuric/replay-manager.git

# Go into the repository's folder
cd replay-manager

3. Building

Build and install the package with cargo:

cargo install --path .

Structure

/
.github/workflows - workflows
|_ rust.yml - workflow for Cargo tests
test - files for test workflows
|_ bounce.webm - test video for thumbnail test
assets - program assets
|_ icon_256.png - program icon (256x256px)
src
|_ app.rs - the egui app
|_ main.rs - the main rust code that just launches the egui app
|_ thumbnails.rs - generates thumbnails
|_ videoutils - simple functions that return info on a file when given a path
README.md - this file
LICENSE - license (gplv3)
Cargo.lock - idk
Cargo.toml - Cargo dependencies

Roadmap

  • Optimize
  • Polish
  • Saved replays
    • Better UX
  • Keyboard shortcuts
  • Catbox authentication
  • Thumbnail generation multithreading
  • Cross-platform support
    • Linux
    • MacOS
    • Windows (almost...)
  • Logging with tracing

TODO

  • Catbox authentication with user token
  • Litterbox fallback when file too big for catbox
  • Possibly rewrite gpu-screen-recorder in rust
  • Add side panel for catbox file send operations
  • Change catbox uploads to allow multiple uploads at the same time
  • Working tests
  • Remove images from like the egui_extras cache (one loaded image is 1.6 mb, and when you have a large folder, it can add up quickly)
  • Fix Windows catbox uploads failing and litterbox uploads completing but the link returns an empty video
  • Add Saved replays : basically renaming BUT it also moves/clones the replay to a folder called "Saved" or "Favorites" or etc., where it can be easily found or accessed in the program (The UX is half baked, make it better)
  • Cleaner path management with glob patterns : instead of using format!, use the .join method

About

Simple and opinionated video browser built to replicate Medal

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages