mcpField
A
asc-app-previews

asc-app-previews

github.com/tddworksMarketing & growth595 installsUpdated 8w ago
Repository

About asc-app-previews

A skill for managing App Store preview sets and video uploads with the `asc` CLI. It is intended for developers maintaining localized store previews and covers preview creation, upload, and delivery status.

Key features

  1. 01List preview sets by localization
  2. 02Create sets for device types
  3. 03List preview videos
  4. 04Upload videos and set poster frames
  5. 05Track upload and encoding states

Use cases

  1. 01Create a preview set for a target device
  2. 02Upload an MP4, MOV, or M4V preview
  3. 03Check whether video encoding is complete

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/tddworks/asc-cli-skills --skill asc-app-previews

After installing, type/asc-app-previewsin Claude Code to confirm it loaded.

Bundled filesreferences/preview-types.md

Details

From the project README

asc App Previews

Manage App Store preview video sets and video uploads via the asc CLI.

Commands

List preview sets for a localization
asc app-preview-sets list --localization-id <LOCALIZATION_ID>
Create a preview set
asc app-preview-sets create \
  --localization-id <LOCALIZATION_ID> \
  --preview-type <PREVIEW_TYPE>

--preview-type raw values have no APP_ prefix — unlike screenshot display types. Common values: IPHONE_67, IPHONE_65, IPAD_PRO_3GEN_129, APPLE_TV, APPLE_VISION_PRO, DESKTOP.

See preview-types.md for all valid values grouped by device.

List previews in a set
asc app-previews list --set-id <SET_ID>
Upload a preview video
asc app-previews upload \
  --set-id <SET_ID> \
  --file path/to/preview.mp4 \
  [--preview-frame-time-code 00:00:05]
  • Accepted formats: .mp4, .mov, .m4v
  • --preview-frame-time-code sets the poster frame shown in the App Store
  • Upload is a 3-step API flow: POST reserve → PUT chunks → PATCH MD5 confirm

State Fields

AppPreview has two independent state fields (unlike screenshots which only have one):

FieldStatesMeaning
assetDeliveryStateAWAITING_UPLOAD, UPLOAD_COMPLETE, COMPLETE, FAILEDUpload progress
videoDeliveryStateAWAITING_UPLOAD, UPLOAD_COMPLETE, PROCESSING, COMPLETE, FAILEDVideo encoding

videoDeliveryState: "COMPLETE" = video ready. PROCESSING is unique to previews (absent on screenshots).

Nil fields are omitted from JSON output. mimeType values containing / are escaped as \/ by JSONEncoder (e.g. "video\/mp4").

CAEOAS Affordances

Every JSON response includes affordances with ready-to-run follow-up commands:

AppPreviewSet:

{
  "affordances": {
    "listPreviews":    "asc app-previews list     --set-id <SET_ID>",
    "listPreviewSets": "asc app-preview-sets list --localization-id <LOCALIZATION_ID>"
  }
}

AppPreview:

{
  "affordances": {
    "listPreviews": "asc app-previews list --set-id <SET_ID>"
  }
}

Typical Workflow

# 1. Find the localization ID
asc version-localizations list --version-id <VERSION_ID> --output table

# 2. Create a preview set for the target device
asc app-preview-sets create \
  --localization-id <LOCALIZATION_ID> \
  --preview-type IPHONE_67

# 3. Upload the video (copy --set-id from affordances in step 2)
asc app-previews upload \
  --set-id <SET_ID> \
  --file preview.mp4 \
  --preview-frame-time-code 00:00:05

# 4. Check processing state
asc app-previews list --set-id <SET_ID> --pretty

Comments

Markdown supported