{
  "kind": "build-recipe",
  "id": "shorts-cutter",
  "part_no": "B-01",
  "html": "https://insidethemachine.ai/build/shorts-cutter",
  "md": "https://insidethemachine.ai/build/shorts-cutter.md",
  "mcp": "https://insidethemachine.ai/mcp",
  "recipe": {
    "id": "shorts-cutter",
    "family": "studio",
    "kind": "blueprint",
    "flagship": true,
    "title": "Shorts cutter",
    "one": "Turn one long video into a handful of Shorts. Your machine does the listening and cutting. Claude picks the best moments.",
    "input": "One long video you made (a file on your computer).",
    "output": "3 to 5 vertical clips with captions, plus a title idea for each.",
    "claude": [
      "Reads one-line summaries of the top moments (not the whole transcript) and picks the 3 to 5 that stand alone.",
      "Writes a hook line and a title for each pick.",
      "Final check: does each clip make sense without the rest of the video?"
    ],
    "private": "Claude never sees the video, the audio or the full transcript. It sees short summaries of the top-scored moments only.",
    "roles": [
      "transcriber",
      "decider",
      "drafter"
    ],
    "stages": [
      {
        "id": "pick",
        "who": "you",
        "title": "Pick one video you own",
        "body": "A long video file on your computer. Your own work only."
      },
      {
        "id": "transcribe",
        "who": "local",
        "role": "transcriber",
        "title": "Transcribe it",
        "body": "Speech to text with a timestamp on every sentence. Runs on your machine."
      },
      {
        "id": "windows",
        "who": "code",
        "title": "Cut the text into moments",
        "body": "A script splits the transcript into 20 to 60 second windows that start and end on a full sentence."
      },
      {
        "id": "score",
        "who": "local",
        "role": "decider",
        "title": "Score every moment",
        "body": "Local Jev answers three typed questions per moment: how strong is the hook (score), does it make sense alone (yes/no), what is it about (pick one). Unsure answers are marked."
      },
      {
        "id": "summarise",
        "who": "local",
        "role": "drafter",
        "title": "Sum up the top moments",
        "body": "The drafter writes one line per top-scored moment. This is what Claude reads."
      },
      {
        "id": "choose",
        "who": "claude",
        "title": "Claude picks and titles",
        "body": "Claude reads the one-liners, picks 3 to 5 moments and writes a hook line and title for each."
      },
      {
        "id": "cut",
        "who": "code",
        "title": "Cut, crop and caption",
        "body": "ffmpeg cuts each pick, crops it to 9:16 and burns in captions from the transcript."
      },
      {
        "id": "yours",
        "who": "you",
        "title": "Make it yours",
        "body": "Watch every clip. Fix the captions, re-record a hook in your own voice, cut what is weak. Post fewer, better clips."
      },
      {
        "id": "share",
        "who": "you",
        "title": "Share your run (optional)",
        "body": "At the end, the script shows exactly what it would upload: your chip, memory, the models, how long each stage took and the token counts. No prompts, no outputs, no file names. Say yes and it goes to our review queue. Nothing is public until we approve it."
      }
    ],
    "makeItYours": [
      "YouTube does not pay for mass-produced, repetitive content (its \"inauthentic content\" rule). Every clip needs your own judgement and edits, not just the machine's cut.",
      "Post the clips you would be proud of, not every clip the script makes.",
      "If a clip shows realistic AI-made people, voices or events, YouTube asks you to turn on the \"altered or synthetic content\" label when you upload."
    ],
    "tools": [
      "whisper-cpp",
      "ollama"
    ],
    "status": "not-run",
    "statusNote": "Blueprint. Not run yet. The first real run is on a 128 GB Mac Studio from 10 Nov 2026."
  },
  "runs_from_gb": 8,
  "parts_by_memory_gb": [
    {
      "gb": 8,
      "usable": 6,
      "picks": [
        {
          "role": "transcriber",
          "id": "distil-large-v3-5",
          "name": "Distil-Whisper large-v3.5",
          "needGb": 2,
          "fit": {
            "state": "good",
            "needs": null
          },
          "run": null,
          "note": "Open ASR Leaderboard (English): 6.76% words wrong"
        },
        {
          "role": "decider",
          "id": "qwen3.5-4b",
          "name": "Qwen3.5 4B",
          "needGb": 5.8,
          "fit": {
            "state": "tight",
            "needs": null
          },
          "run": "ollama run qwen3.5:4b",
          "note": "No model is small enough for the decider rule here, so the drafter's model decides too."
        },
        {
          "role": "drafter",
          "id": "qwen3.5-4b",
          "name": "Qwen3.5 4B",
          "needGb": 5.8,
          "fit": {
            "state": "tight",
            "needs": null
          },
          "run": "ollama run qwen3.5:4b",
          "note": null
        }
      ],
      "ok": true
    },
    {
      "gb": 16,
      "usable": 12,
      "picks": [
        {
          "role": "transcriber",
          "id": "distil-large-v3-5",
          "name": "Distil-Whisper large-v3.5",
          "needGb": 2,
          "fit": {
            "state": "good",
            "needs": null
          },
          "run": null,
          "note": "Open ASR Leaderboard (English): 6.76% words wrong"
        },
        {
          "role": "decider",
          "id": "qwen3.5-0.8b",
          "name": "Qwen3.5 0.8B",
          "needGb": 2.6,
          "fit": {
            "state": "good",
            "needs": null
          },
          "run": "ollama run qwen3.5:0.8b",
          "note": null
        },
        {
          "role": "drafter",
          "id": "gemma-4-12b",
          "name": "Gemma 4 12B",
          "needGb": 11.2,
          "fit": {
            "state": "tight",
            "needs": null
          },
          "run": "ollama run gemma4:12b",
          "note": null
        }
      ],
      "ok": true
    },
    {
      "gb": 24,
      "usable": 18,
      "picks": [
        {
          "role": "transcriber",
          "id": "distil-large-v3-5",
          "name": "Distil-Whisper large-v3.5",
          "needGb": 2,
          "fit": {
            "state": "good",
            "needs": null
          },
          "run": null,
          "note": "Open ASR Leaderboard (English): 6.76% words wrong"
        },
        {
          "role": "decider",
          "id": "qwen3.5-4b",
          "name": "Qwen3.5 4B",
          "needGb": 5.8,
          "fit": {
            "state": "good",
            "needs": null
          },
          "run": "ollama run qwen3.5:4b",
          "note": null
        },
        {
          "role": "drafter",
          "id": "gemma-4-12b",
          "name": "Gemma 4 12B",
          "needGb": 11.2,
          "fit": {
            "state": "good",
            "needs": null
          },
          "run": "ollama run gemma4:12b",
          "note": null
        }
      ],
      "ok": true
    },
    {
      "gb": 32,
      "usable": 24,
      "picks": [
        {
          "role": "transcriber",
          "id": "distil-large-v3-5",
          "name": "Distil-Whisper large-v3.5",
          "needGb": 2,
          "fit": {
            "state": "good",
            "needs": null
          },
          "run": null,
          "note": "Open ASR Leaderboard (English): 6.76% words wrong"
        },
        {
          "role": "decider",
          "id": "qwen3.5-4b",
          "name": "Qwen3.5 4B",
          "needGb": 5.8,
          "fit": {
            "state": "good",
            "needs": null
          },
          "run": "ollama run qwen3.5:4b",
          "note": null
        },
        {
          "role": "drafter",
          "id": "qwen3.8-27b",
          "name": "Qwen3.8 27B",
          "needGb": 22.7,
          "fit": {
            "state": "tight",
            "needs": null
          },
          "run": "ollama run qwen3.8:27b",
          "note": null
        }
      ],
      "ok": true
    },
    {
      "gb": 48,
      "usable": 36,
      "picks": [
        {
          "role": "transcriber",
          "id": "distil-large-v3-5",
          "name": "Distil-Whisper large-v3.5",
          "needGb": 2,
          "fit": {
            "state": "good",
            "needs": null
          },
          "run": null,
          "note": "Open ASR Leaderboard (English): 6.76% words wrong"
        },
        {
          "role": "decider",
          "id": "gemma-4-12b",
          "name": "Gemma 4 12B",
          "needGb": 11.2,
          "fit": {
            "state": "good",
            "needs": null
          },
          "run": "ollama run gemma4:12b",
          "note": null
        },
        {
          "role": "drafter",
          "id": "qwen3.8-27b",
          "name": "Qwen3.8 27B",
          "needGb": 22.7,
          "fit": {
            "state": "good",
            "needs": null
          },
          "run": "ollama run qwen3.8:27b",
          "note": null
        }
      ],
      "ok": true
    },
    {
      "gb": 64,
      "usable": 48,
      "picks": [
        {
          "role": "transcriber",
          "id": "distil-large-v3-5",
          "name": "Distil-Whisper large-v3.5",
          "needGb": 2,
          "fit": {
            "state": "good",
            "needs": null
          },
          "run": null,
          "note": "Open ASR Leaderboard (English): 6.76% words wrong"
        },
        {
          "role": "decider",
          "id": "gemma-4-12b",
          "name": "Gemma 4 12B",
          "needGb": 11.2,
          "fit": {
            "state": "good",
            "needs": null
          },
          "run": "ollama run gemma4:12b",
          "note": null
        },
        {
          "role": "drafter",
          "id": "qwen3.8-27b",
          "name": "Qwen3.8 27B",
          "needGb": 22.7,
          "fit": {
            "state": "good",
            "needs": null
          },
          "run": "ollama run qwen3.8:27b",
          "note": null
        }
      ],
      "ok": true
    },
    {
      "gb": 96,
      "usable": 72,
      "picks": [
        {
          "role": "transcriber",
          "id": "distil-large-v3-5",
          "name": "Distil-Whisper large-v3.5",
          "needGb": 2,
          "fit": {
            "state": "good",
            "needs": null
          },
          "run": null,
          "note": "Open ASR Leaderboard (English): 6.76% words wrong"
        },
        {
          "role": "decider",
          "id": "qwen3.8-27b",
          "name": "Qwen3.8 27B",
          "needGb": 22.7,
          "fit": {
            "state": "good",
            "needs": null
          },
          "run": "ollama run qwen3.8:27b",
          "note": null
        },
        {
          "role": "drafter",
          "id": "qwen3.8-27b",
          "name": "Qwen3.8 27B",
          "needGb": 22.7,
          "fit": {
            "state": "good",
            "needs": null
          },
          "run": "ollama run qwen3.8:27b",
          "note": null
        }
      ],
      "ok": true
    },
    {
      "gb": 128,
      "usable": 96,
      "picks": [
        {
          "role": "transcriber",
          "id": "distil-large-v3-5",
          "name": "Distil-Whisper large-v3.5",
          "needGb": 2,
          "fit": {
            "state": "good",
            "needs": null
          },
          "run": null,
          "note": "Open ASR Leaderboard (English): 6.76% words wrong"
        },
        {
          "role": "decider",
          "id": "qwen3.8-27b",
          "name": "Qwen3.8 27B",
          "needGb": 22.7,
          "fit": {
            "state": "good",
            "needs": null
          },
          "run": "ollama run qwen3.8:27b",
          "note": null
        },
        {
          "role": "drafter",
          "id": "qwen3.8-27b",
          "name": "Qwen3.8 27B",
          "needGb": 22.7,
          "fit": {
            "state": "good",
            "needs": null
          },
          "run": "ollama run qwen3.8:27b",
          "note": null
        }
      ],
      "ok": true
    },
    {
      "gb": 192,
      "usable": 144,
      "picks": [
        {
          "role": "transcriber",
          "id": "distil-large-v3-5",
          "name": "Distil-Whisper large-v3.5",
          "needGb": 2,
          "fit": {
            "state": "good",
            "needs": null
          },
          "run": null,
          "note": "Open ASR Leaderboard (English): 6.76% words wrong"
        },
        {
          "role": "decider",
          "id": "qwen3.8-27b",
          "name": "Qwen3.8 27B",
          "needGb": 22.7,
          "fit": {
            "state": "good",
            "needs": null
          },
          "run": "ollama run qwen3.8:27b",
          "note": null
        },
        {
          "role": "drafter",
          "id": "qwen3.8-flash-next",
          "name": "Qwen3.8-Flash-Next (125B-A6B)",
          "needGb": 140,
          "fit": {
            "state": "tight",
            "needs": null
          },
          "run": "ollama run qwen3.8-flash-next:125b-a6b",
          "note": null
        }
      ],
      "ok": true
    },
    {
      "gb": 256,
      "usable": 192,
      "picks": [
        {
          "role": "transcriber",
          "id": "distil-large-v3-5",
          "name": "Distil-Whisper large-v3.5",
          "needGb": 2,
          "fit": {
            "state": "good",
            "needs": null
          },
          "run": null,
          "note": "Open ASR Leaderboard (English): 6.76% words wrong"
        },
        {
          "role": "decider",
          "id": "qwen3.8-27b",
          "name": "Qwen3.8 27B",
          "needGb": 22.7,
          "fit": {
            "state": "good",
            "needs": null
          },
          "run": "ollama run qwen3.8:27b",
          "note": null
        },
        {
          "role": "drafter",
          "id": "qwen3.8-flash-next",
          "name": "Qwen3.8-Flash-Next (125B-A6B)",
          "needGb": 140,
          "fit": {
            "state": "good",
            "needs": null
          },
          "run": "ollama run qwen3.8-flash-next:125b-a6b",
          "note": null
        }
      ],
      "ok": true
    },
    {
      "gb": 512,
      "usable": 384,
      "picks": [
        {
          "role": "transcriber",
          "id": "distil-large-v3-5",
          "name": "Distil-Whisper large-v3.5",
          "needGb": 2,
          "fit": {
            "state": "good",
            "needs": null
          },
          "run": null,
          "note": "Open ASR Leaderboard (English): 6.76% words wrong"
        },
        {
          "role": "decider",
          "id": "qwen3.8-27b",
          "name": "Qwen3.8 27B",
          "needGb": 22.7,
          "fit": {
            "state": "good",
            "needs": null
          },
          "run": "ollama run qwen3.8:27b",
          "note": null
        },
        {
          "role": "drafter",
          "id": "qwen3.8-flash-next",
          "name": "Qwen3.8-Flash-Next (125B-A6B)",
          "needGb": 140,
          "fit": {
            "state": "good",
            "needs": null
          },
          "run": "ollama run qwen3.8-flash-next:125b-a6b",
          "note": null
        }
      ],
      "ok": true
    }
  ],
  "receipts": [
    {
      "key": "claude_hybrid",
      "label": "Claude tokens, this recipe",
      "value": "not run yet",
      "n": 0,
      "note": null
    },
    {
      "key": "claude_all",
      "label": "Claude tokens, all in Claude",
      "value": "not run yet",
      "n": 0,
      "note": null
    },
    {
      "key": "local_minutes",
      "label": "Local minutes",
      "value": "not run yet",
      "n": 0,
      "note": null
    },
    {
      "key": "dollars",
      "label": "Claude dollars (estimate)",
      "value": "not run yet",
      "n": 0,
      "note": null
    }
  ],
  "data_dates": {
    "models": "2026-10-15",
    "speech": "2026-10-15",
    "images": "2026-10-15",
    "machines": "2026-10-15"
  }
}