Automatically extract and set timecode metadata from Insta360 video filenames in DaVinci Resolve.
This Python script automates the tedious process of setting timecode for Insta360 footage in DaVinci Resolve. Instead of manually entering timecode for each clip, the script intelligently parses the timestamp embedded in your Insta360 filenames and applies it as the Start Timecode in your media pool.
Insta360 videos follow a consistent naming convention that includes the filming date and precise time. This script leverages that metadata to automatically populate accurate timecode information, which is essential for:
- Syncing multi-camera footage
- Maintaining accurate timeline references
- Streamlining post-production workflows
- Batch processing large footage libraries
✅ Automatic Timecode Extraction - Parses HH:MM:SS from Insta360 filenames
✅ Batch Processing - Update multiple clips in one operation
✅ Cross-Platform Support - Works on Windows, macOS, and Linux
✅ Error Handling - Detailed logging for successful and failed operations
✅ Non-Destructive - Only modifies timecode metadata, not media files
✅ User-Friendly Output - Clear feedback on what was processed
This script works with Insta360 filenames in this format:
VID_YYYYMMDD_HHMMSS_XX_YYY.mp4
VID_20251130_104916_00_004.mp4
VID_20251130_111242_00_005.mp4
VID_20251130_133049_00_016_017.mp4
Where:
YYYYMMDD= Date (film date)HHMMSS= Time in 24-hour format (this becomes your timecode)XX= Audio channel indicatorYYY= Clip sequence number
- DaVinci Resolve (version 18.0 or later recommended)
- Python 3.6+ (typically included with DaVinci Resolve)
- Media clips in your DaVinci Resolve project with Insta360 naming convention
Windows:
%APPDATA%\Blackmagic Design\DaVinci Resolve\Support\Fusion\Scripts\Utility
Quick access: Press Win + R, paste the path above, press Enter
macOS:
~/Library/Application Support/Blackmagic Design/DaVinci Resolve/Fusion/Scripts/Utility
Quick access: Open Finder → Cmd + Shift + G → paste the path above
Linux:
~/.local/share/DaVinciResolve/Fusion/Scripts/Utility
- Download
BatchUpdateTimecode_Insta360.pyfrom this repository - Place it in the
Utilityfolder (see Step 1) - Restart DaVinci Resolve completely
- Open DaVinci Resolve
- Go to Workspace → Scripts → Utility
- You should see "BatchUpdateTimecode_Insta360" in the menu
-
Import Your Footage
- Import Insta360 video files into your DaVinci Resolve Media Pool
- Ensure filenames follow the
VID_YYYYMMDD_HHMMSS_XX_YYY.mp4pattern
-
Select Clips
- In the Media Pool, select one or more clips you want to update
- You can multi-select by holding
Ctrl(Windows) orCmd(macOS)
-
Run the Script
- Go to Workspace → Scripts → Utility → BatchUpdateTimecode_Insta360
- The script will process your selected clips
-
Review Results
- Check the script output in the console for success/failure messages
- Verify timecode was applied correctly (check Clip Properties)
Found 3 selected clip(s)
------------------------------------------------------------
✓ SUCCESS: VID_20251130_104916_00_004.mp4
Extracted Time: 10:49:16
New Timecode: 10:49:16:00
✓ SUCCESS: VID_20251130_111242_00_005.mp4
Extracted Time: 11:12:42
New Timecode: 11:12:42:00
✓ SUCCESS: VID_20251130_133049_00_016_017.mp4
Extracted Time: 13:30:49
New Timecode: 13:30:49:00
------------------------------------------------------------
Processing complete:
Success: 3
Failed: 0
Total: 3
- Solution 1: Ensure the script is in the correct
Utilitysubfolder (not just the parentScriptsfolder) - Solution 2: Restart DaVinci Resolve completely
- Solution 3: Check file extension is
.py(not.txt)
- Make sure you have clips selected in the Media Pool
- Click on a clip to highlight it before running the script
- Verify your filenames match the Insta360 pattern:
VID_YYYYMMDD_HHMMSS_XX_YYY.mp4 - Check that the date/time portion is valid (not corrupted filenames)
- Ensure clips are stored in the Media Pool (not just in bins on the timeline)
- Make sure DaVinci Resolve is open and running
- Try restarting DaVinci Resolve
- Check that Python scripting is enabled in Preferences
The script performs these steps:
- Connects to DaVinci Resolve via the Scripting API
- Gets Selected Clips from your Media Pool
- Parses Filename using regex to extract the HHMMSS timestamp
- Converts Timecode from HHMMSS to HH:MM:SS:00 format (DaVinci Resolve standard)
- Sets Start TC property on each clip
- Reports Results with detailed success/failure information
- Input:
HHMMSS(e.g.,104916= 10:49:16) - Output:
HH:MM:SS:00(e.g.,10:49:16:00) - The
:00represents frames at 24fps (DaVinci Resolve standard)
r'VID_\d{8}_(\d{2})(\d{2})(\d{2})_\d{2}_\d{3}'This extracts the first occurrence of 6 consecutive digits after the date.
- Uses standard environment variables for path resolution
- Supports both user-level and system-level script installations
- Requires special import method for DaVinciResolveScript module
- May need full disk access permissions for script access
- Works with DaVinci Resolve installation in standard locations
- Supports both user (
~/.local/share) and system (/opt/resolve) paths
- DaVinci Resolve Python API Documentation
- DaVinci Resolve Official Support
- Insta360 Official Documentation
Found a bug or have suggestions? Feel free to open an issue or submit a pull request!
This script is provided as-is for personal and commercial use. Modify and distribute as needed.
This script modifies metadata in your DaVinci Resolve project. Always test on a backup project first. The author is not responsible for any data loss or project corruption.
Happy editing! 🎬