
Aliyun Ice Manage
- 52 installs
- 396 repo stars
- Updated July 18, 2026
- cinience/alicloud-skills
Manage Alibaba Cloud Intelligent Cloud Editing (ICE) media workflows via OpenAPI, including processing jobs, templates, and job-status troubleshooting.
About
Drives the Alibaba Cloud ICE OpenAPI to orchestrate media processing jobs, editing templates, and production pipelines. A developer uses it to run and troubleshoot cloud video-editing workflows.
- Metadata-first discovery, read-only checks before submitting jobs
- Uses OSS input/output locations for media workflows
Aliyun Ice Manage by the numbers
- 52 all-time installs (skills.sh)
- Ranked #884 of 1,335 Generative Media skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/cinience/alicloud-skills --skill aliyun-ice-manageAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 52 |
|---|---|
| repo stars | ★ 396 |
| Last updated | July 18, 2026 |
| Repository | cinience/alicloud-skills ↗ |
What it does
Manage Alibaba Cloud Intelligent Cloud Editing (ICE) media workflows via OpenAPI, including processing jobs, templates, and job-status troubleshooting.
Files
Category: service
Intelligent Cloud Editing (ICE)
Validation
mkdir -p output/aliyun-ice-manage
python -m py_compile skills/media/ice/aliyun-ice-manage/scripts/list_openapi_meta_apis.py
echo "py_compile_ok" > output/aliyun-ice-manage/validate.txtPass criteria: command exits 0 and output/aliyun-ice-manage/validate.txt is generated.
Output And Evidence
- Save API inventory and operation evidence under
output/aliyun-ice-manage/. - Keep region, workflow IDs, job IDs, and request parameters in evidence files.
Use Alibaba Cloud OpenAPI (RPC) with official SDKs or OpenAPI Explorer to manage ICE resources. Prefer metadata-first API discovery before mutate operations.
Prerequisites
- Prepare least-privilege RAM AccessKey/STS credentials.
- Confirm target region, input/output OSS locations, and workflow scope before changes.
- Query current state with read-only APIs before invoking processing jobs.
Workflow
1) Confirm target workflow/template and media input/output locations. 2) Discover API names and required parameters via metadata and API Explorer. 3) Validate prerequisite resources using read-only APIs. 4) Submit and monitor processing jobs. 5) Save outputs and evidence under output/aliyun-ice-manage/.
AccessKey Priority
1) Environment variables: ALIBABACLOUD_ACCESS_KEY_ID / ALIBABACLOUD_ACCESS_KEY_SECRET / ALIBABACLOUD_REGION_ID. 2) Shared config file: ~/.alibabacloud/credentials.
If region is ambiguous, ask before write operations.
API Discovery
- Product code:
ice - Default API version:
2020-11-09 - Metadata source:
https://api.aliyun.com/meta/v1/products/ice/versions/2020-11-09/api-docs.json
Minimal Executable Quickstart
python skills/media/ice/aliyun-ice-manage/scripts/list_openapi_meta_apis.pyOptional overrides:
python skills/media/ice/aliyun-ice-manage/scripts/list_openapi_meta_apis.py \
--product-code ice \
--version 2020-11-09 \
--output-dir output/aliyun-ice-manageCommon Operation Mapping
- Media info and metadata:
GetMediaInfo,SearchMedia,UpdateMediaMeta - Workflow/template:
CreateMediaWorkflow,UpdateMediaWorkflow,ListMediaWorkflowExecutions - Job submission:
SubmitMediaProducingJob,SubmitBatchMediaProducingJob,GetMediaProducingJob - Editing/material:
CreateSourceLocation,AddMedia,GetDefaultMaterial - Task status/troubleshooting:
GetTaskInfo,ListJobs,GetBatchMediaProducingJob
Output Policy
Write all generated files and execution evidence under: output/aliyun-ice-manage/
References
- Source list:
references/sources.md - Task templates:
references/templates.md
interface:
display_name: "Alibaba Cloud Media ICE"
short_description: "Manage ICE APIs and media processing workflows"
default_prompt: "Use $aliyun-ice-manage to complete this Alibaba Cloud ICE media task."
Sources
- OpenAPI product page:
https://api.aliyun.com/product/ice - API list (metadata):
https://api.aliyun.com/meta/v1/products/ice/versions/2020-11-09/api-docs.json - API definition (single API):
https://api.aliyun.com/meta/v1/products/ice/versions/2020-11-09/apis/{ApiName}/api.json - Product documentation (Intelligent Cloud Editing):
https://www.alibabacloud.com/help/en/ice
ICE Task Templates
Use these templates after confirming region and OSS input/output locations.
1) Create a media workflow
- API:
CreateMediaWorkflow - Required params template:
Name:<workflow-name>Topology:<json-topology-definition>TriggerMode:<OssAutoTrigger|NotInAuto>
2) Submit a media producing job
- API:
SubmitMediaProducingJob - Required params template:
WorkflowId:<workflow-id>InputConfig:<json-input-config>OutputConfig:<json-output-config>UserData:<optional-biz-context-json>
3) Query producing job result
- API:
GetMediaProducingJob - Required params template:
JobId:<job-id>
4) Search media in ICE
- API:
SearchMedia - Required params template:
Match:<query-expression>PageNo:<1>PageSize:<20>
5) Query task/runtime diagnostics
- APIs:
GetTaskInfo,ListJobs - Required params template:
TaskId(forGetTaskInfo):<task-id>JobType/Status/NextToken(forListJobs):<filters>
Evidence Checklist
- Save request payloads and API responses under
output/aliyun-ice-manage/. - Keep workflow IDs, job IDs, and output object paths in one evidence file.
#!/usr/bin/env python3
"""Fetch OpenAPI metadata API list for Alibaba Cloud ICE and save to output/."""
from __future__ import annotations
import argparse
import json
import os
import pathlib
import urllib.request
DEFAULT_PRODUCT_CODE = "ice"
DEFAULT_VERSION = "2020-11-09"
OUTPUT_DIR = pathlib.Path("output/aliyun-ice-manage")
def fetch_json(url: str, timeout: int) -> dict:
req = urllib.request.Request(url, headers={"User-Agent": "codex-skill"})
with urllib.request.urlopen(req, timeout=timeout) as resp:
return json.loads(resp.read().decode("utf-8"))
def main() -> None:
parser = argparse.ArgumentParser()
parser.add_argument("--product-code", default=DEFAULT_PRODUCT_CODE)
parser.add_argument("--version", default=DEFAULT_VERSION)
parser.add_argument("--output-dir", default=str(OUTPUT_DIR))
args = parser.parse_args()
timeout = int(os.getenv("OPENAPI_META_TIMEOUT", "20"))
output_dir = pathlib.Path(args.output_dir)
output_dir.mkdir(parents=True, exist_ok=True)
url = (
f"https://api.aliyun.com/meta/v1/products/{args.product_code}"
f"/versions/{args.version}/api-docs.json"
)
payload = fetch_json(url, timeout)
raw_apis = payload.get("apis", {})
if isinstance(raw_apis, dict):
api_names = sorted(raw_apis.keys())
elif isinstance(raw_apis, list):
names = []
for item in raw_apis:
if isinstance(item, dict):
name = item.get("name") or item.get("apiName")
if name:
names.append(name)
elif isinstance(item, str):
names.append(item)
api_names = sorted(set(names))
else:
api_names = []
json_file = output_dir / f"{args.product_code}_{args.version}_api_docs.json"
md_file = output_dir / f"{args.product_code}_{args.version}_api_list.md"
json_file.write_text(json.dumps(payload, ensure_ascii=False, indent=2), encoding="utf-8")
md_lines = [
f"# {args.product_code} {args.version} API List",
"",
f"- Source: {url}",
f"- API count: {len(api_names)}",
"",
]
md_lines.extend([f"- `{name}`" for name in api_names])
md_file.write_text("\n".join(md_lines) + "\n", encoding="utf-8")
print(f"Saved: {json_file}")
print(f"Saved: {md_file}")
if __name__ == "__main__":
main()