OS: macOS (Highly Optimized)
Media File Renamer Pro is a powerful, Python-based desktop application designed to completely automate the tedious process of renaming media files and audio stems for strict Content Management System (CMS) delivery. It enforces strict naming conventions, calculates MD5 checksums, prevents accidental overwrites, and automatically generates organized Excel Delivery Manifests β now with full Google Drive integration.
- π Google Drive Integration β rename files directly on Google Drive (authenticate via OAuth 2.0)
- π Recursive Drive scanning β crawls all subfolders, just like local mode
- ποΈ Batch Drive management β queue multiple Drive folders, each with its own stem type
β οΈ Permissionβaware β warns you if a Drive folder isn't shared as "Editor"- π Locked dropdowns β content type selections are now readβonly
- π Redesigned progress indicator β "Processed X/Y filesβ¦" next to the progress bar
- π¨ Optimised UI β starts with Drive selected, advanced options open, and fits all controls.
- Drag-and-Drop: Drop multiple folders directly into the app for instant batch processing.
- Auto-Stem Detection: Automatically assigns content types based on folder names (e.g., folders containing the word "Speech" are automatically assigned to Stem 2).
- Smart Sorting: Number duplicate files exactly in the order they were shot or exported by sorting them via Creation Date, Modified Date, or Alphabetical order.
- Sequence Padding: Total control over how files are numbered (e.g.,
_1,_01,_001).
- Pre-Flight Checker: Before touching any files, the app simulates the rename. If a filename exceeds 150 characters, the batch safely aborts.
- Emoji & Illegal Character Stripper: Automatically detects and silently vaporizes emojis (π, π₯) and hidden non-ASCII characters that cause CMS databases to crash.
- Strict Case Formatting: Force base filenames to
lowercase,UPPERCASE, orTitle Case.
Instead of just renaming files, the app generates a _Rename_Report.xlsx file containing:
- Global Bundle Sorting: Groups all video, speech, and music stems perfectly by bundle.
- Metadata Extraction (Mac): Uses native macOS Spotlight (
mdls) to automatically extract and log the Duration of video/audio files. - MD5 Checksums: Generates mathematically unique hashes for file integrity verification.
- Team Profiles: Save all your settings, find/replace rules, and custom templates as a "Profile." Use the Export (β¬οΈ) and Import (β¬οΈ) buttons to share profiles with your team.
- Dynamic Naming Templates: Construct custom naming rules using placeholders:
{name}{stem}+lang={lang}&category={cat}&aspect={aspect}&app={app} - Regex Engine: Utilize Regular Expressions for complex Find & Replace patterns.
- Quick Undo: Made a mistake? Click "Undo Latest Renaming" to safely read the hidden backup logs, revert all filenames from the bottom up, and delete the bad Excel report.
- Over-The-Air Updates: Natively checks the GitHub
version.jsonfile on startup and prompts users to download new updates the second they are published.
To enable the Drive feature, you need a client_secrets.json file from Google Cloud:
- Go to the Google Cloud Console.
- Create a project and enable the Google Drive API.
- Configure the OAuth consent screen:
- Application type: Desktop app
- Add scope:
https://www.googleapis.com/auth/drive.file(remove unrelated scopes) - Fill in your homepage and privacy policy URLs
- Publish the app so anyone can use it
- Create OAuth 2.0 credentials for a Desktop application β download the JSON file.
- Rename it to
client_secrets.jsonand place it next toRenamerApp.py.
For end users, this file is already bundled in the packaged app. They simply click "Authenticate" to connect.
- Go to the Releases tab on the right side of this repository.
- Download the latest
Media File Renamer Pro.zipfile. - Extract the app and double-click to run! (Note: You may need to right-click -> Open the first time depending on your Mac's security settings).
ποΈ Compiling the App (Mac) If you are modifying the code and want to package a new release for your team:
-
Ensure your virtual environment is active.
-
Update the APP_VERSION variable inside RenamerApp.py.
-
Run the included build script:
chmod +x build_app.command ./build_app.command
- The standalone .app file will be generated in the dist folder. Zip it and upload it to GitHub Releases!
π‘ The Auto-Updater System
This app utilizes a serverless auto-updater. When you push a new release to your team:
-
Upload the new .zip to GitHub Releases.
-
Edit the version.json file in the root of this repository to reflect the new version number and release notes.
-
The next time a team member opens their older version of the app, it will read the JSON file, detect the math discrepancy, and trigger an update popup!
For bugs or feature requests, please open an issue or email nthakyojohn@gmail.com.
This project is licensed under the MIT License β see the LICENSE file for details.
Built with Python, CustomTkinter, and OpenPyXL.
Requirements: Python 3.9+
# 1. Clone the repository
git clone [https://github.com/nzokajohn/MediaFileRenamerPro.git](https://github.com/nzokajohn/MediaFileRenamerPro.git)
cd RenamerApp
# 2. Create and activate a virtual environment
python3 -m venv renamer_env
source renamer_env/bin/activate
# 3. Install required packages
pip install customtkinter tkinterdnd2 openpyxl pydrive2 google-auth-oauthlib google-auth-httplib2 oauth2client
# 4. Run the app
python RenamerApp.py