13 min read

AI Video File Naming and Version Control: A Lineage Ledger

Organize generated video takes with stable file names and a lineage ledger for prompts, sources, selections, edits, approvals, and channel deliveries.

AI Video File Naming and Version Control: A Lineage Ledger

An editor receives three exports of an AI video: a horizontal clip, a vertical crop, and a clean master. Which can go to the website? Which contains the title? Which generated takes would need replacing if one shot changed?

An effective AI video file naming convention gives each file a permanent identity. Version control then connects that identity to its inputs, review decisions, edits, and deliveries. The filename locates an object; the lineage ledger explains whether that object is usable for a particular job.

Here is a worked method for a shared drive and spreadsheet. Its central test is practical: someone receiving a delivery should be able to trace it back to the selected takes without asking the person who generated them.

Genflow Editorial prepared this article with AI assistance. The RILL project below is entirely fictional, including people, receipts, storage addresses, technical observations, and decisions. No video generation, editing, delivery, or live workflow test was performed. The ledger is an external editorial design, not a native Genflow asset-management feature.

Begin with the handoff question

The fictional RILL project is a silent, 12-second study of an unbranded ceramic cup. Shot 010 is a slow camera move; shot 020 shows the cup beside a folded cloth. The editor needs two versions of the picture: one without text and one with a title.

At handoff, the ledger returns this answer:

Delivery identityIntended useExact media parentCurrent decision
RIL-D001Horizontal website clip with titleRIL-E002Approved for the specified website placement
RIL-D002Vertical social preview with titleRIL-E002Held: the crop cuts into the cup handle
RIL-D003Clean master for the internal editing libraryRIL-E001Accepted for internal reuse; no publication authorization

The filenames are simply ril-d001.mp4, ril-d002.mp4, and ril-d003.mov. They do not change when a review changes. “Clean,” “website,” and “held” belong in the records because they describe content or permitted use rather than identity.

A delivery may have a higher number and still be unusable for your task. Choose it by its purpose and latest applicable decision, not by sorting for the newest file.

Give every object one addressable identity

For a small project, use {project}-{record-number}.{extension}. Here, the project prefix is ril; t identifies a generated take, e an edited master, and d a delivery. Numbers increase within each type and are never reassigned. Shot numbers live in the ledger, so moving a take to a different sequence does not require renaming it.

For example, ril-t002.mp4 identifies one particular stored output. A second generation gets another take ID even if its prompt is unchanged. A re-encode gets another asset ID because its bytes have changed. Copying the same bytes to a second storage location adds a location to the existing record.

Allocate IDs through one shared register or designated owner to prevent two editors independently creating the same number. Consistent vocabulary, punctuation, ordering, and padded numbers follow the general principles in MIT Libraries' file-creation guidance. The short grammar here is an editorial choice for this example.

Four production record types carry the trace:

TypeRecordsDoes a review change this record?
TAKEA generated binary and its generation receiptNo; append a SELECT transaction
SELECTOne decision about one TAKE, for a stated useNo; append a superseding SELECT
EDITA rendered master, its media parents, and the edit recipeNo; append a review event or create a new EDIT if media changes
DELIVERA destination export, its master parent, and export specificationNo; append a release event or create a new DELIVER if media changes

Supporting source records, receipts, review events, and deletion events sit alongside these four types. A media parent answers “what material made this?” A decision reference answers “who allowed its use?” Keep those relationships in separate columns.

Build the evidence packet before assembling the edit

The following compact packet contains the complete fictional trace. Every media parent and decision reference resolves to a record below. Storage URIs are illustrative private object addresses, not working downloads.

Source material and run instructions

The three source assets are roots: they have no upstream media parents in this project.

Source IDContent and specificationRegistered by / timestampStorage URI
RIL-A001Shot 010 first frame; unbranded cup; PNG, 1920×1080, RGBMaya Chen / 2026-09-30T08:00:00Zs3://rill-example/assets/ril-a001.png
RIL-A002Shot 020 first frame; cup and cloth; PNG, 1920×1080, RGBMaya Chen / 2026-09-30T08:01:00Zs3://rill-example/assets/ril-a002.png
RIL-A003Raster title overlay reading “A quiet moment”; PNG, 1920×1080, RGBA; transparent outside centered titleMaya Chen / 2026-09-30T08:02:00Zs3://rill-example/assets/ril-a003.png

Maya records these as team-created materials cleared for the fictional project's stated uses. That entry is an accountable source assertion, not a license verification performed by this ledger.

The frozen instruction records are:

Record IDFull recorded content or settingsStorage URI
RIL-C001Shot 010: six seconds of gentle camera movement; preserve the cup handle throughout. Shot 020: six seconds of locked composition; preserve the cloth edge. Assemble in that order, without audio.s3://rill-example/records/ril-c001.txt
RIL-W001Team workflow snapshot, revision 1; adapter “Example Adapter 1.0”; model “DemoVideo 1.0”; image-to-video; one first-frame image; 6 seconds; 1920×1080; 24 fps; audio disabled; seed and provider build ID not exposed.s3://rill-example/records/ril-w001.json
RIL-P001“Slow camera move toward the cup. Keep the cup stationary. Six seconds. No lettering.”s3://rill-example/records/ril-p001.txt
RIL-P002“Very gentle camera move toward the cup. Preserve the entire handle shape and opening throughout. Keep the cup stationary. Six seconds. No lettering.”s3://rill-example/records/ril-p002.txt
RIL-P003“Locked camera on the cup and folded cloth. Maintain the cloth outline and the cup shape. Six seconds. No lettering.”s3://rill-example/records/ril-p003.txt

Maya froze those five records at 2026-09-30T08:05:00Z. DemoVideo and Example Adapter are deliberately invented labels, not Genflow integrations. They show where to put the exact model and adapter information available in a real run. “Not exposed” is an explicit limitation; it is not a missing field to fill with a guessed seed.

Generation receipts and TAKE records

Each receipt uses workflow snapshot RIL-W001 and contract RIL-C001. Maya is the operator for all three. The fictional observed outputs are silent MP4/H.264 files, 1920×1080, constant 24 fps, 144 frames, six seconds, Rec.709.

Receipt IDPrompt / first-frame sourceSubmitted / output storedProvider output IDOutput TAKEReceipt URI
RIL-R001RIL-P001 / RIL-A0012026-09-30T08:10:00Z / 2026-09-30T08:12:00Zdemo-output-701RIL-T001s3://rill-example/records/ril-r001.json
RIL-R002RIL-P002 / RIL-A0012026-09-30T08:20:00Z / 2026-09-30T08:22:00Zdemo-output-702RIL-T002s3://rill-example/records/ril-r002.json
RIL-R003RIL-P003 / RIL-A0022026-09-30T08:25:00Z / 2026-09-30T08:27:00Zdemo-output-703RIL-T003s3://rill-example/records/ril-r003.json
TAKE IDShotExact media parentReceiptBinary URI
RIL-T001010RIL-A001RIL-R001s3://rill-example/assets/ril-t001.mp4
RIL-T002010RIL-A001RIL-R002s3://rill-example/assets/ril-t002.mp4
RIL-T003020RIL-A002RIL-R003s3://rill-example/assets/ril-t003.mp4

These TAKE rows contain provenance, not acceptance decisions. The second attempt does not erase the first attempt's receipt. Nor does retaining a receipt promise that another run will reproduce identical pixels.

Selection is a transaction

Reviewer Leon Park watches each complete take against RIL-C001. Each decision has its own ID and stored record. All three have supersedes: none because these are their initial decisions.

SELECT IDExact takeDecision and scopeEvidenceTimestampRecord URI
RIL-S001RIL-T001Rejected for shot 010 in RIL-E001Handle opening closes at 00:02.0002026-09-30T08:15:00Zs3://rill-example/records/ril-s001.json
RIL-S002RIL-T002Selected for shot 010 in RIL-E001Handle outline and opening remain intact throughout 00:00.000–00:06.0002026-09-30T08:30:00Zs3://rill-example/records/ril-s002.json
RIL-S003RIL-T003Selected for shot 020 in RIL-E001Cloth edge and cup shape remain stable throughout 00:00.000–00:06.0002026-09-30T08:32:00Zs3://rill-example/records/ril-s003.json

These are fictional observations illustrating evidence fields. Selecting a take authorizes the stated edit use; it does not approve a future crop or publication.

Keep the clean picture upstream of the title

Editor Sam Rivera creates two separately identified masters. Both are silent, 12-second QuickTime/ProRes 422 files, 1920×1080, constant 24 fps, 288 frames, Rec.709.

EDIT IDExact media parentsSelection authorityRecipeCreatedBinary URI
RIL-E001RIL-T002, RIL-T003RIL-S002, RIL-S003Concatenate all 144 frames of RIL-T002 then all 144 frames of RIL-T003; no transition, text, or audio2026-09-30T09:00:00Zs3://rill-example/assets/ril-e001.mov
RIL-E002RIL-E001, RIL-A003Inherited through RIL-E001Composite RIL-A003 at native size over frames 240–287 of RIL-E001; preserve all other frames2026-09-30T09:10:00Zs3://rill-example/assets/ril-e002.mov

Frame numbering starts at zero. The title therefore appears during the final two seconds. The clean master remains RIL-E001; no later export has to remove baked-in lettering from RIL-E002.

Leon records two master reviews:

Review eventSubjectDecision and evidenceReviewer / timestampRecord URI
RIL-Q001RIL-E001Approved as clean master; correct shot order, 288 frames, no text or audioLeon Park / 2026-09-30T09:05:00Zs3://rill-example/records/ril-q001.json
RIL-Q002RIL-E002Approved as texted master; title matches RIL-A003 and appears only on frames 240–287Leon Park / 2026-09-30T09:15:00Zs3://rill-example/records/ril-q002.json

Both events have supersedes: none. If a title correction arrives, create a new title source and a new EDIT derived from the clean master. Preserve the earlier texted master and its review history.

Record the export and the permission separately

Sam produces these delivery objects. All remain silent, 12 seconds, 24 fps, Rec.709; there is no speech, caption sidecar, or audio dependency. These are project specifications, not statements of platform requirements.

DELIVER IDExact media parent / master reviewExport operation and specificationCreatedBinary URI
RIL-D001RIL-E002 / RIL-Q002Full frame; 1920×1080; MP4/H.264 High, YUV 4:2:0, target 8 Mb/s2026-09-30T09:20:00Zs3://rill-example/assets/ril-d001.mp4
RIL-D002RIL-E002 / RIL-Q002Center crop 608×1080 from x=656, y=0; scale to 1080×1920; MP4/H.264 High, YUV 4:2:0, target 8 Mb/s2026-09-30T09:22:00Zs3://rill-example/assets/ril-d002.mp4
RIL-D003RIL-E001 / RIL-Q001Full frame; re-encode to 1920×1080 QuickTime/ProRes 422 HQ2026-09-30T09:24:00Zs3://rill-example/assets/ril-d003.mov

The vertical export is a distinct object with its own review. Master approval cannot settle what happens when a crop removes part of the frame.

Release owner Priya Shah records the following events after viewing each exact export. All have supersedes: none; there are no actual upload or publication receipts in this example.

Release eventSubjectDecision, destination, and scopeEvidence / timestampRecord URI
RIL-L001RIL-D001Approved for the RILL website homepage, English title, worldwide, 2026-10-01 through 2026-10-31; upload not performedFull-clip review: title legible, cup intact / 2026-09-30T09:30:00Zs3://rill-example/records/ril-l001.json
RIL-L002RIL-D002Hold for RILL social preview; English, worldwide, proposed 2026-10-01 through 2026-10-31; no upload permittedCrop cuts handle at 00:04.000 / 2026-09-30T09:32:00Zs3://rill-example/records/ril-l002.json
RIL-L003RIL-D003Accepted into RILL internal editing library; no title language, internal access only, no public release termFull-clip review confirms no title or audio / 2026-09-30T09:34:00Zs3://rill-example/records/ril-l003.json

Reframing the vertical clip would create a new delivery ID and require another review event. If Priya instead changed a permission without changing the bytes, she would append a release event referencing the existing delivery and superseding the applicable earlier event.

Tie the records to the actual bytes

A file can retain its name while somebody accidentally overwrites it. Store a whole-file SHA-256 digest at intake and after each render, then verify it when transferring or accepting the object. A matching hash checks byte identity; it does not establish authorship, rights, or visual quality.

Here is the populated digest register for the fictional packet. These are synthetic 64-character values for illustration, not checksums measured from videos or images. In a real ledger, calculate each value from its associated file; never paste these into production records.

RIL-A001  97cb49f09978d1b69780edbaa805ab930bc4084cb0cb454dd067fb9485b83d37
RIL-A002  70e32aaf0042a6c3cc0f69dfda7649919adc8b87e5db292bd799a41f7173a6f8
RIL-A003  f4434d30f1e1352f520bc2b70ed7064bfa9f35d2c6233ba6a6dc623a41cc6181
RIL-T001  403ad4d58eb893a5f297b5a6e4d80daf116e2f6d66b3d4d9dc077997316565d1
RIL-T002  d4ce12454ae60be79e610f125383dd06e79ea6ef037a9b139b82d0a4aebef2ea
RIL-T003  f152f981c89ed1686be5a1c2f4773fe84341496a690200deb56135d321724cf1
RIL-E001  27fb5e5623c45aba560a876a4cfaac0beca4008f44e863d7d4289d0dd94f9d2a
RIL-E002  45971c29fae7a167fae15c0c786df71722206daebac8bba1c6d6038e495e0663
RIL-D001  08dd87023055aeed00e3e8cc2f9609d8d168f071d7788c29bca9fa8bd17495f7
RIL-D002  3e1c343929526311e5d605905ea850729f2afed216aa18f6c8c8211d8dec66b0
RIL-D003  a3aed3640580fb4b6b21b94213c64056a74b462b1aa2d25f832e4c7f7d8ae949

At handoff, search the received filename, verify its stored hash, and follow the exact parent IDs. For ril-d003.mov, the path is RIL-D003 → RIL-E001 → RIL-T002 + RIL-T003. Its clean ancestry never passes through the texted RIL-E002.

Deleting a rejected take must not delete its history

Storage cleanup needs a separate availability record. Removing a binary does not justify removing the TAKE row, hash, receipt, or decision that explains it.

For this example, records owner Priya authorizes disposal of the unused RIL-T001 binary after checking that no EDIT or DELIVER depends on it and that the project's applicable retention rules permit removal. The retained tombstone is:

event_id: RIL-X001
event_type: binary_deleted
asset_id: RIL-T001
former_uri: s3://rill-example/assets/ril-t001.mp4
sha256: 403ad4d58eb893a5f297b5a6e4d80daf116e2f6d66b3d4d9dc077997316565d1
decision_retained: RIL-S001
receipt_retained: RIL-R001
downstream_media_dependents: none
reason: rejected unused take; project retention review permits disposal
authorized_by: Priya Shah
authorized_at: 2026-09-30T10:00:00Z
performed_by: Maya Chen
deleted_at: 2026-09-30T10:05:00Z
recoverability: binary unavailable; no retained backup in this example
record_uri: s3://rill-example/records/ril-x001.json

The old asset URI now identifies a former location. A ledger lookup must show “binary deleted” and the tombstone, rather than offering a broken download as though the file still exists. The trace explains the rejected attempt, but cannot replay its pixels. Preserve the binary too whenever later visual review or a retention obligation requires it.

No universal deletion interval is implied here. The accountable project owner must apply the organization's actual retention and access requirements.

Put this into a shared drive and spreadsheet

Start with three tabs: Objects, Decisions, and Receipts. Objects holds IDs, types, URIs, hashes, specifications, and exact media-parent IDs. Decisions holds SELECT transactions, master reviews, and release events with reviewer, scope, evidence, timestamp, and supersession. Receipts holds the generation path, prompts, input IDs, exposed settings, provider output IDs, and operator. Keep disposal events available from Objects.

Use separate controlled folders for assets and record files, as the example does. Treat a “ready to send” view as a filtered list of authorized delivery IDs. Moving a file into a folder does not grant permission to use it.

Before handing over the packet, check these relationships:

  • Every parent ID exists, and selected takes have explicit SELECT authority for the intended edit.
  • Every stored media object has a file location, digest, and technical specification.
  • Every delivery points to the correct clean or texted master and has its own destination decision.
  • Every deleted object resolves to a tombstone with the retained receipt and decision.

For larger teams, a database or DAM can enforce these references. A spreadsheet can demonstrate the method, but its users still need to protect historical rows and prevent accidental overwrites.

Connect the production workflow to the record

Genflow's AI video generator keeps prompts, references, model choices, and output logic together in reusable workflows. Its AI workflow automation tool describes preserving inputs, steps, outputs, and review notes in a saved production structure.

When using Genflow, link that workflow context to your external generation receipt. Record the model path and settings actually available for your run, preserve your own prompt and input references, and register each output when it enters controlled storage. A reusable workflow and an immutable output record answer different questions: how to run the process again, and exactly which file a particular decision covered.

This article does not claim Genflow calculates file hashes, allocates local asset IDs, exports the illustrated receipt schema, enforces append-only records, validates licenses, or manages deletion and release approvals. Those are responsibilities of the team's external ledger and storage process.

The RILL packet is an original editorial example. Product statements were checked against Genflow's repository tool-page definitions on September 30, 2026; general naming guidance was checked against MIT Libraries' file-creation guidance. The synthetic project demonstrates relationships and field coverage, not tested output quality or guaranteed reproducibility.

For your next handoff, register one delivery and follow its parents all the way back to the selected takes. Resolve missing identities, decisions, and file locations before expanding the method across the project.

Turn this method into a reusable workflow

Start from one product asset, ad concept, or template and save repeatable production steps as a Genflow workflow.

Open Studio

Keep producing

Turn the article into a Studio workflow, or return to the blog for more field notes.