Skip to main content
Manage app preview videos for your App Store listings.

Overview

The video-previews command allows you to upload, list, download, and delete app preview videos that showcase your app’s features in the App Store.

List Video Previews

List all app preview videos for a version localization:
asc video-previews list --version-localization "LOC_ID"
The response includes preview sets organized by device type, with details about each video preview including upload state and preview frame time.

Upload Video Previews

Upload app preview videos to App Store Connect:
# Upload single video file
asc video-previews upload --version-localization "LOC_ID" \
  --path "./preview.mov" \
  --device-type "IPHONE_69"

# Upload all videos from directory
asc video-previews upload --version-localization "LOC_ID" \
  --path "./previews" \
  --device-type "IPHONE_69"

Video File Requirements

Format:
  • Container: MOV or M4V
  • Codec: H.264 or HEVC (H.265)
  • Audio: AAC or PCM
  • Resolution: Must match device-specific requirements
Duration:
  • 15-30 seconds recommended
  • Maximum 30 seconds
File Size:
  • Maximum 500 MB per video
Device-Specific Resolutions:
Device TypeResolutionAspect Ratio
IPHONE_691290 × 27969:19.5
IPHONE_671284 × 27789:19.5
IPHONE_651242 × 26889:19.5
IPHONE_611179 × 25569:19.5
IPHONE_581170 × 25329:19.5
IPAD_PRO_3GEN_1292048 × 27323:4
IPAD_PRO_1292048 × 27323:4

Upload Process

The CLI handles the multi-step upload process automatically:
  1. Creates or finds the appropriate preview set for the device type
  2. Reserves the app preview resource
  3. Uploads the video file to Apple’s CDN
  4. Commits the upload
  5. Polls for processing completion
Example Output:
{
  "version_localization_id": "LOC_ID",
  "set_id": "SET_ID",
  "preview_type": "IPHONE_69",
  "results": [
    {
      "preview_id": "PREVIEW_ID",
      "file_path": "./preview.mov",
      "state": "COMPLETE",
      "uploaded_bytes": 15728640
    }
  ]
}

Download Video Previews

Download existing app preview videos from App Store Connect:
asc video-previews download --version-localization "LOC_ID" \
  --output-dir "./previews/downloaded"
This command:
  • Downloads all preview videos for the specified localization
  • Organizes files by device type
  • Preserves video metadata

Delete Video Previews

Remove an app preview video:
asc video-previews delete --id "PREVIEW_ID" --confirm
Note: The --confirm flag is required to prevent accidental deletions.

Device Type Reference

iPhone Device Types:
  • IPHONE_69 - iPhone 6.9” (iPhone 15 Pro Max, iPhone 16 Pro Max)
  • IPHONE_67 - iPhone 6.7” (iPhone 15 Plus, iPhone 16 Plus)
  • IPHONE_65 - iPhone 6.5” (iPhone XS Max, iPhone 11 Pro Max)
  • IPHONE_61 - iPhone 6.1” (iPhone 14, iPhone 15)
  • IPHONE_58 - iPhone 5.8” (iPhone X, iPhone XS)
  • IPHONE_55 - iPhone 5.5” (iPhone 8 Plus)
iPad Device Types:
  • IPAD_PRO_3GEN_129 - iPad Pro 12.9” (3rd gen and later)
  • IPAD_PRO_129 - iPad Pro 12.9” (1st and 2nd gen)
  • IPAD_PRO_11 - iPad Pro 11”
  • IPAD_105 - iPad 10.5”
  • IPAD_97 - iPad 9.7”

Complete Example Workflow

# 1. Check existing previews
asc video-previews list --version-localization "LOC_ID" --output table

# 2. Upload iPhone preview
asc video-previews upload --version-localization "LOC_ID" \
  --path "./marketing/iphone-preview.mov" \
  --device-type "IPHONE_69"

# 3. Upload iPad preview
asc video-previews upload --version-localization "LOC_ID" \
  --path "./marketing/ipad-preview.mov" \
  --device-type "IPAD_PRO_3GEN_129"

# 4. Verify uploads
asc video-previews list --version-localization "LOC_ID"

Video Creation Best Practices

Content Guidelines

  1. Show actual app functionality - Use real app screens and interactions
  2. Start with impact - Capture attention in the first 2-3 seconds
  3. Highlight key features - Focus on your app’s unique value proposition
  4. Use smooth transitions - Avoid jarring cuts or effects
  5. No audio required - Many users watch with sound off

Technical Tips

Recording:
# Record iPhone simulator at correct resolution
xcrun simctl io booted recordVideo --codec=h264 preview.mov
Converting Formats:
# Convert to required specs using ffmpeg
ffmpeg -i input.mp4 -vf scale=1290:2796 \
  -c:v libx264 -pix_fmt yuv420p \
  -c:a aac -b:a 128k \
  output.mov
Verify Resolution:
# Check video dimensions
ffprobe -v error -select_streams v:0 \
  -show_entries stream=width,height \
  -of csv=s=x:p=0 preview.mov

Troubleshooting

Upload Fails with Resolution Error

Ensure video resolution exactly matches device type requirements:
# Check current resolution
ffprobe -v error -select_streams v:0 \
  -show_entries stream=width,height \
  -of default=noprint_wrappers=1 preview.mov

# Resolution must match device type exactly
# IPHONE_69 requires: 1290 × 2796

Upload Timeout

For large files or slow connections, increase upload timeout:
export ASC_UPLOAD_TIMEOUT=300s  # 5 minutes
asc video-previews upload --version-localization "LOC_ID" \
  --path "./large-preview.mov" \
  --device-type "IPHONE_69"

Processing Takes Too Long

Video processing on Apple’s servers can take several minutes. The CLI polls automatically, but you can check status manually:
asc video-previews list --version-localization "LOC_ID" --output json
Look for upload_operations with state: "COMPLETE".
  • Screenshots - Manage app screenshots
  • Apps - Manage app metadata and versions