Professional Traktor to Pioneer CDJ database, XML, M3U Converter and USB Transfert
Convert your Native Instruments Traktor playlists to Pioneer Rekordbox format with full metadata preservation including cue points, loops, BPM, musical keys, and artwork.
Install like 1,2,3:
- Download
Traktor_bridge.py - Install PIP dependencies:
pip install PySide6 pygame tinytag pillow mutagen - Open Command Line and write:
python ./traktor_bridge.py
- Author
- Overview
- Key Features
- Export Formats
- Screenshots
- Installation
- Usage Guide
- Configuration
- Use Cases
- Technical Details
- Troubleshooting
- Contributing
- License
- Changelog
- Support
- Dependencies and Credits
Benoit (BSM) Saint-Moulin
Website: www.benoitsaintmoulin.com
Traktor Bridge is a professional-grade application that converts Native Instruments Traktor collections (.nml files) to Pioneer Rekordbox format. Originally developed as a command-line tool (CLI) - a vestige from my Amiga CLI heritage - it has been refactored to include a modern graphical interface while preserving CLI usage for advanced users.
Design Philosophy: The code is clean but not perfect; certain areas could be optimized. The monolithic code structure is intentional to facilitate usage by non-programmers who prefer a single-file solution.
The application supports both database (.pdb) and XML export formats, making it compatible with Pioneer CDJ players and various DJ software that accept Rekordbox libraries.
- Complete Metadata Preservation: Artist, title, album, genre, BPM, musical key, comments, and artwork
- Cue Point Translation: Hot cues, memory cues, loops, and beat grids
- Dual Export Formats: Database (.pdb) for CDJs or XML for DJ software compatibility
- Smart File Management: Automatic file location detection with music root folder support
- Audio Preview: Built-in audio player for track verification
- Advanced Cue Timeline: Visual cue point editor with filtering and export capabilities
- Batch Processing: Convert multiple playlists and folder structures simultaneously
- Memory Optimized: Efficient caching system for large collections
- Cross-Platform: Works on Windows, macOS, and Linux
- CLI Support: Original command-line interface preserved for batch operations
- Creates Pioneer-compatible SQLite database
- Includes full folder structure:
PIONEER/,CONTENTS/,ARTWORK/ - Direct USB transfer to CDJ players
- Preserves all metadata including artwork and cue points
- Rekordbox XML format for software compatibility
- Compatible with Serato, VirtualDJ, and other DJ software
- Lightweight alternative to database format
- Maintains playlist structure and track metadata
The intuitive interface guides you through the conversion process:
- File Selection: Choose your Traktor .nml file and optional music root folder
- Playlist Selection: Browse and select playlists/folders with visual icons
- Export Options: Choose format, file copying, and verification settings
- Progress Monitoring: Real-time conversion progress with detailed logging
- Sortable Track Listing: Sort by any column (artist, title, BPM, key, etc.)
- Audio Playback: Play/pause tracks with keyboard shortcuts (P key)
- Key Format Selection: Toggle between Open Key and Classical notation
- Search Functionality: Filter tracks by artist, title, or album
- Visual Timeline: Graphical representation of track structure with waveform simulation
- Interactive Filters: Toggle display of hot cues, memory cues, loops, and grid anchors
- Detailed Information: Complete cue point statistics and timing information
- Export to Clipboard: Copy cue point data for external use
Python 3.8 or higher is required.
pip install PySide6 pygame tinytag pillowpip install mutagenNote: mutagen provides enhanced metadata extraction capabilities for certain audio formats.
-
Clone the Repository or Download
git clone https://github.com/yourusername/traktor-bridge.git cd traktor-bridgeOr simply download
Traktor_bridge.pydirectly. -
Install Dependencies
pip install PySide6 pygame tinytag pillow mutagen
-
Run the Application
python Traktor_bridge.py
python -m venv traktor_bridge_env
source traktor_bridge_env/bin/activate # On Windows: traktor_bridge_env\Scripts\activate
pip install PySide6 pygame tinytag pillow mutagen
python Traktor_bridge.pyFor batch processing or automation, the original CLI interface is preserved:
python Traktor_bridge.py --help-
Launch Traktor Bridge
python Traktor_bridge.py
-
Select Your Traktor NML File
- Click "Browse..." next to "Traktor NML File"
- Navigate to your Traktor collection file (usually in
Documents/Native Instruments/Traktor X.X.X/) - The file is typically named
collection.nml
-
Optional: Set Music Root Folder
- If your music files have been moved, select the root folder containing your music
- This enables smart file location detection
-
Choose Playlists
- Browse the loaded playlist structure
- Select individual playlists or entire folders
- Use Ctrl+Click (Cmd+Click on Mac) for multiple selections
-
Configure Export Options
- Export Format: Choose Database (CDJ) or XML (software)
- Copy Music Files: Include audio files in export
- Verify File Integrity: Ensure copied files are intact
-
Convert
- Click "CONVERT"
- Choose your destination folder (USB drive for CDJs)
- Monitor progress in real-time
- View Details: Select playlist and click "View Details"
- Audio Preview: Click ▶ buttons or press P to play/pause
- Sort Tracks: Click column headers to sort by any criteria
- Search: Use the search box to filter tracks
- Timeline View: Double-click "Cues Detail" column
- Filter Cues: Toggle hot cues, memory cues, loops, and grid anchors
- Export Data: Copy cue information to clipboard
- Select multiple playlists and folders simultaneously
- The converter maintains folder hierarchy in the output
- Progress tracking shows individual file operations
The original CLI is preserved for automation:
python Traktor_bridge.py --nml collection.nml --output /path/to/usb --format database| Shortcut | Action |
|---|---|
| P | Play/Pause selected track (in Details window) |
| Ctrl+A | Select all playlists |
| F3 | Focus search box |
| Escape | Clear selection |
Traktor Bridge automatically saves your preferences:
- Last used NML file path
- Music root folder location
- Export format preference
- File copying options
Configuration is stored in converter_config.json in the application directory.
Scenario: DJ preparing for a club performance with Pioneer CDJ setup
Process:
- Load Traktor collection with organized performance playlists
- Select specific event playlists
- Export as Database format with music files
- Copy to USB drive for CDJ compatibility
Benefits: Maintains all cue points, loops, and BPM information on CDJs
Scenario: Switching from Traktor to Serato/VirtualDJ
Process:
- Export entire Traktor collection as XML format
- Import XML file into new DJ software
- All playlists and metadata transfer seamlessly
Benefits: No loss of years of cue point and playlist organization work
Scenario: Creating portable backups of DJ collection
Process:
- Regular exports of updated playlists
- Include music files for complete portability
- Store on external drives for backup
Benefits: Complete collection portability and protection
Scenario: Sharing specific playlists with other DJs
Process:
- Export selected collaborative playlists
- Share USB drive or files with partner DJs
- Partners can import to their preferred DJ software
Benefits: Cross-platform collaboration regardless of DJ software choice
Scenario: Professional DJ with multiple venue setups
Process:
- Maintain master collection in Traktor
- Create venue-specific playlist exports
- Generate CDJ-compatible USB drives for each event
Benefits: Consistent performance setup across different equipment
- MP3
- WAV
- FLAC
- AIFF
- M4A
- OGG
| Traktor Type | Rekordbox Equivalent | Notes |
|---|---|---|
| Hot Cue | Hot Cue | Numbered cues (1-8) |
| Memory Cue | Memory Cue | Navigation markers |
| Loop | Loop | Auto-repeating sections |
| Grid Marker | Beat Grid | BPM synchronization |
- Open Key: Camelot wheel notation (1A, 2B, etc.)
- Classical: Traditional notation (Am, C, etc.)
The exported database follows Pioneer's official schema:
djmdContent: Track metadatadjmdPlaylist: Playlist structuredjmdSongPlaylist: Track-playlist relationshipsdjmdCue: Cue point datadjmdBeatGrid: Beat grid informationdjmdArtwork: Album artwork
Cause: Corrupted or unsupported NML file format
Solution:
- Ensure Traktor is closed when accessing the NML file
- Try exporting a fresh collection from Traktor
- Check file isn't corrupted
Cause: Music files moved since last Traktor scan
Solution:
- Set the Music Root Folder to your current music location
- The smart cache will locate moved files automatically
Cause: Required Python packages not installed
Solution:
pip install PySide6 pygame tinytag pillow mutagenCause: Audio system conflicts or missing codecs
Solution:
- Restart the application
- Check system audio settings
- Install additional audio codecs if needed
- Use Music Root Folder for faster file location
- Process playlists in smaller batches
- Ensure sufficient RAM (4GB+ recommended)
- Copy NML file locally before processing
- Map network drives persistently
- Use wired connections for better stability
Contributions are welcome! Please read our contributing guidelines:
- Fork the Repository
- Create Feature Branch:
git checkout -b feature/amazing-feature - Commit Changes:
git commit -m 'Add amazing feature' - Push to Branch:
git push origin feature/amazing-feature - Open Pull Request
git clone https://github.com/yourusername/traktor-bridge.git
cd traktor-bridge
python -m venv dev_env
source dev_env/bin/activate # On Windows: dev_env\Scripts\activate
pip install PySide6 pygame tinytag pillow mutagen- Follow PEP 8 guidelines
- Use type hints where possible
- Add docstrings for public functions
- Include unit tests for new features
This project is licensed under the MIT License - see the LICENSE file for details.
- Enhanced PySide6 GUI with modern styling
- Advanced cue point timeline visualization
- Smart file caching system
- XML export format support
- Improved error handling and logging
- Audio preview with playback controls
- Memory-optimized processing for large collections
- Preserved CLI interface for batch operations
- Initial release
- Basic NML to database conversion
- Playlist structure preservation
- Cue point translation
- Command-line interface
- Discussions: GitHub Discussions
- Web: Traktor Bridge web site
- Email: Contact via www.benoitsaintmoulin.com
This application relies on excellent open-source libraries:
- PySide6 - Qt for Python GUI framework by The Qt Company
- pygame - Multimedia library for audio playback by Pete Shinners and pygame community
- tinytag - Audio metadata extraction library by Tom Wallroth (devsnd)
- Pillow - Python Imaging Library fork by Jeffrey A. Clark (Alex) and contributors
- mutagen - Audio metadata handling library by Michael Urman, Lukáš Lalinský, and contributors
Special thanks to all the library maintainers and contributors who make tools like this possible.
Made with ❤️ by Benoit (BSM) Saint-Moulin