A cross-platform random media player with web-based remote control interface.
- Smart Random Playback - True randomness with intelligent history tracking to avoid recent repeats
- Web-Based Remote Control - Control playback from any device on your network
- Cross-Platform - Works on Windows, Linux, and macOS
- Weighted Directory Selection - Configure how often different folders are selected
- Queue System - Queue specific files for immediate playback
- Auto-Update - Built-in updater pulls latest version from GitHub
- Flexible Configuration - Supports recursive directory scanning, file filters, and more
- 
Download the latest version from GitHub master branch 
- 
Extract the files to a folder of your choice 
- 
Run rmplayer: rmplayer.exe 
- 
First-time setup: rmplayer will automatically open the configuration tool to set up your media directories and player command 
Note: No Perl installation required! The .exe files are self-contained.
Option 1: Use PAR files (Recommended)
- 
Download the latest version from GitHub master branch 
- 
Extract and ensure you have Perl installed: # Most systems have Perl pre-installed, check with: perl --version
- 
Run rmplayer using PAR files: perl rmplayer.par Note: PAR files contain all dependencies - only base Perl required! 
Option 2: Run from source
- 
Install dependencies: # Install required Perl modules cpanm Time::HiRes Scalar::Util Data::Dumper::Concise Config::IniHash Term::ReadKey JSON threads HTTP::Server::Simple::CGI CGI List::MoreUtils List::Util File::Spec::Functions File::stat Cwd Tk Archive::Zip
- 
Run rmplayer: perl rmplayer.pl 
- First Run: rmplayer will launch a configuration tool to set up your media directories and player command
- Web Interface: Access the control panel at http://localhost:8080
- Keyboard Controls: Press qin the terminal to quit
- Play/Stop/Next - Basic playback controls
- Browse & Queue - Browse directories and queue specific files
- History - View recently played files
- Settings - Enable/disable directories, set play limits
- Scripts - Execute custom scripts (volume control, etc.)
rmplayer includes a built-in auto-updater that keeps you current with the latest version:
update.exe# Using PAR file (recommended)
perl update.par
# Or using source
perl update.plThe updater will:
- Check GitHub for newer versions by comparing build timestamps
- Download the latest master branch automatically
- Extract and replace files in your rmplayer directory
- Preserve your configuration files (config.ini,dirs.ini, user data)
No manual downloads needed! The updater handles everything automatically.
rmplayer uses two main configuration files:
- config.ini- Application settings (player command, web server, etc.)
- dirs.ini- Media directory configuration
Anything your mediaplayer supports.
Unlike truly random players that can repeat files frequently, rmplayer:
- Tracks playback history per directory
- Ensures variety by avoiding recent plays
- Trims history when 80% of files have been played
- Provides weighted directory selection
Place executable scripts in the scripts/ directory:
- Windows: .bator.exefiles
- Linux/macOS: .shfiles
Access via web interface at /scripts
The built-in updater (update.exe / update.pl):
- Checks GitHub for newer versions
- Downloads and extracts updates automatically
- Compares build timestamps to determine update availability
- Perl 5.x with required modules
- PAR::Packer (for executable generation)
# Install all dependencies
install.cpan.modules.bat
# Build Windows executables
build_win_exe.batThis project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
- Thanks to the Perl community for excellent modules
- HTTP::Server::Simple for the lightweight web server
- PAR::Packer for executable generation
rmplayer - Because sometimes you want random, but not that random.