2 releases
Uses new Rust 2024
| 0.1.2-nightly… | Aug 24, 2025 |
|---|---|
| 0.1.1 | Aug 24, 2025 |
#2024 in Database interfaces
500KB
10K
SLoC
Plex Media Organizer
A powerful, intelligent media file organizer that follows Plex naming conventions. Built in Rust for performance and reliability.
🎬 Features
- Intelligent Parsing: Advanced filename parsing with confidence scoring
- Plex Compatibility: Follows Plex naming conventions for optimal media server integration
- Multi-language Support: Handles English, Chinese, Japanese, Arabic, and other languages
- TMDB Integration: Enhanced metadata using The Movie Database API
- Database Backed: Persistent operation history with rollback capabilities
🚀 Quick Start
Installation
Option 1: Install from Cargo (Recommended)
# Install the latest version
cargo install plex-media-organizer
# Update to the latest version
cargo install --force plex-media-organizer
Option 2: Download Pre-built Binaries
Download the latest release for your platform from GitHub Releases:
- macOS (Intel/Apple Silicon):
plex-media-organizer-v1.0.0-x86_64-apple-darwin.tar.gz/plex-media-organizer-v1.0.0-aarch64-apple-darwin.tar.gz - Linux:
plex-media-organizer-v1.0.0-x86_64-unknown-linux-gnu.tar.gz - Windows:
plex-media-organizer-v1.0.0-x86_64-pc-windows-msvc.zip
# Extract and add to your PATH
tar -xzf plex-media-organizer-v1.0.0-x86_64-apple-darwin.tar.gz
sudo mv plex-media-organizer /usr/local/bin/
First Time Setup
# Run the interactive setup
plex-media-organizer setup
# Scan a directory to see what's there
plex-media-organizer scan /path/to/movies
# Test parsing without making changes
plex-media-organizer test /path/to/movies
# Organize files (preview first!)
plex-media-organizer organize /path/to/movies --preview
📋 Commands
setup- Interactive configuration setupscan- Analyze media directoriestest- Test parsing functionalityorganize- Organize media filesrollback- Revert previous operationscleanup- Database maintenance
For detailed command documentation, see CLI Commands Reference.
📁 Supported File Types
- Movies:
.mkv,.mp4,.avi,.mov,.wmv - TV Shows:
.mkv,.mp4,.avi,.mov - Documentaries:
.mkv,.mp4,.avi - Anime:
.mkv,.mp4,.avi
🌍 Language Support
- English: Primary language with full support
- Chinese: Simplified and Traditional Chinese
- Japanese: Hiragana, Katakana, and Kanji
- Arabic: Arabic script support
- Russian: Cyrillic script support
- Other Languages: Latin-based scripts
🔧 Configuration
Configuration is stored in ~/.config/plex-media-organizer/config.toml (Linux/macOS) or %APPDATA%\plex-media-organizer\config.toml (Windows).
For detailed configuration options, see Configuration Guide.
🛠️ Development
# Clone and build
git clone https://github.com/lijunzh/plex-media-organizer.git
cd plex-media-organizer
cargo build --release
# Run tests
cargo test
For development setup and contributing guidelines, see Contributing Guide.
📄 Performance
- Fast Parsing: Optimized algorithms for quick filename analysis
- Parallel Processing: Configurable parallel operations for large directories
- Intelligent Caching: Database-backed caching for repeated operations
- Memory Efficient: Minimal memory footprint for large media libraries
🔒 Safety Features
- Preview Mode: Test operations before making changes
- Rollback Support: Revert any operation with full history
- Error Handling: Graceful handling of file system errors
- Validation: Comprehensive input validation and error checking
📚 Documentation
- User Guide - Complete user documentation
- CLI Commands - Detailed command reference
- Configuration - Configuration options
- Technical Terms - Customizing parsing behavior
- Contributing - Development and contribution guidelines
🤝 Contributing
We welcome contributions! Please see our Contributing Guide for details.
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
📞 Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Made with ❤️ in Rust
Dependencies
~48–68MB
~1M SLoC