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.