> For the complete documentation index, see [llms.txt](https://docs.memorystring.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.memorystring.app/build-your-movie/auto-detection.md).

# Auto detection

Keep Best Shots, upright photos, and Auto Trim for a messy camera roll, on your Mac. MemoryString’s helpers stay on-device; Auto Trim is not on import, and original files are never rewritten.

These tools help with a messy camera roll. Everything runs on your Mac. Original files are never changed.

## The helpers

* [**Long story short**](/build-your-movie/long-story-short.md): Builds a movie of the length you pick from your best shots. Uses Keep Best and Auto Trim. The rest go to **Outtakes**.
* **Keep Best Shots**: From similar burst photos, keep the strongest shot (on a large import, sometimes a second, wider one). Extras move to **Outtakes** (still in the project, not in the show). Import may ask; **Library** Show menu anytime. Default: **Keep Best**. Undo **⌘Z**.
* **Auto Trim**: About four seconds from the middle of a video clip, with up to about one second nudge toward a face. Works about 70% of the time. Right-click or **Library** Show menu, not on import. After it runs, use **Reset Video Duration** to restore full length. Undo **⌘Z**.
* **Video mute**: On import, quiet clips with only room noise so music can lead.
* **Orientation**: Turns sideways and upside-down photos and videos upright while they import, before they land on the timeline. Original files stay as shot.
* **Center of interest**: Finds faces and subjects so motion frames the right area.
* **Auto Caption**: Fills captions only when you choose **Auto Caption**, never on import by itself.

![Paused photo with the center-of-interest ring](https://316881897-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6lG8Zi4VdmddHJ8jUOT5%2Fuploads%2Fgit-blob-08607241949411314a078f72beab6a9cba08442f%2Fpreview-coi.png?alt=media)

## Keep Best Shots

When several photos are the same moment in the same framing, MemoryString can keep the one with open eyes, a smile, sharpness, and good exposure. A different pose stays in the show. On a large import it can also keep a second, wider shot from that moment.

**When:** during **import**, before the show is built, the fog (or the loading pill on an existing show) says **Comparing similar shots N of M...**, then asks. Anytime later from **Library** Show menu → **Keep Best Shots…**. Videos are not included.

**The dialog** shows how many groups and extra shots. **Keep the best shot only?** Default button: **Keep Best**. **Keep All** leaves every photo.

![Keep Best import prompt: Keep All or Keep Best](https://316881897-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6lG8Zi4VdmddHJ8jUOT5%2Fuploads%2Fgit-blob-97b06deebcd404e5903fba2aa32253ef35a3167f%2Fkeep-best-import-prompt.png?alt=media)

{% hint style="info" %}
Other shots move to **Outtakes**. Undo with **⌘Z**.
{% endhint %}

One undo restores the whole pass. See [Library](/build-your-movie/library.md#import) and [Library Show menu](/build-your-movie/library.md#show-menu).

## Auto Trim

For a long phone clip, **Auto Trim** keeps about **four seconds** around the middle (two seconds before and after the midpoint, clamped to the clip). If a face is just outside that window, it may shift up to **\~1 second** toward it. Clips shorter than four seconds keep the whole file.

The cut works about **70%** of the time. Trim by hand when you need to.

Clips trimmed by **Auto Trim** show a small scissors mark below the mute icon on **Timeline**, **Library**, and **Outtakes** cards. Solid scissors = **Auto Trim**. Outline = you trimmed by hand. The mark shows on hover or selection and goes away after **Reset Video Duration**.

**When:** **not** on import. Right-click a video → **Auto Trim** (runs immediately). Or **Library** Show menu → **Auto Trim Videos…** (confirms when several videos are selected). Works on group videos too.

![Clip context menu with Auto Trim](https://316881897-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6lG8Zi4VdmddHJ8jUOT5%2Fuploads%2Fgit-blob-f59ad3245c1fee595975d95d680ce4faf6bde8e6%2Fauto-trim-context-menu.png?alt=media)

It does not mute, caption, or delete clips.

**Undo:** **⌘Z**. **Reset Video Duration** restores the full source. **Library** Show menu → **Reset Video Durations** resets all videos.

See [Library → Videos](/build-your-movie/library.md#videos) and [Timeline](/build-your-movie/timeline.md#reorder-and-trim).

## Video sound (auto-mute)

Speech on camera stays audible. Wind, hiss, and quiet room tone may mute so the soundtrack can lead. Talking, music, and sharp hits (a bounce, a clap) stay on.

**When:** as each **video** is imported (**Essential** and **Studio**), and again when you open a show, for clips you have not already unmuted. Stills have no clip audio. Soundtrack tracks are not auto-muted. **Library** Show menu → **Mute Noisy Videos** runs the same pass on every show video while you keep working.

**First import with video:** MemoryString may ask **Allow On-Device Speech Detection?** The sheet waits until the show is on screen. It does not pop during the loading fog.

* **Continue**: then macOS’s Speech prompt. Detection is **on-device**. It does not save a transcript.
* **Use Loudness Only**: skip speech. Mute still uses loudness.

If you deny speech, later imports use loudness only until you reset that choice.

**Rules** (whole file):

1. **No audio track** → muted
2. **Very quiet** throughout → muted
3. If speech is allowed and **speech is found** → **audible**
4. Else if energy looks like **music, singing, or cries** → **audible**
5. Else steady noise, wind, hiss, or ambience → muted

Muted clips show a speaker-off badge in **Library** and **Timeline**.

**Override:** right-click **Mute Video Sound** / **Unmute Video Sound**, the speaker badge, or the Inspector clip footer. **Library** Show menu → **Videos** → **Mute All Videos** / **Unmute All Videos** flips every show video at once and remembers that choice. See [Library](/build-your-movie/library.md#videos) and [Music](/build-your-movie/music.md#video-sound-not-the-audioline).

## Orientation

Sideways and upside-down photos and videos are turned upright on their own. The turn lives in the show. Original files are never rewritten. Someone lying on a sofa or the floor is left as shot. That is not a sideways phone.

**When:** during import, while the loader is up: **+**, Finder drop, paste, folders, and **Import from Photos…**. The line under the title reads **Straightening N of M...**. The show lands already upright.

**Long story short** turns the shots it keeps, after **Reviewing**, before the movie is laid out. Extras added to reach the length are turned the same way.

**Opening a show:** turns this Mac already knows are applied before the timeline appears, so the length does not change a moment later. Photos this Mac has never checked are turned shortly after the show opens.

**Override:** right-click **Rotate & Flip**, or **⌘]** / **⌘\[**. Turning a photo back to as-shot sticks. MemoryString will not turn it again. The blurred backdrop follows the same turn as the card. See [Preview](/build-your-movie/preview.md#rotate-while-paused).

## Center of interest

Motion aims at the person or subject that matters. **When:** on **import**, every photo and video gets a focus point.

**How it picks** (on-device):

1. **Largest usable face**: near the **eyes**
2. Else **main subject**
3. Else **center** of the frame

**Videos:** several frames in the trim window. The strongest face or subject wins.

**Override:** pause and click the photo. **Reset Center of Interest** (right-click) removes override and runs detection again.

![Paused preview: Rotate, Flip, Reset Center of Interest](https://316881897-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6lG8Zi4VdmddHJ8jUOT5%2Fuploads%2Fgit-blob-f378c531a75d3f0d5b226f03e7fe3be973d9e2d1%2Fpreview-context-menu.png?alt=media)

Ken Burns and punch-in use center of interest. Some whole-photo transitions ignore it. Details: [Preview](/build-your-movie/preview.md#center-of-interest).

## Auto Caption

**Auto Caption** can fill **place · date**, not camera codes like `IMG_4821`. You run it yourself from the **Library** captions bubble, **Edit → Auto Caption Untitled Slides**, Style → Captions, or Inspector **Generate**. Not on import.

Untitled-only commands **never overwrite** text you typed. **Auto Caption All Slides…** overwrites after confirmation.

**Fill order** for an empty caption:

1. **Place · date**: GPS (EXIF / QuickTime) or IPTC city/country. **Country** follows **Caption Details**. With **Only When the Show Visits Several Countries** on (Studio, and on by default), a one-country show leaves it out.
2. Else **capture date** from EXIF or video creation date.
3. Else a **readable filename** with real words.

**Never used:** UUID names, `IMG_1234`, `DSC…`, WhatsApp export titles. Those stay blank.

Geocoding uses coordinates **in the media**, not your Mac’s location. Offline still gets date / IPTC when available. One **⌘Z** undoes a full Auto Caption pass.

See [Titles and captions](/build-your-movie/intro-captions.md#auto-caption).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.memorystring.app/build-your-movie/auto-detection.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
