# App preview video follows platform guidelines

- **Pattern:** `ab-000434` (`app-store-metadata-listing.review-submission.preview-video`)
- **Severity:** info
- **Lifecycle:** active
- **Last modified:** 2026-04-18
- **Canonical URL:** https://auditbuffet.com/patterns/ab-000434
- **License:** CC-BY-4.0 — attribute to AuditBuffet Pattern Catalog (https://auditbuffet.com/patterns/ab-000434)

## Why it matters

App Store Connect rejects preview videos that exceed 30 seconds, show web-based content, include third-party service UIs rather than in-app captures, or contain licensed audio without distribution rights — all under Guideline 2.3 (Accurate Metadata). A rejected preview video blocks the entire submission, not just the video asset, so a 31-second clip or a screencast labelled `marketing-promo.mp4` costs a full review cycle.

## Severity rationale

Info because the preview video is optional; rejection only fires when a non-compliant video is actively submitted.

## Remediation

Record directly from the device with Xcode's screen recording or QuickTime on a connected iPhone/iPad — not a screencast of a browser or a marketing animation. Keep the clip between 15 and 30 seconds, skip voiceover (Apple applies the app's own audio), and store the file at `fastlane/screenshots/<locale>/preview.mp4` so it ships with the rest of the metadata. For Android, upload a YouTube URL through Play Console rather than a local file.

## Detection

- **ID:** `preview-video`
- **Severity:** `info`
- **What to look for:** Look for video files in `fastlane/screenshots/`, `store-assets/`, `assets/`, or any directory — files with extensions `.mp4`, `.mov`, `.m4v`. Check for references to preview videos in `eas.json` or fastlane configuration. If a preview video is present, evaluate: (a) **iOS App Preview:** Must be 15-30 seconds; must show actual app UI (not animated marketing graphics); must be captured from a device running the app (not a screencast of a web demo); must include sound if sound is part of the app experience; file format must be H.264 or HEVC; resolution must match a supported device size (e.g., 886×1920 for 6.5" iPhone). (b) **Google Play feature graphic:** The Google Play feature graphic (`feature_graphic.png`) is a 1024×500 PNG used as the store banner — check for it in `fastlane/metadata/android/images/featureGraphic.png` or equivalent. If a preview video URL is referenced in Play metadata, note it as external (not stored in repo). The key compliance issue for iOS: app preview videos that show a third-party service, web browser, or marketing animation rather than actual in-app UI are rejected. Count all instances found and enumerate each.
- **Pass criteria:** No preview video is present (skip); or preview video is present, appears to show actual app UI, and is within length guidelines (15-30s for iOS); or video compliance cannot be assessed without playing the file. At least 1 implementation must be confirmed.
- **Fail criteria:** Preview video file is present but is clearly longer than 30 seconds (file size alone suggests this); video filename suggests it is a marketing animation rather than an in-app capture (e.g., `marketing-promo.mp4`).
- **Skip (N/A) when:** No preview video files are found anywhere in the repository. (The video is optional on both platforms.)
- **Detail on fail:** `"store-assets/preview-marketing-animation.mp4 filename suggests a marketing video rather than an in-app capture — App Store requires preview videos to show actual app UI"`.
- **Remediation:** Optional but high-value for conversion. If you add a preview video:
  1. For iOS: Record directly from the device using Xcode's screen recording or QuickTime. The video must be 15-30 seconds and show actual in-app UI.
  2. Do not add voiceover — Apple applies your app's audio automatically. If you add audio, it must be licensable for App Store distribution.
  3. For Android: Use the Play Console to upload a YouTube link rather than a local video file.
  4. Test that the video auto-plays without sound in search results — design accordingly.

  Reference the relevant configuration in `package.json` or the `src/` directory structure for implementation.

---

Taxons: findability, content-integrity

HTML version: https://auditbuffet.com/patterns/ab-000434
