A powerful Python utility to clean up large cache folders from Final Cut Pro projects before backing them up. Save 50-70% disk space by safely removing regenerable files!
This tool safely removes regenerable cache folders from your Final Cut Pro projects:
- ✅ Analysis Files - Automatically regenerated when you open the project
- ✅ Render Files - Regenerated when you render
- ✅ Transcoded Media - Automatically regenerated
What It NEVER Touches:
- ❌ Original Media
- ❌ Project files (CurrentVersion.fcpevent)
- ❌ Any other important files
Real-world results: From testing on 8 projects, we freed up 60.5 GB of disk space! 🎉
-
🔍 Multiple Interfaces:
- CLI mode with interactive menus
- TUI (Terminal UI) with curses
- File browser for easy navigation
-
🛡️ Safety First:
- Dry-run mode to preview before deleting
- Confirmation prompts
- Detailed error messages
-
⚡ Performance:
- Optimized folder size calculation
- Fast recursive scanning
- Progress indicators
-
🌐 Bilingual:
- Full Arabic/English documentation
- Arabic interface for local users
- Python 3.6 or higher
- macOS (Final Cut Pro)
- No external dependencies required!
# Clone the repository
git clone https://github.com/YOUR_USERNAME/backup-cleaner.git
cd backup-cleaner
# Make scripts executable (optional)
chmod +x *.py *.sh *.commandSee what will be deleted without actually deleting:
python3 fcp_cleaner.py /path/to/projects --dry-runExample:
python3 fcp_cleaner.py ~/Videos/December_Backup --dry-runOutput:
📊 Final Cut Pro Project Analysis Report
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[1] Project: Episode_1.fcpbundle
📁 Date: 2-12-2025
• Analysis Files: 1.4 MB
• Render Files: 15.0 GB
💾 Total Cleanable: 15.0 GB
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🗑️ Total Space Savings: 60.5 GB
Choose exactly what to delete:
python3 fcp_cleaner.py /path/to/projectsYou can:
- Delete a specific folder from a specific project
- Delete all cache folders from one project
- Delete everything from all projects
Delete everything automatically:
python3 fcp_cleaner.py /path/to/projects --autoInteractive curses-based interface with keyboard navigation:
python3 fcp_clean.pyControls:
↑/↓- NavigateSPACE- Select/Deselectd- Delete current itemD- Delete allq- Quit
Features:
- TAB completion for paths
- Real-time size calculation
- Visual selection
Navigate your filesystem interactively:
python3 fcp_browse.pyControls:
↑/↓- Navigate foldersENTER- Open folderBACKSPACE- Go backs- Scan current locationq- Quit
For easy access, use the included .command files (just double-click):
🎬_FCP_Cleaner.command- Main TUI interface🎬_FCP_Browse.command- File browser🔍_معاينة_فقط.command- Preview only (dry-run)🗑️_مسح_تلقائي.command- Auto-delete mode
Or use the shell wrapper:
./clean.sh --dry-run # Preview
./clean.sh --auto # Auto-delete
./clean.sh # Interactivebackup-cleaner/
├── fcp_common.py # Shared utility functions (NEW!)
├── fcp_cleaner.py # Main CLI script
├── fcp_clean.py # TUI interface
├── fcp_browse.py # File browser
├── clean.sh # Shell wrapper
├── requirements.txt # Python dependencies
├── README.md # This file
├── CLAUDE.md # Developer documentation
├── .gitignore # Git ignore file
│
├── 🎬_FCP_Cleaner.command # macOS launcher (TUI)
├── 🎬_FCP_Browse.command # macOS launcher (Browser)
├── 🔍_معاينة_فقط.command # macOS launcher (Dry-run)
└── 🗑️_مسح_تلقائي.command # macOS launcher (Auto)
python3 fcp_cleaner.py [path] [options]
Arguments:
path Path to scan (default: current directory)
Options:
--dry-run Show report only, don't delete
--auto Auto-delete without confirmation# Scan current directory in dry-run mode
python3 fcp_cleaner.py --dry-run
# Scan specific folder interactively
python3 fcp_cleaner.py ~/Videos/Projects
# Auto-delete from subfolder
python3 fcp_cleaner.py 12 --auto
# TUI with path argument
python3 fcp_clean.py ~/Desktop/FCP_Projects- Scan: Recursively searches for
.fcpbundledirectories - Identify: Finds date folders containing
CurrentVersion.fcpevent - Analyze: Calculates sizes of target folders:
- Analysis Files
- Render Files
- Transcoded Media
- Report: Shows total space savings
- Delete: Removes selected folders with confirmation
- Uses optimized
os.walk()instead ofrglob()for better performance - Handles permission errors gracefully
- Returns detailed error messages for failed deletions
- Supports progress callbacks for UI integration
- ✅ Dry-run mode - Preview before deleting
- ✅ Confirmation prompts - Multiple confirmations for batch operations
- ✅ Detailed error messages - Know exactly what went wrong
- ✅ Targeted deletion - Only removes specific cache folders
- ✅ Error recovery - Continues on permission errors
- Used
pathlib.rglob('*')- slow on large folders - No progress indicators
- Generic error messages
- Uses
os.walk()- ~3x faster on large folders - Progress callbacks for UI updates
- Detailed error reporting with specific failure reasons
- Shared code in
fcp_common.py- easier maintenance
On a folder with 8 FCP projects (500GB total):
- Scanning: ~5-10 seconds
- Size calculation: ~30-60 seconds (depending on file count)
- Deletion: ~10-30 seconds (depending on file count)
The project includes full bilingual support:
- English: README.md, code comments
- Arabic: Multiple tutorial files, UI text, documentation
Arabic documentation files:
اقرأني.txt- Arabic READMEالاختصارات.txt- Shortcuts guideتعليمات_الاستخدام.txt- Usage instructionsكيف_تستخدم.txt- How to use guideملخص_الميزات_النهائية.txt- Final features summary
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
# Clone the repo
git clone https://github.com/YOUR_USERNAME/backup-cleaner.git
cd backup-cleaner
# (Optional) Install development dependencies
pip install -r requirements.txt
# Run tests (when available)
# pytest
# Format code
# black *.py
# Type check
# mypy *.pyThis project is licensed under the MIT License - see the LICENSE file for details.
USE AT YOUR OWN RISK!
While this tool is designed to be safe and only deletes regenerable cache files, always:
- Backup your projects before using this tool
- Test with
--dry-runfirst to see what will be deleted - Verify you have the original media files before deleting caches
The authors are not responsible for any data loss. Final Cut Pro can regenerate all deleted files, but this takes time and processing power.
- Built for the Arabic content creator community
- Inspired by the need to save disk space during monthly backups
- Uses Python's built-in libraries for maximum compatibility
If you encounter any issues:
- Check the CLAUDE.md for developer documentation
- Review the Arabic tutorials for detailed guidance
- Open an issue on GitHub with:
- Python version (
python3 --version) - macOS version
- Error message
- What you were trying to do
- Python version (
Future improvements:
- Add
send2trashsupport for safer deletion - Web-based UI
- Scheduled automatic cleaning
- Integration with Final Cut Pro Library paths
- Statistics and reporting dashboard
- Unit tests
- Windows/Linux support (if applicable)
"Freed up 60GB from my December projects folder in seconds!" - Original User
"The TUI interface is amazing - feels like using ncdu!" - Beta Tester
Made with ❤️ for video editors who value their disk space