Version 1.0.0 - Fully functional version
A powerful Python tool for analyzing Ableton Live projects and extracting used VST plugins. Optimized for performance with multi-threading and batch processing.
This tool was created during a PC migration to help identify all VST plugins used across multiple Ableton Live projects. It was developed to simplify the process of setting up a new computer by automatically generating a comprehensive list of required plugins and their usage statistics.
π‘ Note: This tool was created during a PC migration to help identify all VST plugins used across multiple Ableton Live projects. The "VST Requirements" feature helps you identify which plugins you need.
- β Multi-Threading: Processes hundreds of projects in parallel (up to 16 threads, configurable)
- β Batch Processing: Optimized batch processing for better performance
- β Fast Extraction: Optimized XML parsing methods with header detection
- β Thread-Safe: Safe concurrent processing with proper locking mechanisms
- β Progress Tracking: Real-time progress updates during analysis
- β Memory Efficient: Optimized memory usage for large project collections
- Project Overview - All analyzed projects with complete paths, track count, scene count, VST count, and main directory grouping
- VST Overview - Complete list of all used VST plugins with manufacturer, plugin name, filename, version, and project assignment
- Track Details β - Detailed track-VST mapping with track types (Audio, MIDI, Return, Master), track names, and VST assignments
- VST Requirements β - Complete list of all required VST plugins sorted by usage frequency, perfect for PC migration
- Statistics β - Overall statistics (total projects, different VSTs, total tracks), averages, VST frequency analysis, and manufacturer statistics
-
β Excel (.xlsx) - Detailed analysis with 5 comprehensive sheets
- Color-coded headers for easy navigation
- Auto-sized columns for optimal readability
- Professional formatting with statistics
-
β JSON - Complete project data for further processing
- Includes timestamp and metadata
- All project details, tracks, and VST information
- Machine-readable format for automation
-
β TXT - Recursive VST lists organized by directories
- Individual VST list files per project
- Organized by main directories
- Includes track details with VST assignments
- Summary files: Inventory Summary and VST Requirements
- π Automatic search for Ableton projects (.als files)
- π Analysis of project structure (Tracks, Scenes)
- ποΈ Extraction of all used VST plugins with metadata (manufacturer, name, filename, version)
- π Detailed listing with manufacturer and plugin names
- π― User-friendly console output with progress tracking
- π Recursive search for .als files
- π Main directory grouping for better organization
- π‘οΈ Robust error handling - continues processing even if individual projects fail
- π Support for multiple Ableton formats (ZIP, GZIP, XML) with automatic detection
Windows/Linux:
pip install pandas openpyxlmacOS:
pip3 install pandas openpyxl
β οΈ macOS Users: If you encounter Xcode license errors, runsudo xcodebuild -license acceptfirst.
Windows:
python ableton_project_analyzer.py "Z:\Path\to\Your\Projects" --excel "output.xlsx"macOS/Linux:
python3 ableton_project_analyzer.py "/path/to/Your/Projects" --excel "output.xlsx"That's it! The Excel file will be created with all your project and VST information.
- Drag and drop a folder onto
run_analyzer.bat(after installing dependencies)
# 1. Clone repository or download release
git clone <repository>
cd ableton-project-analyzer-release
# 2. Install dependencies
pip install -r requirements.txt
# 3. Ready to use!
python ableton_project_analyzer.py --help# 1. Clone repository or download release
git clone <repository>
cd ableton-project-analyzer-release
# 2. Install dependencies
pip3 install -r requirements.txt
# 3. Ready to use!
python3 ableton_project_analyzer.py --helpπ‘ macOS Note: macOS comes with Python 3 pre-installed. Use
python3andpip3commands instead ofpythonandpip.Alternative: If you have Homebrew Python installed, you can use:
/opt/homebrew/bin/python3 ableton_project_analyzer.py --help
- Python: 3.6 or higher
- Dependencies: pandas, openpyxl
- Operating System: Windows, macOS, Linux
Drag and drop a folder containing .als files onto run_analyzer.bat
The tool will:
- Automatically check for Python and dependencies
- Analyze all projects in the folder
- Create an Excel file with all results
Windows:
python ableton_project_analyzer.py "Z:\Path\to\Projects"macOS/Linux:
python3 ableton_project_analyzer.py "/path/to/Projects"Windows:
python ableton_project_analyzer.py "Z:\Path\to\Projects" --excel "C:\Temp\analysis.xlsx"macOS/Linux:
python3 ableton_project_analyzer.py "/path/to/Projects" --excel "~/Desktop/analysis.xlsx"Windows:
python ableton_project_analyzer.py "Z:\Path\to\Projects" --json results.jsonmacOS/Linux:
python3 ableton_project_analyzer.py "/path/to/Projects" --json results.jsonWindows:
python ableton_project_analyzer.py "Z:\Path\to\Projects" --txt --recursivemacOS/Linux:
python3 ableton_project_analyzer.py "/path/to/Projects" --txt --recursiveWindows:
python ableton_project_analyzer.py "Z:\Path\to\Projects" --excel "output.xlsx" --workers 16macOS/Linux:
python3 ableton_project_analyzer.py "/path/to/Projects" --excel "output.xlsx" --workers 16The tool works with mounted network drives and SMB shares:
# If SMB share is mounted at /Volumes/data
python3 ableton_project_analyzer.py "/Volumes/data/Projects" --excel "analysis.xlsx"
# Example with SMB path
python3 ableton_project_analyzer.py "/Volumes/data/04_Projekte/Musikproduktion/CAMPFIRE/Studio/_Resources/_Ideas Bin/" --recursive --txtπ‘ Tip: Mount SMB shares first using Finder (Go β Connect to Server) or command line:
mount -t smbfs //username@server/share /Volumes/mountpoint
python ableton_project_analyzer.py <path> [OPTIONS]
Options:
--json <file> Export results as JSON (includes timestamp and metadata)
--txt Export VST lists as TXT (requires --recursive)
--excel <file> Export as Excel with 5 comprehensive sheets
--recursive Recursive analysis with subdirectories (required for --txt)
--quiet Reduced output (less verbose progress updates)
--workers <n> Number of parallel threads (default: 16, recommended: 4-16)Searching for Ableton projects in: Z:\Path\to\Projects
Found: 3 project(s)
--------------------------------------------------
Analyzing: MyTrack.als
β 5 VST(s) found
Analyzing: BeatProject.als
β 8 VST(s) found
Analyzing: AmbientSong.als
β 3 VST(s) found
--------------------------------------------------
=== SUMMARY ===
Analyzed projects: 3
Total VSTs: 12
=== PROJECT DETAILS ===
π MyTrack
Path: Z:\Path\to\Projects\MyTrack.als
Tracks: 8
Scenes: 4
VSTs: 5
Used VSTs:
β’ Native Instruments - Massive
β’ FabFilter - Pro-Q 3
β’ Waves - CLA-2A
β’ Serum - Serum
β’ Valhalla DSP - ValhallaRoom
=== ALL USED VSTs ===
β’ FabFilter - Pro-Q 3
β’ Native Instruments - Massive
β’ Serum - Serum
β’ Valhalla DSP - ValhallaRoom
β’ Waves - CLA-2A
Creates a single .xlsx file with 5 sheets containing all analysis data. The file is saved at the location you specify:
python3 ableton_project_analyzer.py "/path/to/Projects" --excel "~/Desktop/analysis.xlsx"Creates a single JSON file with complete project data:
python3 ableton_project_analyzer.py "/path/to/Projects" --json "results.json"When using --txt --recursive, the tool creates a vst_lists/ directory in the current working directory with:
- Individual VST list files for each project (organized by main directory)
00_INVENTORY_SUMMARY.txt- Complete inventory summary00_VST_REQUIREMENTS.txt- VST requirements list
Example structure:
vst_lists/
βββ 00_INVENTORY_SUMMARY.txt
βββ 00_VST_REQUIREMENTS.txt
βββ MainDirectory1/
β βββ Project1_VSTs.txt
β βββ Project2_VSTs.txt
βββ MainDirectory2/
βββ Project3_VSTs.txt
π‘ Tip: The output directory is created in the directory where you run the command, not in the project directory.
{
"timestamp": "2026-01-03T12:34:56.789123",
"project_path": "Z:\\Path\\to\\Projects",
"total_projects": 3,
"total_vsts": 12,
"projects": [
{
"name": "MyTrack",
"path": "Z:\\Path\\to\\Projects\\MyTrack.als",
"vsts": [
{
"name": "Massive",
"manufacturer": "Native Instruments",
"filename": "Massive.dll",
"version": "1.5.0"
}
],
"tracks": [
{
"name": "Track 1",
"type": "Audio",
"vsts": [
{
"name": "Massive",
"manufacturer": "Native Instruments",
"filename": "Massive.dll",
"version": "1.5.0"
}
]
}
],
"scenes": 4
}
],
"all_vsts": [
"FabFilter - Pro-Q 3",
"Native Instruments - Massive"
]
}- Ableton Project Format: The tool analyzes .als files in multiple formats:
- ZIP archives (Live 10+) containing XML files
- GZIP compressed files (Live 9.x)
- Direct XML files (Live 8 and earlier)
- Automatic Format Detection: No manual configuration needed - detects format automatically
- XML Parsing: Uses Python's built-in
xml.etree.ElementTreefor fast analysis - VST Extraction: Searches for
VstPluginInfoelements in the project XML - Track Analysis: Extracts track types (Audio, MIDI, Return, Master) and their VST assignments
- Multi-Threading: Thread-safe implementation with proper locking mechanisms
- Batch Processing: Optimized batch processing for better performance
- Robust Error Handling: Graceful error recovery - continues processing even if individual projects fail
- Silent Error Handling: Silent error handling for better performance
- Thread-Safe: Thread-safe error handling for concurrent processing
- β
Ableton Live: 8.x and higher (supports all .als formats)
- Live 10+ (ZIP format)
- Live 9.x (GZIP format)
- Live 8 and earlier (XML format)
- β Operating Systems: Windows, macOS, Linux
- β Python: 3.6 or higher
- β Network Paths: Supports mounted network drives and SMB shares (macOS/Linux)
- Check the path
- Make sure .als files are present in the directory
- Use absolute paths if you encounter problems
- macOS: Make sure paths use forward slashes (
/) not backslashes (\)
- The project file might be corrupted
- Try opening the project in Ableton Live and saving it again
- The tool will automatically skip corrupted files and continue processing
- The file might not be a real Ableton project file
- Check the file extension (.als)
Problem: Python requires Xcode Command Line Tools license acceptance.
Solution:
sudo xcodebuild -license acceptYou'll be prompted for your password. After accepting, Python commands will work normally.
Problem: Dependencies not installed or using wrong Python version.
Solution:
# Make sure you're using pip3 on macOS
pip3 install pandas openpyxl
# Or install from requirements.txt
pip3 install -r requirements.txtProblem: macOS uses python3 instead of python.
Solution:
- Always use
python3instead ofpythonon macOS - Use
pip3instead ofpipon macOS
Problem: Cannot access network drives or SMB shares.
Solution:
-
Mount the network drive first using Finder:
- Go β Connect to Server (βK)
- Enter:
smb://server/share - Mount point will be in
/Volumes/
-
Use the mounted path:
# Check if mounted ls /Volumes/ # Use the mounted path python3 ableton_project_analyzer.py "/Volumes/mountname/path/to/projects"
-
Verify mount status:
mount | grep smb
Problem: Cannot read files or write output files.
Solution:
- Check file permissions:
ls -la /path/to/projects - Make sure you have read access to project files
- Make sure you have write access to output directory
Problem: Analysis takes too long or uses too much memory.
Solution:
- Reduce the number of threads:
--workers 4(default is 16) - Use
--quietfor less output during analysis - For very large collections (>1000 projects), consider processing in smaller batches
- Use JSON export instead of Excel for very large datasets to reduce memory usage
MIT License - Free to use for private and commercial purposes.
If you find this tool helpful and would like to support its development, you can buy me a coffee:
Your support is greatly appreciated! π
Good luck with your projects! π΅
