Osu Replay - Viewer
Because .osr files cannot be uploaded directly to YouTube, Discord, or TikTok, you must render them into a standard video format. You have two main ways to do this:
Gink is a standalone application that focuses heavily on visual analytics. If you are a data nerd, you will love this.
// handle uploaded JSON function processUploadedJSON(jsonText) try const obj = JSON.parse(jsonText); let frames = null; let duration = null; if (obj.replayData && Array.isArray(obj.replayData)) else if (Array.isArray(obj)) frames = obj; duration = obj.length ? obj[obj.length-1].timeMs + 200 : 5000; else throw new Error("Format error, need replayData array with timeMs, x, y, click");
Every .osr file begins with a single byte indicating the game mode ( 0 = osu! Standard , 1 = Taiko , 2 = Catch the Beat , 3 = osu!mania ), followed by the game version timestamp (e.g., 20131216 ). The file then stores the beatmap MD5 hash, player name, and a that includes certain properties of the replay for integrity checks.
playPauseBtn.addEventListener('click', togglePlayPause); resetBtn.addEventListener('click', resetReplay); osu replay viewer
// generate built-in demo (smooth circular cursor + clicks) function generateDemoReplay() const frames = []; const duration = 7800; const steps = 220; for (let i = 0; i <= steps; i++) let t = (i / steps) * duration; let angle = (t / duration) * Math.PI * 4; let radius = 180; let centerX = canvas.width/2, centerY = canvas.height/2; let x = centerX + Math.sin(angle) * radius * (1 + Math.sin(t/700)); let y = centerY + Math.cos(angle * 1.3) * radius * 0.8; x = Math.min(canvas.width-25, Math.max(25, x)); y = Math.min(canvas.height-30, Math.max(30, y)); let click = false; if (Math.abs(t - 1200) < 60) click = true; if (Math.abs(t - 2500) < 50) click = true; if (Math.abs(t - 3800) < 60) click = true; if (Math.abs(t - 4900) < 55) click = true; if (Math.abs(t - 6100) < 70) click = true; if (Math.abs(t - 7100) < 80) click = true; frames.push( timeMs: t, x: Math.floor(x), y: Math.floor(y), click );
.file-zone background: #0f172ac9; border-radius: 1.2rem; padding: 0.7rem; text-align: center; border: 1px dashed #3e5a77; cursor: pointer; transition: 0.1s;
Whether you are trying to fix your hard-stuck accuracy or want to export your plays to show your friends, mastering the replay system is essential. This comprehensive guide covers everything you need to know about finding, using, and maximizing the osu! replay viewer. How to Access the osu! Replay Viewer
While the base osu! client allows for basic viewing, specialized replay viewers and renderers, such as and web-based viewers, offer enhanced features, smoother visualizations, and easier sharing capabilities. Because
By default, osu! overwrites local replays if you achieve a better score on the same map. To save a masterpiece forever: On the score ranking screen, press .
No installation required, supports all four game modes (standard, Taiko, Catch, Mania), and allows browsing top plays. Best for: Quick reviews without downloading software. How to Use a Replay Viewer (Step-by-Step) Method 1: Using an Online Tool (o!rdr) Visit the o!rdr website. Upload your .osr file (usually found in osu!/Replays ). Select your desired skin (.osk file) if needed. Configure video settings (resolution, FPS, lighting).
playPauseBtn.innerHTML = '▶ PLAY';
If you’ve ever finished a song and thought, “Where did I miss that note?” or “How did that top player stream 300 BPM?” , you need to look beyond the score screen. In this guide, we will explore everything you need to know about viewing replays in osu!, from the built-in tools to third-party software that offers heatmaps, timeline analysis, and mechanical breakdowns. The file then stores the beatmap MD5 hash,
function pauseReplay() if (!isPlaying) return; isPlaying = false; if (animationId) cancelAnimationFrame(animationId); animationId = null;
Getting started with Osu Replay Viewer is easy. Here's a step-by-step guide:
The osu! replay viewer is the native system within the osu! client that records and plays back your inputs during a song. It tracks your precise cursor movements, key taps, and accuracy in real-time. Why Use the Replay Viewer?