
Aliyun Mps Manage
- 53 installs
- 396 repo stars
- Updated July 18, 2026
- cinience/alicloud-skills
Manage Alibaba Cloud ApsaraVideo Media Processing (MPS/MTS) transcoding, snapshot, pipeline, template, and workflow jobs via OpenAPI.
About
Drives the Alibaba Cloud MPS OpenAPI to run media ingest, transcoding, snapshot, and pipeline/template/workflow operations. A developer uses it to operate and troubleshoot media-processing jobs.
- Metadata-first discovery, read-only queries before mutations
- Uses OSS input/output buckets for media jobs
Aliyun Mps Manage by the numbers
- 53 all-time installs (skills.sh)
- Ranked #879 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-mps-manageAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 53 |
|---|---|
| repo stars | ★ 396 |
| Last updated | July 18, 2026 |
| Repository | cinience/alicloud-skills ↗ |
What it does
Manage Alibaba Cloud ApsaraVideo Media Processing (MPS/MTS) transcoding, snapshot, pipeline, template, and workflow jobs via OpenAPI.
Files
Category: service
ApsaraVideo for Media Processing (MPS)
Validation
mkdir -p output/aliyun-mps-manage
python -m py_compile skills/media/mps/aliyun-mps-manage/scripts/list_openapi_meta_apis.py
echo "py_compile_ok" > output/aliyun-mps-manage/validate.txtPass criteria: command exits 0 and output/aliyun-mps-manage/validate.txt is generated.
Output And Evidence
- Save API inventory and operation evidence under
output/aliyun-mps-manage/. - Keep region, pipeline/template/workflow IDs, media IDs, and request parameters in evidence files.
Use Alibaba Cloud OpenAPI (RPC) with official SDKs or OpenAPI Explorer to manage MPS resources. Prefer metadata-first API discovery before mutate operations.
Prerequisites
- Prepare least-privilege RAM AccessKey/STS credentials.
- Confirm target region and OSS input/output buckets before changes.
- Use read-only query APIs first.
Workflow
1) Confirm target media scope, bucket binding, and desired operation. 2) Discover API names and required parameters via OpenAPI metadata and API Explorer. 3) Execute read-only validation calls. 4) Execute pipeline/template/workflow/job operations. 5) Save outputs and evidence under output/aliyun-mps-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:
Mts - Default API version:
2014-06-18 - Metadata source:
https://api.aliyun.com/meta/v1/products/Mts/versions/2014-06-18/api-docs.json
Minimal Executable Quickstart
python skills/media/mps/aliyun-mps-manage/scripts/list_openapi_meta_apis.pyOptional overrides:
python skills/media/mps/aliyun-mps-manage/scripts/list_openapi_meta_apis.py \
--product-code Mts \
--version 2014-06-18 \
--output-dir output/aliyun-mps-manageCommon Operation Mapping
- Pipeline operations:
AddPipeline,UpdatePipeline,QueryPipelineList,SearchPipeline - Template operations:
AddTemplate,UpdateTemplate,QueryTemplateList,SearchTemplate - Workflow operations:
AddMediaWorkflow,UpdateMediaWorkflow,QueryMediaWorkflowList,ListMediaWorkflowExecutions - Job operations:
SubmitJobs,QueryJobList,ListJob,CancelJob - Snapshot and analysis:
SubmitSnapshotJob,QuerySnapshotJobList,SubmitAnalysisJob - Media and bucket management:
AddMedia,UpdateMedia,DeleteMedia,BindInputBucket,BindOutputBucket
Output Policy
Write all generated files and execution evidence under: output/aliyun-mps-manage/
References
- Source list:
references/sources.md - Task templates:
references/templates.md
interface:
display_name: "Alibaba Cloud Media MPS"
short_description: "Manage ApsaraVideo for Media Processing APIs and workflows"
default_prompt: "Use $aliyun-mps-manage to complete this Alibaba Cloud MPS media processing task."
Sources
- OpenAPI product page:
https://api.aliyun.com/product/mts - API list (metadata):
https://api.aliyun.com/meta/v1/products/Mts/versions/2014-06-18/api-docs.json - API definition (single API):
https://api.aliyun.com/meta/v1/products/Mts/versions/2014-06-18/apis/{ApiName}/api.json - Product documentation (ApsaraVideo for Media Processing):
https://www.alibabacloud.com/help/en/mts
Task Templates
1) List pipeline inventory (read-only)
Goal: list all pipelines and capture IDs for later operations.
Suggested API path:
QueryPipelineList- Optional exact lookup:
SearchPipeline
Evidence to save:
- request parameters
- response summary
- pipeline IDs and states
2) Validate template setup (read-only)
Goal: verify available transcode/watermark templates before submitting jobs.
Suggested API path:
QueryTemplateListQueryWaterMarkTemplateList
Evidence to save:
- template IDs and names
- template state/status
3) Submit and track a processing job
Goal: submit one bounded processing job and observe status transitions.
Suggested API path:
SubmitJobsQueryJobListorListJob- optional cancel path:
CancelJob
Evidence to save:
- pipeline/template IDs used
- input/output location
- job ID and final status
4) Submit snapshot extraction
Goal: generate snapshots from target media and verify completion.
Suggested API path:
SubmitSnapshotJobQuerySnapshotJobList
Evidence to save:
- snapshot configuration
- job IDs
- completion result
#!/usr/bin/env python3
"""Fetch OpenAPI metadata API list for Alibaba Cloud MPS and save to output/."""
from __future__ import annotations
import argparse
import json
import os
import pathlib
import urllib.request
DEFAULT_PRODUCT_CODE = "Mts"
DEFAULT_VERSION = "2014-06-18"
OUTPUT_DIR = pathlib.Path("output/aliyun-mps-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()