Timecode Tool

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.

Validate

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"
Text Output
JSON Output
🎥 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": ""
}

Timecode Spans

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"
Text Output
JSON Output
🎥 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"
}

Calculate

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" 
Text Output
JSON Output
🎥 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
    }
  ]
}

Download

Please choose which platform to download for. This will download the latest version from Github. Access all old versions here.