
Alicloud Media Mps
- 128 installs
- 396 repo stars
- Updated July 18, 2026
- cinience/alicloud-skills
Orchestrate Alibaba Cloud Media Processing Service jobs for transcoding, thumbnails, watermarking, and format conversion in video upload and publishing pipelines.
About
Skill for cinience/alicloud-skills covering Alibaba Cloud Media Processing Service (MPS): submitting and monitoring transcode, thumbnail, watermark, and format-conversion jobs within video processing pipelines.
- Transcode and transmux job templates
- Thumbnail and watermark pipelines
- Async job submission and status polling
- Callback and output delivery setup
- VOD and live post-processing flows
Alicloud Media Mps by the numbers
- 128 all-time installs (skills.sh)
- Ranked #526 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-mpsAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 128 |
|---|---|
| repo stars | ★ 396 |
| Last updated | July 18, 2026 |
| Repository | cinience/alicloud-skills ↗ |
What it does
Orchestrate Alibaba Cloud Media Processing Service jobs for transcoding, thumbnails, watermarking, and format conversion in video upload and publishing pipelines.
Files
Category: service
ApsaraVideo for Media Processing (MPS)
Validation
mkdir -p output/alicloud-media-mps
python -m py_compile skills/media/mps/alicloud-media-mps/scripts/list_openapi_meta_apis.py
echo "py_compile_ok" > output/alicloud-media-mps/validate.txtPass criteria: command exits 0 and output/alicloud-media-mps/validate.txt is generated.
Output And Evidence
- Save API inventory and operation evidence under
output/alicloud-media-mps/. - 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/alicloud-media-mps/.
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:
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/alicloud-media-mps/scripts/list_openapi_meta_apis.pyOptional overrides:
python skills/media/mps/alicloud-media-mps/scripts/list_openapi_meta_apis.py \
--product-code Mts \
--version 2014-06-18 \
--output-dir output/alicloud-media-mpsCommon 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/alicloud-media-mps/
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 $alicloud-media-mps 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/alicloud-media-mps")
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()