Skill: wondershare-boop/mediaio-kling-video-generator (version 1.0.1)

````skill --- name: mediaio-kling-video-generator description: Generate AI videos using Kling via Media.io OpenAPI. Supports text-to-video and image-to-video with high visual fidelity, smooth motion, and cinematic quality. requires: env: - API_KEY metadata: mediaio: emoji: "" priority: "P0" core_goal_keywords: - text-to-video - image-to-video trigger_keywords: - Kling - Kling AI - Kling video generator - Kling AI video publisher: Community Maintainer source: https://platform.media.io/docs/ --- # Kling AI Video Generator ## Overview This skill focuses on a single model family and calls Media.io OpenAPI via `Skill.invoke(api_name, params, api_key)`. It includes only common APIs (`Credits`, `Task Result`) plus model-specific APIs for this skill. ## Core Trigger Keywords Kling, Kling AI, Kling video generator, Kling AI video ## Core Goal Keywords text-to-video, image-to-video ## Environment Variable - `API_KEY` (required): Media.io OpenAPI key used as `X-API-KEY`. ## Quick Start ```python import os from scripts.skill_router import Skill skill = Skill('scripts/c_api_doc_detail.json') [REDACTED_SECRET]'API_KEY', '') result = skill.invoke('Credits', {}, [REDACTED_SECRET]) print(result) ``` ## Available APIs - `Credits` (`user-credits`) - `Task Result` (`generation-result`) - `Kling 2.1` (`i2v-kling-v2-1`) - `Kling 2.5 Turbo` (`i2v-kling-v2-5-turbo`) - `Kling 2.6` (`i2v-kling-v2-6`) - `Kling 3.0` (`i2v-kling-v3-0`) - `Motion Control Kling 2.6` (`i2v-motion-control-kling-v2-6`) ## Notes - Use exact `api_name` from `scripts/c_api_doc_detail.json` when invoking. - Generation APIs return `task_id`; poll with `Task Result`. ````

path: scripts/skill_router.py
content: #!/usr/bin/env python3
import json
import os
import requests
from typing import Any, Dict, Optional
from urllib.parse import urlparse

class Skill:
    """
    Standard AIGC skill implementation with automatic API routing and parameter mapping.
    """
    def __init__(self, api_doc_path: str):
        with open(api_doc_path, 'r', encoding='utf-8') as f:
            api_items = json.load(f)

        self.api_definitions = {}
        duplicate_names = []
        for item in api_items:
            name = item.get('name')
            if name in self.api_definitions:
                duplicate_names.append(name)
                continue
            self.api_definitions[name] = item

        if duplicate_names:
            deduped = sorted(set(duplicate_names))
            raise ValueError(
                f"Duplicate API names detected in {api_doc_path}: {', '.join(deduped)}. "
                "Please use unique `name` fields in c_api_doc_detail.json."
            )

    def invoke(self, api_name: str, params: Dict[str, Any], [REDACTED_SECRET] = None) -> Dict[str, Any]:
        """
        Invoke the specified API.
        :param api_name: API name.
        :param params: Business parameters.
        :param api_key: API key. If omitted, API_KEY from environment is used.
        :return: API response payload.
        """
        if api_name not in self.api_definitions:
            return {'error': f"API '{api_name}' not found."}

        resolved_api_key = (api_key or os.getenv('API_KEY', '')).strip()
        if not resolved_api_key:
            return {'error': 'Missing API key. Set API_KEY or pass api_key explicitly.'}

        api = self.api_definitions[api_name]
        url = api['endpoint']
        method = api['method']

        # Restrict outbound requests to the expected Media.io API host.
        parsed = urlparse(url)
        if parsed.scheme != 'https' or parsed.netloc.lower() != 'openapi.media.io':
            return {'error': f"Blocked endpoint host: {parsed.netloc}"}

        headers = {
            'X-API-KEY': resolved_api_key,
            'Content-Type': 'application/json'
        }
        # Replace path parameters in endpoint URLs.
        if '{' in url:
            for k, v in params.items():
                url = url.replace(f'{{{k}}}', str(v))
        # Keep non-path parameters in the JSON body.
        body = {k: v for k, v in params.items() if f'{{{k}}}' not in api['endpoint']}
        try:
            resp = requests.request(method, url, headers=headers, json={'data': body} if body else {}, timeout=30)
            return resp.json()
        except Exception as e:
            return {'error': str(e)}

# Standard usage example.
if __name__ == '__main__':
    script_dir = os.path.dirname(os.path.abspath(__file__))
    skill = Skill(os.path.join(script_dir, 'c_api_doc_detail.json'))
    [REDACTED_SECRET]'API_KEY', '')
    if not api_key:
        raise RuntimeError('API_KEY is not set')
    # Credits query.
    result = skill.invoke('Credits', {}, [REDACTED_SECRET])
    print(result)


path: scripts/c_api_doc_detail.json
content: [
  {
    "id": 196,
    "name": "Credits",
    "model_code": "user-credits",
    "method": "POST",
    "endpoint": "https://openapi.media.io/user/credits",
    "title": "User Credits API Documentation",
    "description": "API to query user credits balance.",
    "api_header": "{\"list\": [{\"name\": \"X-API-KEY\", \"value\": \"API key to authorize requests\"}, {\"name\": \"Content-Type\", \"value\": \"application/json\"}], \"title\": \"Authorizations\", \"describe\": \"Add the following authorization information in the request header\"}",
    "api_body": "{\"title\": \"Request Body\", \"category\": [{\"list\": [], \"title\": \"Query Credits\", \"describe\": \"Request body to query user credits balance\"}]}",
    "api_request_demo": "{\"title\": \"Example Request\", \"request\": [{\"title\": \"Query User Credits\", \"language\": \"cURL\", \"code_example\": \"curl --request POST \\n  --url https://openapi.media.io/user/credits \\n  --header 'Content-Type: application/json' \\n  --header 'X-[REDACTED_SECRET]' \\n  --data '{}'\"}]}",
    "api_response": "{\"list\": [{\"name\": \"code\", \"type\": \"integer\", \"describe\": \"Response status code, 0 indicates success\"}, {\"name\": \"msg\", \"type\": \"string\", \"describe\": \"Response message, empty string on success\"}, {\"name\": \"data\", \"type\": \"object\", \"describe\": \"Response data object\"}, {\"name\": \"credits\", \"type\": \"integer\", \"describe\": \"User credits balance, located within the data object\"}], \"title\": \"Response\", \"describe\": \"After the request is successfully processed, the server will return the following response\"}",
    "api_code_demo": "{\"list\": [{\"code\": \"0\", \"describe\": \"Success\"}, {\"code\": \"40001\", \"describe\": \"Invalid API key\"}, {\"code\": \"40002\", \"describe\": \"API key expired\"}], \"title\": \"Status Code\"}",
    "content": null,
    "status": 1,
    "created_at": "3/3/2026 18:33:49",
    "updated_at": "3/3/2026 18:33:49"
  },
  {
    "id": 197,
    "name": "Task Result",
    "model_code": "generation-result",
    "method": "POST",
    "endpoint": "https://openapi.media.io/generation/result/{task_id}",
    "title": "Task Result API Documentation",
    "description": "API to query generation task result by task ID.",
    "api_header": "{\"list\": [{\"name\": \"X-API-KEY\", \"value\": \"API key to authorize requests\"}, {\"name\": \"Content-Type\", \"value\": \"application/json\"}], \"title\": \"Authorizations\", \"describe\": \"Add the following authorization information in the request header\"}",
    "api_body": "{\"title\": \"Path Parameters\", \"category\": [{\"list\": [{\"name\": \"task_id\", \"type\": \"string\", \"describe\": \"The task ID to query, located in the URL path parameter\", \"required\": true}], \"title\": \"Query Task Result\", \"describe\": \"Request body to query task result\"}]}",
    "api_request_demo": "{\"title\": \"Example Request\", \"request\": [{\"title\": \"Query Task Result\", \"language\": \"cURL\", \"code_example\": \"curl --request POST \\n  --url https://openapi.media.io/generation/result/<task_id> \\n  --header 'Content-Type: application/json' \\n  --header 'X-[REDACTED_SECRET]' \\n  --data '{}'\"}]}",
    "api_response": "{\"list\": [{\"name\": \"code\", \"type\": \"integer\", \"describe\": \"Response status code, 0 indicates success\"}, {\"name\": \"msg\", \"type\": \"string\", \"describe\": \"Response message, empty string on success\"}, {\"name\": \"data\", \"type\": \"object\", \"describe\": \"Response data object\"}, {\"name\": \"task_id\", \"type\": \"string\", \"describe\": \"Task identifier\"}, {\"name\": \"status\", \"type\": \"string\", \"describe\": \"Task status: pending, processing, succeeded, failed\"}, {\"name\": \"result\", \"type\": \"object\", \"describe\": \"Generation result when task succeeded\"}], \"title\": \"Response\", \"describe\": \"After the request is successfully processed, the server will return the following response\"}",
    "api_code_demo": "{\"list\": [{\"code\": \"0\", \"describe\": \"Success\"}, {\"code\": \"40001\", \"describe\": \"Invalid API key\"}, {\"code\": \"40002\", \"describe\": \"API key expired\"}, {\"code\": \"40003\", \"describe\": \"Task not found\"}], \"title\": \"Status Code\"}",
    "content": null,
    "status": 1,
    "created_at": "3/3/2026 18:33:49",
    "updated_at": "4/3/2026 21:30:23"
  },
  {
    "id": 248,
    "name": "Kling 2.1",
    "model_code": "i2v-kling-v2-1",
    "method": "POST",
    "endpoint": "https://openapi.media.io/generation/kling/i2v-kling-v2-1",
    "title": "Kling 2.1 API Documentation",
    "description": "A robust model known for producing realistic videos with stable motion and good prompt understanding.",
    "api_header": "{\"list\": [{\"name\": \"X-API-KEY\", \"value\": \"API key to authorize requests\"}, {\"name\": \"Content-Type\", \"value\": \"application/json\"}], \"title\": \"Authorizations\", \"describe\": \"Add the following authorization information in the request header\"}",
    "api_body": "{\"title\": \"Request Body\", \"category\": [{\"list\": [{\"name\": \"image\", \"type\": \"string\", \"describe\": \"The URL of the input image. Supported formats include PNG, JPEG, JPG, WEBP, GIF, and HEIC. File size must be between 0.0 MB and 20.0 MB. Image resolution must be between 300x300 and 4000x4000. Aspect ratio must be between 0.4:1 and 2.5:1.\", \"required\": true}, {\"name\": \"prompt\", \"type\": \"string\", \"describe\": \"The text prompt describing the content to generate. Maximum string length: 2000.\", \"required\": true}, {\"name\": \"duration\", \"type\": \"string\", \"describe\": \"Video duration in seconds. Options: 5s, 10s. Default is 5s.\", \"keywords\": [\"5s\", \"10s\"], \"required\": false}, {\"name\": \"resolution\", \"type\": \"string\", \"describe\": \"Output resolution. Options: 720P, 1080P. Default is 720P.\", \"keywords\": [\"720P\", \"1080P\"], \"required\": false}], \"title\": \"Image To Video\"}], \"describe\": \"The request body must contain the following parameters\"}",
    "api_request_demo": "{\"title\": \"Example Request\", \"request\": [{\"title\": \"create video by text or image\", \"language\": \"cURL\", \"code_example\": \"curl --request POST \\\\\\n  --url https://openapi.media.io/generation/kling/i2v-kling-v2-1 \\\\\\n  --header 'Content-Type: application/json' \\\\\\n  --header 'X-[REDACTED_SECRET]' \\\\\\n  --data '\\n{\\n  \\\"data\\\": {\\n    \\\"duration\\\": \\\"5s\\\",\\n    \\\"image\\\": \\\"<string>\\\",\\n    \\\"prompt\\\": \\\"<string>\\\",\\n    \\\"resolution\\\": \\\"720P\\\"\\n  }\\n}'\\n\"}], \"describe\": \"\", \"response\": [{\"type\": \"200\", \"code_example\": \"{\\n  \\\"code\\\": 0,\\n  \\\"msg\\\": \\\"\\\",\\n  \\\"data\\\": {\\n    \\\"task_id\\\": <string>\\\"\\n  },\\n  \\\"trace_id\\\": <string>\\\"\\n}\"}, {\"type\": \"default\", \"code_example\": \"{\\n  \\\"code\\\": <integer>,\\n  \\\"msg\\\": <string>,\\n  \\\"data\\\": {},\\n  \\\"trace_id\\\": <string>\\\"\\n}\"}]}",
    "api_response": "{\"list\": [{\"name\": \"code\", \"type\": \"integer\", \"describe\": \"Response status code, 0 indicates success\"}, {\"name\": \"msg\", \"type\": \"string\", \"describe\": \"Response message, empty string on success\"}, {\"name\": \"data\", \"type\": \"object\", \"describe\": \"Response data object\"}, {\"name\": \"task_id\", \"type\": \"string\", \"describe\": \"Unique task identifier, located within the data object\"}, {\"name\": \"trace_id\", \"type\": \"string\", \"describe\": \"Request tracking ID\"}], \"title\": \"Response\", \"describe\": \"After the request is successfully processed, the server will return the following response\"}",
    "api_code_demo": "{\"title\": \"Example Request\", \"request\": [{\"title\": \"create video by text or image\", \"language\": \"cURL\", \"code_example\": \"curl --request POST \\\\\\n  --url https://openapi.media.io/generation/kling/i2v-kling-v2-1 \\\\\\n  --header 'Content-Type: application/json' \\\\\\n  --header 'X-[REDACTED_SECRET]' \\\\\\n  --data '\\n{\\n  \\\"data\\\": {\\n    \\\"duration\\\": \\\"5s\\\",\\n    \\\"image\\\": \\\"<string>\\\",\\n    \\\"prompt\\\": \\\"<string>\\\",\\n    \\\"resolution\\\": \\\"720P\\\"\\n  }\\n}'\\n\"}], \"describe\": \"\", \"response\": [{\"type\": \"200\", \"code_example\": \"{\\n  \\\"code\\\": 0,\\n  \\\"msg\\\": \\\"\\\",\\n  \\\"data\\\": {\\n    \\\"task_id\\\": <string>\\\"\\n  },\\n  \\\"trace_id\\\": <string>\\\"\\n}\"}, {\"type\": \"default\", \"code_example\": \"{\\n  \\\"code\\\": <integer>,\\n  \\\"msg\\\": <string>,\\n  \\\"data\\\": {},\\n  \\\"trace_id\\\": <string>\\\"\\n}\"}]}",
    "content": null,
    "status": 1,
    "created_at": "4/3/2026 18:16:03",
    "updated_at": "6/3/2026 15:02:49"
  },
  {
    "id": 251,
    "name": "Kling 2.5 Turbo",
    "model_code": "i2v-kling-v2-5-turbo",
    "method": "POST",
    "endpoint": "https://openapi.media.io/generation/kling/i2v-kling-v2-5-turbo",
    "title": "Kling 2.5 Turbo API Documentation",
    "description": "Offers advanced motion control and high realism, bridging the gap between standard and professional output.",
    "api_header": "{\"list\": [{\"name\": \"X-API-KEY\", \"value\": \"API key to authorize requests\"}, {\"name\": \"Content-Type\", \"value\": \"application/json\"}], \"title\": \"Authorizations\", \"describe\": \"Add the following authorization information in the request header\"}",
    "api_body": "{\"title\": \"Request Body\", \"category\": [{\"list\": [{\"name\": \"image\", \"type\": \"string\", \"describe\": \"The URL of the input image. Supported formats include PNG, JPEG, JPG, WEBP, GIF, and HEIC. File size must be between 0.0 MB and 20.0 MB. Image resolution must be between 300x300 and 4000x4000. Aspect ratio must be between 0.4:1 and 2.5:1.\", \"required\": true}, {\"name\": \"prompt\", \"type\": \"string\", \"describe\": \"The text prompt describing the content to generate. Maximum string length: 2500.\", \"required\": true}, {\"name\": \"duration\", \"type\": \"string\", \"describe\": \"Video duration in seconds. Options: 5s, 10s. Default is 5s.\", \"keywords\": [\"5s\", \"10s\"], \"required\": false}, {\"name\": \"resolution\", \"type\": \"string\", \"describe\": \"Output resolution. Options: 720P, 1080P. Default is 1080P.\", \"keywords\": [\"720P\", \"1080P\"], \"required\": false}], \"title\": \"Image To Video\"}], \"describe\": \"The request body must contain the following parameters\"}",
    "api_request_demo": "{\"title\": \"Example Request\", \"request\": [{\"title\": \"create video by text or image\", \"language\": \"cURL\", \"code_example\": \"curl --request POST \\\\\\n  --url https://openapi.media.io/generation/kling/i2v-kling-v2-5-turbo \\\\\\n  --header 'Content-Type: application/json' \\\\\\n  --header 'X-[REDACTED_SECRET]' \\\\\\n  --data '\\n{\\n  \\\"data\\\": {\\n    \\\"duration\\\": \\\"5s\\\",\\n    \\\"image\\\": \\\"<string>\\\",\\n    \\\"prompt\\\": \\\"<string>\\\",\\n    \\\"resolution\\\": \\\"1080P\\\"\\n  }\\n}'\\n\"}], \"describe\": \"\", \"response\": [{\"type\": \"200\", \"code_example\": \"{\\n  \\\"code\\\": 0,\\n  \\\"msg\\\": \\\"\\\",\\n  \\\"data\\\": {\\n    \\\"task_id\\\": <string>\\\"\\n  },\\n  \\\"trace_id\\\": <string>\\\"\\n}\"}, {\"type\": \"default\", \"code_example\": \"{\\n  \\\"code\\\": <integer>,\\n  \\\"msg\\\": <string>,\\n  \\\"data\\\": {},\\n  \\\"trace_id\\\": <string>\\\"\\n}\"}]}",
    "api_response": "{\"list\": [{\"name\": \"code\", \"type\": \"integer\", \"describe\": \"Response status code, 0 indicates success\"}, {\"name\": \"msg\", \"type\": \"string\", \"describe\": \"Response message, empty string on success\"}, {\"name\": \"data\", \"type\": \"object\", \"describe\": \"Response data object\"}, {\"name\": \"task_id\", \"type\": \"string\", \"describe\": \"Unique task identifier, located within the data object\"}, {\"name\": \"trace_id\", \"type\": \"string\", \"describe\": \"Request tracking ID\"}], \"title\": \"Response\", \"describe\": \"After the request is successfully processed, the server will return the following response\"}",
    "api_code_demo": "{\"title\": \"Example Request\", \"request\": [{\"title\": \"create video by text or image\", \"language\": \"cURL\", \"code_example\": \"curl --request POST \\\\\\n  --url https://openapi.media.io/generation/kling/i2v-kling-v2-5-turbo \\\\\\n  --header 'Content-Type: application/json' \\\\\\n  --header 'X-[REDACTED_SECRET]' \\\\\\n  --data '\\n{\\n  \\\"data\\\": {\\n    \\\"duration\\\": \\\"5s\\\",\\n    \\\"image\\\": \\\"<string>\\\",\\n    \\\"prompt\\\": \\\"<string>\\\",\\n    \\\"resolution\\\": \\\"1080P\\\"\\n  }\\n}'\\n\"}], \"describe\": \"\", \"response\": [{\"type\": \"200\", \"code_example\": \"{\\n  \\\"code\\\": 0,\\n  \\\"msg\\\": \\\"\\\",\\n  \\\"data\\\": {\\n    \\\"task_id\\\": <string>\\\"\\n  },\\n  \\\"trace_id\\\": <string>\\\"\\n}\"}, {\"type\": \"default\", \"code_example\": \"{\\n  \\\"code\\\": <integer>,\\n  \\\"msg\\\": <string>,\\n  \\\"data\\\": {},\\n  \\\"trace_id\\\": <string>\\\"\\n}\"}]}",
    "content": null,
    "status": 1,
    "created_at": "4/3/2026 18:16:03",
    "updated_at": "6/3/2026 15:02:49"
  },
  {
    "id": 257,
    "name": "Kling 2.6",
    "model_code": "i2v-kling-v2-6",
    "method": "POST",
    "endpoint": "https://openapi.media.io/generation/kling/i2v-kling-v2-6",
    "title": "Kling 2.6 API Documentation",
    "description": "Kling AI's video model, recognized for its ability to generate realistic and coherent motion.",
    "api_header": "{\"list\": [{\"name\": \"X-API-KEY\", \"value\": \"API key to authorize requests\"}, {\"name\": \"Content-Type\", \"value\": \"application/json\"}], \"title\": \"Authorizations\", \"describe\": \"Add the following authorization information in the request header\"}",
    "api_body": "{\"title\": \"Request Body\", \"category\": [{\"list\": [{\"name\": \"image\", \"type\": \"string\", \"describe\": \"The URL of the input image. Supported formats include PNG, JPEG, JPG, WEBP, GIF, and HEIC. File size must be between 0.0 MB and 20.0 MB. Image resolution must be between 300x300 and 4000x4000. Aspect ratio must be between 0.4:1 and 2.5:1.\", \"required\": true}, {\"name\": \"prompt\", \"type\": \"string\", \"describe\": \"The text prompt describing the content to generate. Maximum string length: 2500.\", \"required\": true}, {\"name\": \"duration\", \"type\": \"string\", \"describe\": \"Video duration in seconds. Options: 5s, 10s. Default is 5s.\", \"keywords\": [\"5s\", \"10s\"], \"required\": false}, {\"name\": \"generate_audio\", \"type\": \"string\", \"describe\": \"Generate Audio parameter. Options: True, False. Default is True.\", \"keywords\": [\"True\", \"False\"], \"required\": false}], \"title\": \"Image To Video\"}], \"describe\": \"The request body must contain the following parameters\"}",
    "api_request_demo": "{\"title\": \"Example Request\", \"request\": [{\"title\": \"create video by text or image\", \"language\": \"cURL\", \"code_example\": \"curl --request POST \\\\\\n  --url https://openapi.media.io/generation/kling/i2v-kling-v2-6 \\\\\\n  --header 'Content-Type: application/json' \\\\\\n  --header 'X-[REDACTED_SECRET]' \\\\\\n  --data '\\n{\\n  \\\"data\\\": {\\n    \\\"duration\\\": \\\"5s\\\",\\n    \\\"generate_audio\\\": \\\"True\\\",\\n    \\\"image\\\": \\\"<string>\\\",\\n    \\\"prompt\\\": \\\"<string>\\\"\\n  }\\n}'\\n\"}], \"describe\": \"\", \"response\": [{\"type\": \"200\", \"code_example\": \"{\\n  \\\"code\\\": 0,\\n  \\\"msg\\\": \\\"\\\",\\n  \\\"data\\\": {\\n    \\\"task_id\\\": <string>\\\"\\n  },\\n  \\\"trace_id\\\": <string>\\\"\\n}\"}, {\"type\": \"default\", \"code_example\": \"{\\n  \\\"code\\\": <integer>,\\n  \\\"msg\\\": <string>,\\n  \\\"data\\\": {},\\n  \\\"trace_id\\\": <string>\\\"\\n}\"}]}",
    "api_response": "{\"list\": [{\"name\": \"code\", \"type\": \"integer\", \"describe\": \"Response status code, 0 indicates success\"}, {\"name\": \"msg\", \"type\": \"string\", \"describe\": \"Response message, empty string on success\"}, {\"name\": \"data\", \"type\": \"object\", \"describe\": \"Response data object\"}, {\"name\": \"task_id\", \"type\": \"string\", \"describe\": \"Unique task identifier, located within the data object\"}, {\"name\": \"trace_id\", \"type\": \"string\", \"describe\": \"Request tracking ID\"}], \"title\": \"Response\", \"describe\": \"After the request is successfully processed, the server will return the following response\"}",
    "api_code_demo": "{\"title\": \"Example Request\", \"request\": [{\"title\": \"create video by text or image\", \"language\": \"cURL\", \"code_example\": \"curl --request POST \\\\\\n  --url https://openapi.media.io/generation/kling/i2v-kling-v2-6 \\\\\\n  --header 'Content-Type: application/json' \\\\\\n  --header 'X-[REDACTED_SECRET]' \\\\\\n  --data '\\n{\\n  \\\"data\\\": {\\n    \\\"duration\\\": \\\"5s\\\",\\n    \\\"generate_audio\\\": \\\"True\\\",\\n    \\\"image\\\": \\\"<string>\\\",\\n    \\\"prompt\\\": \\\"<string>\\\"\\n  }\\n}'\\n\"}], \"describe\": \"\", \"response\": [{\"type\": \"200\", \"code_example\": \"{\\n  \\\"code\\\": 0,\\n  \\\"msg\\\": \\\"\\\",\\n  \\\"data\\\": {\\n    \\\"task_id\\\": <string>\\\"\\n  },\\n  \\\"trace_id\\\": <string>\\\"\\n}\"}, {\"type\": \"default\", \"code_example\": \"{\\n  \\\"code\\\": <integer>,\\n  \\\"msg\\\": <string>,\\n  \\\"data\\\": {},\\n  \\\"trace_id\\\": <string>\\\"\\n}\"}]}",
    "content": null,
    "status": 1,
    "created_at": "4/3/2026 18:16:03",
    "updated_at": "6/3/2026 15:02:49"
  },
  {
    "id": 253,
    "name": "Kling 3.0",
    "model_code": "i2v-kling-v3-0",
    "method": "POST",
    "endpoint": "https://openapi.media.io/generation/kling/i2v-kling-v3-0",
    "title": "Kling 3.0 API Documentation",
    "description": "The latest high-fidelity generation delivering ultra-realistic motion and superior detail, suitable for professional-grade video production.",
    "api_header": "{\"list\": [{\"name\": \"X-API-KEY\", \"value\": \"API key to authorize requests\"}, {\"name\": \"Content-Type\", \"value\": \"application/json\"}], \"title\": \"Authorizations\", \"describe\": \"Add the following authorization information in the request header\"}",
    "api_body": "{\"title\": \"Request Body\", \"category\": [{\"list\": [{\"name\": \"image\", \"type\": \"string\", \"describe\": \"The URL of the input image. Supported formats include PNG, JPEG, JPG, WEBP, GIF, and HEIC. File size must be between 0.0 MB and 20.0 MB. Image resolution must be between 300x300 and 4000x4000. Aspect ratio must be between 0.4:1 and 2.5:1.\", \"required\": true}, {\"name\": \"prompt\", \"type\": \"string\", \"describe\": \"The text prompt describing the content to generate. Maximum string length: 2500.\", \"required\": true}, {\"name\": \"resolution\", \"type\": \"string\", \"describe\": \"Output resolution. Options: 720P, 1080P. Default is 1080P.\", \"keywords\": [\"720P\", \"1080P\"], \"required\": false}, {\"name\": \"duration\", \"type\": \"string\", \"describe\": \"Video duration in seconds. Options: 5s, 8s, 10s, 15s. Default is 5s.\", \"keywords\": [\"5s\", \"8s\", \"10s\", \"15s\"], \"required\": false}, {\"name\": \"multi_shots\", \"type\": \"string\", \"describe\": \"Multi Shots parameter. Options: True, False. Default is True.\", \"keywords\": [\"True\", \"False\"], \"required\": false}, {\"name\": \"generate_audio\", \"type\": \"string\", \"describe\": \"Generate Audio parameter. Options: True, False. Default is True.\", \"keywords\": [\"True\", \"False\"], \"required\": false}], \"title\": \"Image To Video\"}], \"describe\": \"The request body must contain the following parameters\"}",
    "api_request_demo": "{\"title\": \"Example Request\", \"request\": [{\"title\": \"create video by text or image\", \"language\": \"cURL\", \"code_example\": \"curl --request POST \\\\\\n  --url https://openapi.media.io/generation/kling/i2v-kling-v3-0 \\\\\\n  --header 'Content-Type: application/json' \\\\\\n  --header 'X-[REDACTED_SECRET]' \\\\\\n  --data '\\n{\\n  \\\"data\\\": {\\n    \\\"duration\\\": \\\"5s\\\",\\n    \\\"generate_audio\\\": \\\"True\\\",\\n    \\\"image\\\": \\\"<string>\\\",\\n    \\\"multi_shots\\\": \\\"True\\\",\\n    \\\"prompt\\\": \\\"<string>\\\",\\n    \\\"resolution\\\": \\\"1080P\\\"\\n  }\\n}'\\n\"}], \"describe\": \"\", \"response\": [{\"type\": \"200\", \"code_example\": \"{\\n  \\\"code\\\": 0,\\n  \\\"msg\\\": \\\"\\\",\\n  \\\"data\\\": {\\n    \\\"task_id\\\": <string>\\\"\\n  },\\n  \\\"trace_id\\\": <string>\\\"\\n}\"}, {\"type\": \"default\", \"code_example\": \"{\\n  \\\"code\\\": <integer>,\\n  \\\"msg\\\": <string>,\\n  \\\"data\\\": {},\\n  \\\"trace_id\\\": <string>\\\"\\n}\"}]}",
    "api_response": "{\"list\": [{\"name\": \"code\", \"type\": \"integer\", \"describe\": \"Response status code, 0 indicates success\"}, {\"name\": \"msg\", \"type\": \"string\", \"describe\": \"Response message, empty string on success\"}, {\"name\": \"data\", \"type\": \"object\", \"describe\": \"Response data object\"}, {\"name\": \"task_id\", \"type\": \"string\", \"describe\": \"Unique task identifier, located within the data object\"}, {\"name\": \"trace_id\", \"type\": \"string\", \"describe\": \"Request tracking ID\"}], \"title\": \"Response\", \"describe\": \"After the request is successfully processed, the server will return the following response\"}",
    "api_code_demo": "{\"title\": \"Example Request\", \"request\": [{\"title\": \"create video by text or image\", \"language\": \"cURL\", \"code_example\": \"curl --request POST \\\\\\n  --url https://openapi.media.io/generation/kling/i2v-kling-v3-0 \\\\\\n  --header 'Content-Type: application/json' \\\\\\n  --header 'X-[REDACTED_SECRET]' \\\\\\n  --data '\\n{\\n  \\\"data\\\": {\\n    \\\"duration\\\": \\\"5s\\\",\\n    \\\"generate_audio\\\": \\\"True\\\",\\n    \\\"image\\\": \\\"<string>\\\",\\n    \\\"multi_shots\\\": \\\"True\\\",\\n    \\\"prompt\\\": \\\"<string>\\\",\\n    \\\"resolution\\\": \\\"1080P\\\"\\n  }\\n}'\\n\"}], \"describe\": \"\", \"response\": [{\"type\": \"200\", \"code_example\": \"{\\n  \\\"code\\\": 0,\\n  \\\"msg\\\": \\\"\\\",\\n  \\\"data\\\": {\\n    \\\"task_id\\\": <string>\\\"\\n  },\\n  \\\"trace_id\\\": <string>\\\"\\n}\"}, {\"type\": \"default\", \"code_example\": \"{\\n  \\\"code\\\": <integer>,\\n  \\\"msg\\\": <string>,\\n  \\\"data\\\": {},\\n  \\\"trace_id\\\": <string>\\\"\\n}\"}]}",
    "content": null,
    "status": 1,
    "created_at": "4/3/2026 18:16:03",
    "updated_at": "6/3/2026 15:02:49"
  },
  {
    "id": 258,
    "name": "Motion Control Kling 2.6",
    "model_code": "i2v-motion-control-kling-v2-6",
    "method": "POST",
    "endpoint": "https://openapi.media.io/generation/kling/i2v-motion-control-kling-v2-6",
    "title": "Kling 2.6 API Documentation",
    "description": "Offers advanced motion control and high realism, bridging the gap between standard and professional output.",
    "api_header": "{\"list\": [{\"name\": \"X-API-KEY\", \"value\": \"API key to authorize requests\"}, {\"name\": \"Content-Type\", \"value\": \"application/json\"}], \"title\": \"Authorizations\", \"describe\": \"Add the following authorization information in the request header\"}",
    "api_body": "{\"title\": \"Request Body\", \"category\": [{\"list\": [{\"name\": \"video\", \"type\": \"string\", \"describe\": \"The URL of the input video. Supported formats include MP4 and MOV. File size must be between 0.0 MB and 100.0 MB. Video resolution must be between 720x720 and 2160x2160. Frame rate must be between 24 and 60 FPS. Duration must be between 3 and 30 seconds.\", \"required\": true}, {\"name\": \"image\", \"type\": \"string\", \"describe\": \"The URL of the input image. Supported formats include PNG, JPEG, and JPG. File size must be between 0.0 MB and 10.0 MB. Image resolution must be between 300x300 and 4000x4000. Aspect ratio must be between 1:2 and 2:1.\", \"required\": true}, {\"name\": \"prompt\", \"type\": \"string\", \"describe\": \"The text prompt describing the content to generate. Maximum string length: 2500.\", \"required\": false}], \"title\": \"Motion Control\"}], \"describe\": \"The request body must contain the following parameters\"}",
    "api_request_demo": "{\"title\": \"Example Request\", \"request\": [{\"title\": \"create video by text or image\", \"language\": \"cURL\", \"code_example\": \"curl --request POST \\\\\\n  --url https://openapi.media.io/generation/kling/i2v-motion-control-kling-v2-6 \\\\\\n  --header 'Content-Type: application/json' \\\\\\n  --header 'X-[REDACTED_SECRET]' \\\\\\n  --data '\\n{\\n  \\\"data\\\": {\\n    \\\"image\\\": \\\"<string>\\\",\\n    \\\"prompt\\\": \\\"<string>\\\",\\n    \\\"video\\\": \\\"<string>\\\"\\n  }\\n}'\\n\"}], \"describe\": \"\", \"response\": [{\"type\": \"200\", \"code_example\": \"{\\n  \\\"code\\\": 0,\\n  \\\"msg\\\": \\\"\\\",\\n  \\\"data\\\": {\\n    \\\"task_id\\\": <string>\\\"\\n  },\\n  \\\"trace_id\\\": <string>\\\"\\n}\"}, {\"type\": \"default\", \"code_example\": \"{\\n  \\\"code\\\": <integer>,\\n  \\\"msg\\\": <string>,\\n  \\\"data\\\": {},\\n  \\\"trace_id\\\": <string>\\\"\\n}\"}]}",
    "api_response": "{\"list\": [{\"name\": \"code\", \"type\": \"integer\", \"describe\": \"Response status code, 0 indicates success\"}, {\"name\": \"msg\", \"type\": \"string\", \"describe\": \"Response message, empty string on success\"}, {\"name\": \"data\", \"type\": \"object\", \"describe\": \"Response data object\"}, {\"name\": \"task_id\", \"type\": \"string\", \"describe\": \"Unique task identifier, located within the data object\"}, {\"name\": \"trace_id\", \"type\": \"string\", \"describe\": \"Request tracking ID\"}], \"title\": \"Response\", \"describe\": \"After the request is successfully processed, the server will return the following response\"}",
    "api_code_demo": "{\"title\": \"Example Request\", \"request\": [{\"title\": \"create video by text or image\", \"language\": \"cURL\", \"code_example\": \"curl --request POST \\\\\\n  --url https://openapi.media.io/generation/kling/i2v-motion-control-kling-v2-6 \\\\\\n  --header 'Content-Type: application/json' \\\\\\n  --header 'X-[REDACTED_SECRET]' \\\\\\n  --data '\\n{\\n  \\\"data\\\": {\\n    \\\"image\\\": \\\"<string>\\\",\\n    \\\"prompt\\\": \\\"<string>\\\",\\n    \\\"video\\\": \\\"<string>\\\"\\n  }\\n}'\\n\"}], \"describe\": \"\", \"response\": [{\"type\": \"200\", \"code_example\": \"{\\n  \\\"code\\\": 0,\\n  \\\"msg\\\": \\\"\\\",\\n  \\\"data\\\": {\\n    \\\"task_id\\\": <string>\\\"\\n  },\\n  \\\"trace_id\\\": <string>\\\"\\n}\"}, {\"type\": \"default\", \"code_example\": \"{\\n  \\\"code\\\": <integer>,\\n  \\\"msg\\\": <string>,\\n  \\\"data\\\": {},\\n  \\\"trace_id\\\": <string>\\\"\\n}\"}]}",
    "content": null,
    "status": 1,
    "created_at": "4/3/2026 18:16:03",
    "updated_at": "6/3/2026 15:02:49"
  }
]


path: _meta.json
content: {
  "name": "mediaio-kling-video-generator",
  "description": "Generate AI videos using Kling via Media.io OpenAPI. Supports text-to-video and image-to-video with high visual fidelity, smooth motion, and cinematic quality.",
  "requires": {
    "env": ["API_KEY"]
  },
  "metadata": {
    "mediaio": {
      "emoji": "",
      "priority": "P0",
      "core_goal_keywords": ["text-to-video", "image-to-video"],
      "trigger_keywords": ["Kling", "Kling AI", "Kling video generator", "Kling AI video"]
    },
    "publisher": "Community Maintainer",
    "source": "https://platform.media.io/docs/"
  }
}

Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)