
Alicloud Media Ice
- 164 installs
- 396 repo stars
- Updated July 18, 2026
- cinience/alicloud-skills
Integrate Alibaba Cloud ICE intelligent media production APIs for editing, compositing, and publishing video pipelines inside application backends.
About
Alibaba Cloud ICE media production integration skill. Helps developers and agents configure Intelligent Cloud Editing APIs, submit edit and compose jobs, manage templates, handle async callbacks, and connect processed media assets into SaaS or content delivery pipelines.
- ICE SDK and API authentication setup
- Media edit and compose job submission
- Template and timeline configuration
- Webhook and callback handling
- Output asset delivery integration
Alicloud Media Ice by the numbers
- 164 all-time installs (skills.sh)
- Ranked #484 of 1,039 Cloud & Infrastructure 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 alicloud-media-iceAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 164 |
|---|---|
| repo stars | ★ 396 |
| Last updated | July 18, 2026 |
| Repository | cinience/alicloud-skills ↗ |
What it does
Integrate Alibaba Cloud ICE intelligent media production APIs for editing, compositing, and publishing video pipelines inside application backends.
Files
Category: service
Intelligent Cloud Editing (ICE)
Validation
mkdir -p output/alicloud-media-ice
python -m py_compile skills/media/ice/alicloud-media-ice/scripts/list_openapi_meta_apis.py
echo "py_compile_ok" > output/alicloud-media-ice/validate.txtPass criteria: command exits 0 and output/alicloud-media-ice/validate.txt is generated.
Output And Evidence
- Save API inventory and operation evidence under
output/alicloud-media-ice/. - 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/alicloud-media-ice/.
AccessKey Priority
1) Environment variables: ALICLOUD_ACCESS_KEY_ID / ALICLOUD_ACCESS_KEY_SECRET / ALICLOUD_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/alicloud-media-ice/scripts/list_openapi_meta_apis.pyOptional overrides:
python skills/media/ice/alicloud-media-ice/scripts/list_openapi_meta_apis.py \
--product-code ice \
--version 2020-11-09 \
--output-dir output/alicloud-media-iceCommon 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/alicloud-media-ice/
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 $alicloud-media-ice 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/alicloud-media-ice/. - 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/alicloud-media-ice")
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()