An opinionated video browser
Built with Rust and egui for high performance
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)
- 🎞 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
- FFmpeg
- Rust 1.94.0 or later
- LosslessCut (optional)
This is currently the only way to install the Replay Manager.
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
yayor your preferred AUR helper to install LosslessCut (packagelosslesscut) -
On other distros: Use snap to install LosslessCut (package
losslesscut)
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-managerBuild and install the package with cargo:
cargo install --path .
/
.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
- Optimize
- Polish
- Saved replays
- Better UX
- Keyboard shortcuts
- Catbox authentication
- Thumbnail generation multithreading
- Cross-platform support
- Linux
- MacOS
- Windows (almost...)
- Logging with tracing
- 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
