ForHosting KIT · Video

Build a video file naming convention

This video filename generator turns four production identifiers into one predictable media filename.

● BetaFree · in your browser
Use it from WebAPIEmailTelegramApp soon

Supply a project code, scene, take, and production date, and it returns a normalized MOV filename such as KTC_SC12A_T03_20260725.mov. The result is deterministic, easy to sort, and suitable for camera originals, editorial handoffs, review exports, or archive manifests. Every field is required, so incomplete naming data produces a clear input error instead of an ambiguous file that may be misplaced later.

Establish one readable production pattern

A useful naming convention lets a person identify a clip before opening it. This builder uses PROJECT_SCENE_TAKE_DATE.mov, with underscores separating the major pieces. The project code comes first so files from the same production group together in ordinary directory listings. The scene follows with an SC prefix, while the take follows with a T prefix and is padded to at least two digits. The date is placed last in compact YYYYMMDD form, which sorts chronologically without punctuation that can be awkward in downstream systems. For example, project KTC, scene 12A, take 3, and date 2026-07-25 become KTC_SC12A_T03_20260725.mov. The pattern is intentionally modest: it does not invent camera, reel, unit, version, or codec information that was not supplied. That restraint matters because an authoritative-looking placeholder is worse than an explicit omission. Use the returned filename as a dependable base convention, and add organization-specific fields only in a separately documented workflow where every participant understands their meaning.

Understand normalization and validation

Production notes are often entered with inconsistent capitalization, spaces, or prefixes. The builder normalizes the project code and scene to uppercase, removes diacritic marks, turns runs of unsupported punctuation into hyphens, and trims leading or trailing hyphens. A scene entered as 12A, sc12a, or SC-12A therefore resolves to SC12A. A take may be entered as 3, 03, T3, or T-03; it must ultimately represent a positive whole number, and the output becomes T03. Larger take numbers remain intact rather than being truncated. The date has a stricter contract: it must be written as YYYY-MM-DD and must be a real Gregorian calendar date. An impossible value such as 2026-02-30 is rejected rather than silently rolled into March. Empty strings, whitespace-only strings, missing properties, zero takes, negative takes, and take labels containing nonnumeric characters are also rejected. These rules make repeated calls stable and prevent superficially valid filenames from hiding incomplete or malformed slate information.

Use the filename across set, post, and archive workflows

The generator is most effective when it sits at the boundary where metadata becomes a file: a camera-card ingest form, a DIT checksum report, an editorial transcode job, a review-export tool, or an archive manifest. Call it before writing or renaming the media so validation happens while the operator can still correct the slate data. Store the four normalized fields returned alongside the filename if another system needs structured metadata for filtering or reports. Because the algorithm has no network calls, random values, or current-time lookup, the same input always produces the same result in a browser or through the API. That property supports idempotent automation: retrying an ingest does not create a differently named asset. The generated extension is MOV because the capability targets a common production video container, but it does not convert media or inspect the actual codec. Confirm that the asset is meant to use a .mov name before applying it, preserve the original file when policy requires it, and treat naming as one part of a broader media-integrity workflow that also includes checksums, backups, and documented ownership.

Standardize camera-card ingest

Generate predictable filenames while an operator enters slate metadata during an on-set media ingest.

Name editorial transcodes

Apply the same project, scene, take, and date structure to proxies prepared for an editor.

Prepare archive manifests

Create sortable asset names and retain normalized identifiers for long-term catalog records.

What does one request cost?

Each API request costs $0.002. The same deterministic logic can also run in the browser.

What filename pattern does it use?

It uses PROJECT_SCENE_TAKE_YYYYMMDD.mov, including SC and T prefixes, for example KTC_SC12A_T03_20260725.mov.

Can I omit a field?

No. Project code, scene, take, and date are all required, and an empty or missing value returns an invalid input error.

How should I format the date?

Enter a real calendar date in YYYY-MM-DD form. The filename contains the same date without hyphens.

Does this rename or convert my video?

No. It returns a standardized filename and normalized metadata; it does not access, rename, inspect, or convert a media file.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/video2/file-naming-convention-build

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/video2/file-naming-convention-build \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"project_code":"KTC","scene":"12A","take":"3","date":"2026-07-25"}'
{
  "project_code": "KTC",
  "scene": "12A",
  "take": "3",
  "date": "2026-07-25"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "video2.file_naming_convention_build",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

max_mb500
max_minutes60
max_megapixels3.9
HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Read the full KIT documentation →