Skip to content

Repository files navigation

rPlay Logo

rPlay

Infinite Media Looper • YouTube, Local Files & Free Tracks

Deploy to GitHub Pages License: MIT PWA Ready

rPlay is a fast, frontend-only media looper for music practice, video analysis, and continuous background listening. Loop YouTube links, local audio/video files, or free tracks with precision A-B looping and a one-tap video/waveform view.

Live Demo • Report Bug


give a 🌟

✨ Features

  • 🔁 Infinite Looping: every source loops automatically; combine it with A-B points to repeat just a section.
  • 🎯 A-B Precision Looping: set start (A) and end (B) points to loop a specific passage endlessly, down to the millisecond.
  • 📺 Video ⇄ Waveform Toggle: switch any playing track between its video frame and a live audio waveform. For local files this is a real, live amplitude trace; for YouTube and Audius streams it's an animated visualizer (streaming platforms' audio can't always be safely analyzed in-browser without risking silent playback, so we trade exact accuracy for reliability there).
  • ▶️ YouTube Links: paste a URL or video ID. rPlay tries to unlock background & waveform playback automatically, and falls back to the standard embedded player if that isn't possible for a given video.
  • 📁 Local File Support: drag-and-drop .mp3, .wav, .mp4, or .webm files. Nothing is ever uploaded anywhere; playback is 100% local to your browser.
  • 🔎 Free Track Search: search and stream full, free tracks from independent artists via Audius, no account required.
  • ⏱️ Playback Speed: cycle from 0.5× to 2× with one tap, on any source.
  • 📲 Installable (PWA): add rPlay to your home screen / app list on desktop, Android, and iOS for an app-like, offline-capable experience.
  • 🔒 Privacy-First: pure static client-side app: zero tracking, zero backend analytics.

⌨️ Keyboard Shortcuts

Key Action
Space Play / Pause media
← / → Seek backward / forward 5 seconds
A Set Point A (loop start) to current timestamp
B Set Point B (loop end) to current timestamp
L Toggle A-B precision loop ON / OFF
V Toggle between video and waveform view

📲 Installation

Desktop (Chrome, Edge, Brave): open the live demo, then click the Install button in the header (or the install icon in the address bar).

Android: open the live demo in Chrome, tap Install in the header, or use the browser menu → Add to Home screen.

iOS (Safari): tap the Share icon → Add to Home Screen. iOS doesn't support automatic install prompts, so rPlay shows you this instruction when you tap Install.

Once installed, rPlay opens full-screen like a native app and keeps working offline for anything already cached.


🔉 A note on background & waveform playback

Browsers only allow true background/lock-screen audio for direct <audio>/<video> elements not for embedded YouTube iframes. To make YouTube links behave the same way, rPlay tries to fetch a direct audio stream for the video (via public Invidious instances) before falling back to the standard embedded player. When that works, you also get lock-screen controls and the waveform view; when it doesn't (e.g. all public instances are temporarily unreachable), rPlay automatically falls back to the normal YouTube player, and background/waveform playback for that video won't be available. Local files and Audius search results always support both.


For developer setup, architecture notes, and how to extend rPlay, see DEVDOC.md.

📄 License

Distributed under the MIT License. See LICENSE for more information.

About

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages