Asc App Previews
Published by tddworks in asc-cli-skills
What this skill does
|
Add Asc App Previews to your agent
Review the source and files first. When you are ready, copy the prompt instruction or use the CLI command supported by your environment.
Install with a prompt
Paste this into a compatible coding agent:
add this skill "asc-app-previews" from https://github.com/tddworks/asc-cli-skillsInstall with the CLI
Run this command in a controlled environment after reviewing the repository:
npx skills add https://github.com/tddworks/asc-cli-skills --skill asc-app-previewsSkill instructions
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-codesets 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):
| Field | States | Meaning |
|---|---|---|
assetDeliveryState | AWAITING_UPLOAD, UPLOAD_COMPLETE, COMPLETE, FAILED | Upload progress |
videoDeliveryState | AWAITING_UPLOAD, UPLOAD_COMPLETE, PROCESSING, COMPLETE, FAILED | Video 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
Files included
- references/preview-types.md
- SKILL.md

