# Tiny clips (/docs/rules/no-tiny-clips)

Reports clips only a few frames long, usually leftovers of a trim.



{/* Generated by scripts/generate-docs.ts. Do not edit. */}

| Property         | Value           |
| :--------------- | :-------------- |
| Id               | `no-tiny-clips` |
| Category         | Static          |
| Default severity | warning         |
| Scope            | `clip`          |

## Options [#options]

| Option                    | Type      | Default | Description                                                                              |
| :------------------------ | :-------- | :------ | :--------------------------------------------------------------------------------------- |
| `minFrames`               | `number`  | `3`     | Clips shorter than this many whole frames are reported. A clip exactly this long is not. |
| `includeAudio`            | `boolean` | `true`  | Also check audio clips.                                                                  |
| `includeAdjustmentLayers` | `boolean` | `false` | Also check adjustment layers; short ones are often deliberate.                           |

## Customize it [#customize-it]

Turn the rule on or off in the panel's Rules settings. To change its options, severity or wording, open it with its cogwheel in the rule editor and save: your copy replaces the built-in rule until you revert it. You can also copy the file below into your rules folder as `no-tiny-clips.rule.json` and edit it. See [Change a built-in rule](/docs/editor/saving#change-a-built-in-rule).

## Rule file [#rule-file]

```json title="no-tiny-clips.rule.json"
{
  "formatVersion": 1,
  "id": "no-tiny-clips",
  "name": {
    "en_US": "Tiny clips",
    "de_DE": "Winzige Clips",
    "es_ES": "Clips diminutos",
    "fr_FR": "Éléments minuscules",
    "it_IT": "Clip minuscole",
    "ja_JP": "極端に短いクリップ",
    "ko_KR": "아주 짧은 클립",
    "pt_BR": "Clipes minúsculos",
    "ru_RU": "Слишком короткие клипы",
    "zh_CN": "极短剪辑"
  },
  "description": {
    "en_US": "Reports clips only a few frames long, usually leftovers of a trim.",
    "de_DE": "Meldet Clips, die nur wenige Frames lang sind, meist Reste eines Trimmvorgangs.",
    "es_ES": "Detecta clips de solo unos pocos fotogramas, normalmente restos de un recorte.",
    "fr_FR": "Signale les éléments de quelques images seulement, souvent des restes de raccord.",
    "it_IT": "Segnala le clip lunghe solo pochi fotogrammi, di solito residui di un taglio.",
    "ja_JP": "数フレームしかない、トリミングの残りと思われるクリップを報告します。",
    "ko_KR": "몇 프레임 길이밖에 되지 않는 클립(대개 트리밍 후 남은 조각)을 보고합니다.",
    "pt_BR": "Relata clipes com apenas alguns quadros de duração, geralmente sobras de um corte.",
    "ru_RU": "Сообщает о клипах длиной всего несколько кадров, обычно оставшихся после обрезки.",
    "zh_CN": "报告仅有几帧长的剪辑，通常是修剪后的残留。"
  },
  "category": "static",
  "scope": "clip",
  "severity": "warning",
  "options": {
    "minFrames": {
      "type": "number",
      "default": 3,
      "description": "Clips shorter than this many whole frames are reported. A clip exactly this long is not."
    },
    "includeAudio": {
      "type": "boolean",
      "default": true,
      "description": "Also check audio clips."
    },
    "includeAdjustmentLayers": {
      "type": "boolean",
      "default": false,
      "description": "Also check adjustment layers; short ones are often deliberate."
    }
  },
  "checks": [
    {
      "condition": {
        "all": [
          {
            "field": "clip.duration",
            "operator": "greaterThan",
            "value": 0
          },
          {
            "field": "clip.durationFrames",
            "operator": "lessThan",
            "value": {
              "field": "options.minFrames"
            }
          },
          {
            "any": [
              {
                "field": "clip.trackType",
                "operator": "equals",
                "value": "video"
              },
              {
                "field": "options.includeAudio",
                "operator": "equals",
                "value": true
              }
            ]
          },
          {
            "any": [
              {
                "field": "clip.adjustmentLayer",
                "operator": "equals",
                "value": false
              },
              {
                "field": "options.includeAdjustmentLayers",
                "operator": "equals",
                "value": true
              }
            ]
          }
        ]
      },
      "message": {
        "en_US": {
          "count": "clip.durationFrames",
          "one": "Clip \"{clip.name}\" on {clip.track} is {clip.durationFrames} frame long (minimum {options.minFrames}).",
          "other": "Clip \"{clip.name}\" on {clip.track} is {clip.durationFrames} frames long (minimum {options.minFrames})."
        },
        "de_DE": {
          "count": "clip.durationFrames",
          "one": "Clip „{clip.name}“ auf {clip.track} ist {clip.durationFrames} Frame lang (mindestens {options.minFrames}).",
          "other": "Clip „{clip.name}“ auf {clip.track} ist {clip.durationFrames} Frames lang (mindestens {options.minFrames})."
        },
        "es_ES": {
          "count": "clip.durationFrames",
          "one": "Clip \"{clip.name}\" en {clip.track} dura {clip.durationFrames} fotograma (mínimo: {options.minFrames}).",
          "other": "Clip \"{clip.name}\" en {clip.track} dura {clip.durationFrames} fotogramas (mínimo: {options.minFrames})."
        },
        "fr_FR": {
          "count": "clip.durationFrames",
          "one": "Élément « {clip.name} » sur {clip.track} dure {clip.durationFrames} image (minimum : {options.minFrames}).",
          "other": "Élément « {clip.name} » sur {clip.track} dure {clip.durationFrames} images (minimum : {options.minFrames})."
        },
        "it_IT": {
          "count": "clip.durationFrames",
          "one": "Clip \"{clip.name}\" su {clip.track} dura {clip.durationFrames} fotogramma (minimo {options.minFrames}).",
          "other": "Clip \"{clip.name}\" su {clip.track} dura {clip.durationFrames} fotogrammi (minimo {options.minFrames})."
        },
        "ja_JP": "クリップ「{clip.name}」（{clip.track}）の長さは{clip.durationFrames}フレームです（最小{options.minFrames}フレーム）。",
        "ko_KR": "{clip.track}의 클립 \"{clip.name}\"의 길이가 {clip.durationFrames}프레임입니다(최소 {options.minFrames}).",
        "pt_BR": {
          "count": "clip.durationFrames",
          "one": "Clipe \"{clip.name}\" em {clip.track} tem {clip.durationFrames} quadro de duração (mínimo {options.minFrames}).",
          "other": "Clipe \"{clip.name}\" em {clip.track} tem {clip.durationFrames} quadros de duração (mínimo {options.minFrames})."
        },
        "ru_RU": {
          "count": "clip.durationFrames",
          "one": "Клип «{clip.name}» на {clip.track} длится {clip.durationFrames} кадр (минимум {options.minFrames}).",
          "few": "Клип «{clip.name}» на {clip.track} длится {clip.durationFrames} кадра (минимум {options.minFrames}).",
          "many": "Клип «{clip.name}» на {clip.track} длится {clip.durationFrames} кадров (минимум {options.minFrames}).",
          "other": "Клип «{clip.name}» на {clip.track} длится {clip.durationFrames} кадра (минимум {options.minFrames})."
        },
        "zh_CN": "{clip.track} 上的剪辑“{clip.name}” 长度为 {clip.durationFrames} 帧（最少 {options.minFrames} 帧）。"
      }
    }
  ],
  "data": {
    "durationTicks": "clip.duration",
    "durationFrames": "clip.durationFrames",
    "minFrames": "options.minFrames"
  }
}
```
