Keep a source log for Shorts cut from long video: CSV from video trim

A source log shows which long video, timestamp and edit produced each Short. Build one from video trim results using actual_start_seconds.

5 min readSume
All posts

A source log is a plain CSV that records, for every Short, which long video it came from, where in that video, what was changed and when you made it. Sume's video trim returns the numbers you need, including actual_start_seconds, so you can generate the log as part of the cut instead of reconstructing it later. Nothing on YouTube's pages asks for such a log; its value is for you.

The value is real after October 1. YouTube's update is reported to reduce reach for channels that mainly re-upload other creators' clips, with no timescale or dashboard (Search Engine Journal, read 2026-10-03). If your channel gets treated as a reposter by mistake, or a collaborator asks where a clip came from, a log lets you show the original recording, the segment and the added commentary quickly.

What the log should hold

The added column is the one that matters for originality. Fill it with something specific, such as 're-recorded explanation of step 3', not 'edited'.

Source log columns, read 2026-10-03
ColumnWhere it comes fromWhy it helps
short_fileYour file name for the ShortJoins the log to the upload
source_urlThe video_url you sent to trimShows the long original
requested_startThe start you sentWhat you intended
actual_startactual_start_seconds in the resultWhat the cut really began at
durationduration_seconds in the resultRuntime of the segment
precisionprecision in the resultexact re-encode or keyframe copy
addedYour note: voice-over, graphic, captionWhat you contributed

Why actual_start_seconds, not start

Video trim offers precision: exact (default, a frame-accurate re-encode) and keyframe (a stream copy that may start up to a GOP early). With keyframe, the cut may begin before your requested start, so the docs say to re-base against actual_start_seconds. A log that stores only the requested time will be wrong for those cuts. A completed job's GET /v1/jobs/:id/result returns video_url, duration_seconds, actual_start_seconds, precision and optional warnings, such as trim_clamped_to_source when your range ran past the end.

The function below turns one trim result into a CSV row and appends it. It takes the result as a dict, so you can test it with sample data before wiring it to polling per the jobs docs.

import csv, os

FIELDS = ["short_file", "source_url", "requested_start", "actual_start",
          "duration", "precision", "added", "warnings"]

def log_row(path, short_file, source_url, requested_start, result, added):
    new = not os.path.exists(path)
    with open(path, "a", newline="") as f:
        w = csv.DictWriter(f, fieldnames=FIELDS)
        if new:
            w.writeheader()
        w.writerow({
            "short_file": short_file, "source_url": source_url,
            "requested_start": requested_start,
            "actual_start": result.get("actual_start_seconds"),
            "duration": result.get("duration_seconds"),
            "precision": result.get("precision"),
            "added": added,
            "warnings": ";".join(map(str, result.get("warnings", []))),
        })

log_row("source-log.csv", "short-01.mp4", "https://media.sume.com/example/talk.mp4",
        12, {"actual_start_seconds": 11.4, "duration_seconds": 38.0,
             "precision": "keyframe"}, "new voice-over explaining step 3")

Keep it honest

A log proves provenance; it does not make a Short original in YouTube's eyes, and Sume does not guarantee reach.

  • Log at cut time, not months later.
  • Store the original recording somewhere you control, since a media URL is not an archive.
  • Never put customer data or private details in the added notes.
  • If you cut from someone else's video with permission, record the permission too.

Using the log later

A CSV is easy to sort. Group by source_url to see how many Shorts came from one long video; if one recording yielded 40 near-identical Shorts, the log will show it, and you can decide whether that is the variation you want.

Filter on the warnings column to find cuts where a range ran past the end of the source and the trim clamped. Those are the Shorts shorter than you planned.

If you need to re-cut, the source_url and actual_start give you the exact starting point, and the precision column tells you whether to expect a frame-accurate start or a keyframe one.

What the log does not do

It does not prove a clip is original in YouTube's eyes, and it is not something YouTube asks for. The pages I read judge the video you publish by what it adds, not by your paperwork (read 2026-10-03). The log is an aid for you and your collaborators, nothing more.

Where to keep it

A CSV in the same folder as the finished Shorts is enough for one person. For a team, a shared spreadsheet or a table in your own database is better, so two people do not overwrite each other. Sume does not store this log for you; the trim job result holds the numbers, and you keep them.

Back it up with the source recordings. A log that points at a media URL is only as durable as that URL, so keep your own archive of the originals.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume