TimecodeTool is a CLI that is can validate timecode and calculate timecode spans. It is an open-source project written in Go by Marc Leonard. It is released under the MIT License.
Enter a timecode to check if it is valid. This is very helpful for those pesky drop frame timecodes.
Validate Documentation →
TimecodeTool validate --fps=29.97 "00:07:00;00"
🎥 TimecodeTool Validate
─────────────────────────────
Input Timecode: 00:07:00;00
Frame Rate (FPS): 29.97
Valid Timecode: ❌ No
Error: 00:07:00;00 is not valid timecode for drop frame.
─────────────────────────────
{
"inputTimecode": "00:07:00;00",
"inputFps": 29.97,
"valid": false,
"errorMsg": "00:07:00;00 is not valid timecode for drop frame.",
"isDf": false,
"nextTimecode": ""
}
Enter two timecodes to check how many frames, seconds, etc... are between the two. Using the `-e` flag will exclude the last frame of the last timecode.
Span Documentation →
TimecodeTool span --fps=23.98 "00:01:00:00" "00:04:00:00"
🎥 TimecodeTool Span
─────────────────────────────
First Timecode: 00:01:00:00
Last Timecode: 00:04:00:00
Frame Rate (FPS): 23.98
Valid Span: ✅ Yes
Start Frame Index: 1440
Last Frame Index: 5760
Length (Frames): 4321
Length (Real Time): 00:03:00.192
Length (Seconds): 180.19
Length (Timecode): 00:03:00:01
Next Timecode: 00:04:00:01
─────────────────────────────
{
"inputFirstTimecode": "00:01:00:00",
"inputLastTimecode": "00:04:00:00",
"inputFps": 23.98,
"valid": true,
"errorMsg": "",
"isDf": false,
"excludeLastTimecode": false,
"startFrameIdx": 1440,
"lastFrameIdx": 5760,
"lengthFrames": 4321,
"lengthTime": "00:03:00.192",
"lengthTimecode": "00:03:00:01",
"lengthSeconds": 180.19182652210174,
"nextTimecode": "00:04:00:01"
}
Enter a series of calculations to return a final run length, and data from the span.
Calculate Documentation →
TimecodeTool calculate --fps=23.98 "00:01:00:00" + "00:04:00:00" + 2 - "00:00:00:10"
🎥 TimecodeTool Calculate
─────────────────────────────
🎬 Starting Timecode: 00:01:00:00 (Index 1440)
➕ Add Timecode: 00:04:00:00 (5761 frames)
➕ Add Timecode: 00:00:00:02 (3 frames)
➖ Sub Timecode: 00:00:00:10 (11 frames)
─────────────────────────────
🟰 Resulting Timecode: 00:04:59:17 (5754 total frames)
1440 ➡️ 7193 frame indexes
─────────────────────────────
{
"inputFirstTimecode": "00:01:00:00",
"inputFps": 23.98,
"valid": true,
"errorMsg": "",
"isDf": false,
"excludeLastTimecode": false,
"startFrameIdx": 1440,
"lastFrameIdx": 7193,
"lengthFrames": 5754,
"lengthTime": "00:03:59.950",
"lengthTimecode": "00:03:59:18",
"lengthSeconds": 239.94995829858215,
"nextTimecode": "00:04:59:18",
"lastTimecode": "00:04:59:17",
"Steps": [
{
"operation": "+",
"timecode": "00:04:00:00",
"frames": 5761
},
{
"operation": "+",
"timecode": "00:00:00:02",
"frames": 3
},
{
"operation": "-",
"timecode": "00:00:00:10",
"frames": 11
}
]
}
Please choose which platform to download for. This will download the latest version from Github. Access all old versions here.