A comprehensive Firefox browser extension for automatically tracking, organizing, and managing funscript files and their associated video content. Designed to streamline the workflow of interactive media enthusiasts by providing intelligent file matching, organization, and management capabilities.
Funscript Organizer automatically detects funscript downloads, matches them with corresponding video files, and provides powerful organization tools. The extension features an intelligent matching system with probability scoring, advanced theming, and a native file system integration for seamless file operations.
- Download Monitoring: Automatically detects
.funscriptand video file downloads - Directory Watching: Real-time monitoring of specified folders for new files
- Smart Detection: Recognizes temporary files and avoids duplicate tracking
- Multi-Format Support: Handles all common video formats (MP4, AVI, MKV, WebM, MOV, etc.)
- Probability-Based Matching: Advanced algorithm scores potential matches (0-100%)
- Variant Recognition: Supports funscript variants (
.roll.funscript,.pitch.funscript,.vib.funscript, etc.) - Flexible Matching: Handles filename variations, missing extensions, and encoding differences
- Match Confidence: Visual indicators for high (80%+), medium (50-79%), and low (<50%) confidence matches
- Subfolder Organization: Optional organization into base name subfolders
- Automatic Moving: Move matched pairs to designated folders
- Variant Management: Add variant funscripts to existing matched folders
- Batch Operations: Group and process multiple files simultaneously
- Custom Naming: Edit base names during matching operations
- Grouping System: Select and rename multiple funscripts together
- "Is Variant" Mode: Add variant funscripts to existing organized folders
- Existing Folder Matching: Browse and match to previously organized content
- Probability Sorting: Files automatically sorted by match confidence
- Real-time Updates: Live file list updates as operations complete
- Dual Interface Modes: Compact popup and full window views
- Responsive Design: Adapts to different screen sizes and preferences
- Advanced Theming: Comprehensive color customization system
- Saved Themes: Create, save, and load custom theme configurations
- Font & Size Options: Customizable text size and extension dimensions
- Dark/Light Modes: Automatic system theme detection with manual override
- Auto-Matching: Toggle automatic removal of matched pairs
- Notifications: Browser notifications for new files and operations
- Watched Folders: Add multiple directories for monitoring
- File Movement: Configure automatic moving of matched files
- Subfolder Organization: Enable/disable base name folder structure
- Visual Preferences: Comprehensive appearance customization
- Cross-Platform Support: Works on Linux with fallbacks for other systems
- File Operations: Direct file renaming, moving, and organization
- Folder Selection: Native system dialogs for folder browsing
- Real-time Monitoring: File system event detection and processing
- Error Handling: Robust error handling with detailed logging
-
Download both files from the latest release:
funscript-organizer.xpi(browser extension)- Platform-specific native host package:
- Windows:
funscript-native-host-windows.zip - Linux/macOS:
funscript-native-host-unix.tar.gz
- Windows:
-
Install Extension:
- Open Firefox and drag & drop the
.xpifile - Click "Add" when prompted
- Open Firefox and drag & drop the
-
Install Native Host:
- Extract the package and run the installer:
- Windows: Double-click
install.bat - Linux/macOS: Run
chmod +x install.sh && ./install.sh
- Windows: Double-click
- Extract the package and run the installer:
-
Restart Firefox and verify connection in Settings → Native Host Status
- Python 3.6+ installed and in PATH
- Firefox 58+ browser
For development or testing with unsigned extensions:
- Download files from releases
- Open Firefox Developer Edition
- Go to
about:debugging→ This Firefox → Load Temporary Add-on - Install native host as described above
If automatic installation fails, see the troubleshooting section for manual steps.
-
Initial Setup
- Install both the extension and native host
- Open the extension popup or window
- Configure settings in the Settings tab
-
Adding Watched Folders
- Go to Settings → Watched Folders
- Click "Browse" or enter folder paths manually
- Add your Downloads folder and any other relevant directories
-
File Detection
- Download funscript and video files
- Files automatically appear in the extension interface
- Real-time detection from watched folders
-
Matching & Organization
- Review suggested matches with probability scores
- Click on files to rename/match them
- Use batch operations for multiple files
- Enable automatic moving for hands-off organization
- Enable "Organize in subfolders by base name" in settings
- When matching a funscript, check "Is Variant"
- Select from existing matched folders instead of videos
- Variant is added to the folder without renaming
- Click the group icon (⧉) next to any funscript
- Select multiple related funscripts
- Rename all with a common base name
- All files maintain their variant extensions
- Go to Settings → Appearance → Advanced Theming
- Customize individual color properties
- Save custom themes for later use
- Load and delete saved themes as needed
- File Management: Loading, displaying, and organizing file lists
- Matching Logic: Probability calculation and file correlation algorithms
- UI Management: Theme application, view switching, event handling
- Native Communication: Messaging with background script and native host
- Download Detection: Monitoring browser downloads via WebExtensions API
- Auto-Matching: Automatic file correlation and removal
- Native Host Bridge: Communication with file system operations
- Data Persistence: File tracking and settings storage
- File System Operations: Rename, move, and organize files
- Directory Monitoring: Real-time file system event detection
- Cross-Platform Support: Linux (primary), Windows, and macOS support
- Message Processing: Bidirectional communication with browser extension
- Platform-Specific Features:
- Linux: Full inotify support with zenity fallback
- Windows: tkinter dialogs with file system monitoring
- macOS: tkinter dialogs with polling-based detection
The intelligent matching system uses multiple factors:
- Exact Base Name Matching (100%): Perfect filename correlation
- Fuzzy Matching (80-95%): Similar names with minor variations
- Substring Matching (60-80%): Partial name correlation
- Word-Based Matching (40-70%): Individual word correlation
- Length Similarity (10-30%): Filename length correlation
Output Folder/
├── BaseFileName1/
│ ├── BaseFileName1.mp4
│ ├── BaseFileName1.funscript
│ ├── BaseFileName1.roll.funscript
│ └── BaseFileName1.vib.funscript
├── BaseFileName2/
│ ├── BaseFileName2.mkv
│ └── BaseFileName2.funscript
| Setting | Description | Default |
|---|---|---|
| Auto-remove matches | Automatically remove matched pairs from tracking | Enabled |
| Show notifications | Browser notifications for new files and operations | Enabled |
| Move matched files | Automatically move matched pairs to designated folder | Disabled |
| Organize in subfolders | Create base name subfolders for organization | Disabled |
| Theme mode | Light, dark, or auto (system) theme | Auto |
| Font size | Interface text size (small, medium, large) | Medium |
| Extension size | Popup dimensions (compact, normal, large) | Normal |
- Add multiple directories for automatic monitoring
- Supports both manual entry and native folder browsing
- Real-time status indicators (active, error, unknown)
- Individual folder scanning and removal options
- Designate target folder for automatic file moving
- Native folder browsing with system dialogs
- Visual confirmation of selected folder
- Integration with subfolder organization
If the installer scripts don't work, install manually:
Windows Manual Setup:
- Create directory:
mkdir "%APPDATA%\Mozilla\NativeMessagingHosts" - Copy
funscript_rename_host.jsonto that directory - Edit the JSON file to use absolute Windows paths:
{ "path": "C:\\Users\\YourName\\path\\to\\python.exe", "args": ["C:\\Users\\YourName\\path\\to\\funscript_rename_host_v2.py"] } - Test:
python funscript_rename_host_v2.py - Restart Firefox
Linux/macOS Manual Setup:
- Copy JSON to
~/.mozilla/native-messaging-hosts/ - Edit paths to use absolute Unix paths
- Make Python script executable:
chmod +x funscript_rename_host_v2.py - Test:
python3 funscript_rename_host_v2.py - Restart Firefox
- Python not found: Ensure Python 3.6+ is installed and in PATH
- Permission denied: Run installer as administrator/sudo
- Wrong paths: Use absolute paths in the JSON manifest
- Firefox cache: Restart Firefox after installation
- Check extension permissions are granted
- Verify file types (.funscript, video files) are supported
- Ensure downloads complete fully
- Verify native host connection in Settings
- Check folder permissions for source/destination
- Review browser console for error messages
- Check filename similarity and extensions
- Review match probability scores
- Try manual matching for difficult cases
- Use grouping feature for related files
Enable detailed logging by opening browser developer tools:
- Right-click extension popup → Inspect
- Go to Console tab
- Reproduce the issue
- Review console output for error messages
- Limit number of watched folders for better performance
- Regularly clean up completed matches
- Use subfolder organization to reduce file list size
- Consider moving older organized content out of watched folders
funscript-organizer/
├── manifest.json # Extension manifest
├── background_v2.js # Background script
├── popup.html # Popup interface
├── popup.js # Frontend logic
├── popup.css # Styling and themes
├── window.html # Full window interface
├── window.css # Window-specific styles
├── build.sh # Build script
├── native-host/ # Native messaging host
│ ├── funscript_rename_host_v2.py
│ ├── funscript_rename_host.json
│ ├── install.sh
│ └── uninstall.sh
└── icons/ # Extension icons
# Clone the repository
git clone <repository-url>
cd funscript-organizer
# Build extension for distribution
./build.sh
# Build native host packages for distribution
./build_native_host.sh
# For development: install native host locally
cd native-host && ./install.shRelease packages are available on the releases page:
funscript-organizer.xpi- Firefox extensionfunscript-native-host-windows.zip- Windows native hostfunscript-native-host-unix.tar.gz- Linux/macOS native host
- Load unpacked extension in Firefox Developer Edition
- Install native host for testing file operations
- Enable browser console logging for debugging
- Use
about:debuggingfor real-time extension debugging
- Follow existing code style and patterns
- Test both popup and window interfaces
- Verify native host functionality on your platform
- Update documentation for new features
- Ensure proper error handling and user feedback
This project is licensed under the MIT License - see the LICENSE file for details.
For issues, feature requests, or questions:
- Check the troubleshooting section above
- Review browser console for error messages
- Create an issue with detailed reproduction steps
- Include system information (OS, Firefox version, extension version)
Version: 0.1.4
Compatibility: Firefox 58+
Platform: Cross-platform (Linux, Windows, macOS)