KL

klingai-hello-world

A fast, minimal Python example to create and download your first video using the Kling AI API.

Install

mkdir -p .claude/skills/klingai-hello-world && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/5415" && unzip -o skill.zip -d .claude/skills/klingai-hello-world && rm skill.zip

Installs to .claude/skills/klingai-hello-world

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Create your first Kling AI video generation with a minimal working example.
75 charsno explicit “when” trigger
Beginner

Key capabilities

  • Generate AI video from text prompts
  • Poll task status for completion
  • Retrieve generated video URLs
  • Handle task failure messages
  • Authenticate requests using JWT

How it works

The process submits a text-to-video request, receives a task ID, and polls the status endpoint until the task succeeds or fails.

Inputs & outputs

You give it
Text prompt and model configuration
You get back
URL to the generated video file

When to use klingai-hello-world

  • Testing Kling AI setup
  • Generating first video task
  • Verifying API authentication
  • Quick prototype testing

About this skill

Kling AI Hello World

Overview

Generate your first AI video in under 20 lines of code. This skill walks through the complete create-poll-download cycle using the Kling AI REST API.

Base URL: https://api.klingai.com/v1

Prerequisites

  • Completed klingai-install-auth setup
  • Python 3.8+ with requests and PyJWT
  • At least 10 credits in your Kling AI account

Minimal Example — Python

import jwt, time, os, requests

# --- Auth ---
def get_token():
    ak = os.environ["KLING_ACCESS_KEY"]
    sk = os.environ["KLING_SECRET_KEY"]
    payload = {"iss": ak, "exp": int(time.time()) + 1800, "nbf": int(time.time()) - 5}
    return jwt.encode(payload, sk, algorithm="HS256",
                      headers={"alg": "HS256", "typ": "JWT"})

BASE = "https://api.klingai.com/v1"
HEADERS = {"Authorization": f"Bearer {get_token()}", "Content-Type": "application/json"}

# --- Step 1: Create task ---
task = requests.post(f"{BASE}/videos/text2video", headers=HEADERS, json={
    "model_name": "kling-v2-master",
    "prompt": "A golden retriever running through autumn leaves in slow motion, cinematic lighting",
    "duration": "5",
    "aspect_ratio": "16:9",
    "mode": "standard",
}).json()

task_id = task["data"]["task_id"]
print(f"Task created: {task_id}")

# --- Step 2: Poll until complete ---
import time as t
while True:
    t.sleep(10)
    status = requests.get(f"{BASE}/videos/text2video/{task_id}", headers=HEADERS).json()
    state = status["data"]["task_status"]
    print(f"Status: {state}")
    if state == "succeed":
        video_url = status["data"]["task_result"]["videos"][0]["url"]
        print(f"Video ready: {video_url}")
        break
    elif state == "failed":
        print(f"Failed: {status['data']['task_status_msg']}")
        break

Minimal Example — Node.js

import jwt from "jsonwebtoken";

const BASE = "https://api.klingai.com/v1";

function getHeaders() {
  const token = jwt.sign(
    { iss: process.env.KLING_ACCESS_KEY, exp: Math.floor(Date.now() / 1000) + 1800,
      nbf: Math.floor(Date.now() / 1000) - 5 },
    process.env.KLING_SECRET_KEY,
    { algorithm: "HS256", header: { typ: "JWT" } }
  );
  return { Authorization: `Bearer ${token}`, "Content-Type": "application/json" };
}

// Create task
const res = await fetch(`${BASE}/videos/text2video`, {
  method: "POST",
  headers: getHeaders(),
  body: JSON.stringify({
    model_name: "kling-v2-master",
    prompt: "A golden retriever running through autumn leaves in slow motion",
    duration: "5",
    aspect_ratio: "16:9",
    mode: "standard",
  }),
});
const { data } = await res.json();
console.log(`Task: ${data.task_id}`);

// Poll
const poll = setInterval(async () => {
  const r = await fetch(`${BASE}/videos/text2video/${data.task_id}`, { headers: getHeaders() });
  const s = await r.json();
  if (s.data.task_status === "succeed") {
    console.log("Video:", s.data.task_result.videos[0].url);
    clearInterval(poll);
  } else if (s.data.task_status === "failed") {
    console.error("Failed:", s.data.task_status_msg);
    clearInterval(poll);
  }
}, 10000);

Response Shape

{
  "code": 0,
  "message": "success",
  "data": {
    "task_id": "abc123...",
    "task_status": "succeed",
    "task_result": {
      "videos": [{
        "id": "vid_001",
        "url": "https://cdn.klingai.com/...",
        "duration": "5.0"
      }]
    }
  }
}

Task Status Values

StatusMeaning
submittedTask queued, waiting for processing
processingVideo generation in progress
succeedComplete — video URL available
failedGeneration failed — check task_status_msg

Common First-Run Issues

ProblemFix
401 responseJWT token expired or AK/SK wrong
task_status: failedPrompt too vague — add visual detail
Empty videos arrayTask still processing — poll longer
Slow generationStandard mode takes 60-120s; use mode: "standard" for first test

Cost

  • 5-second standard video = 10 credits
  • Free tier: 66 credits/day (refreshes daily, no rollover)

Resources

When not to use it

  • Using the free tier for high-volume production workloads
  • Ignoring task failure status messages

Prerequisites

Kling AI accountPython 3.8+ or Node.js 18+10 credits in Kling AI account

Limitations

  • Standard mode generation takes 60-120 seconds
  • Free tier credits do not rollover

How it compares

This provides a minimal code example for the full API lifecycle rather than using a pre-built SDK or web interface.

Compared to similar skills

klingai-hello-world side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
klingai-hello-world (this skill)125dCautionBeginner
copilot-sdk73moReviewIntermediate
api-test-generator19moReviewIntermediate
generating-api-sdks125dReviewAdvanced

Try saying

Example prompts that trigger this skill in your AI assistant.

More by jeremylongshore

View all by jeremylongshore

analyzing-logs

jeremylongshore

Analyze application logs to detect performance issues, identify error patterns, and improve stability by extracting key insights.

14123

ollama-setup

jeremylongshore

Configure auto-configure Ollama when user needs local LLM deployment, free AI alternatives, or wants to eliminate hosted API costs. Trigger phrases: "install ollama", "local AI", "free LLM", "self-hosted AI", "replace OpenAI", "no API costs". Use when appropriate context detected. Trigger with relevant phrases based on skill purpose.

1167

backtesting-trading-strategies

jeremylongshore

Backtest crypto and traditional trading strategies against historical data. Calculates performance metrics (Sharpe, Sortino, max drawdown), generates equity curves, and optimizes strategy parameters. Use when user wants to test a trading strategy, validate signals, or compare approaches. Trigger with phrases like "backtest strategy", "test trading strategy", "historical performance", "simulate trades", "optimize parameters", or "validate signals".

1071

generating-database-seed-data

jeremylongshore

Process this skill enables AI assistant to generate realistic test data and database seed scripts for development and testing environments. it uses faker libraries to create realistic data, maintains relational integrity, and allows configurable data volumes. u... Use when working with databases or data models. Trigger with phrases like 'database', 'query', or 'schema'.

1033

cursor-codebase-indexing

jeremylongshore

Execute set up and optimize Cursor codebase indexing. Triggers on "cursor index setup", "codebase indexing", "index codebase", "cursor semantic search". Use when working with cursor codebase indexing functionality. Trigger with phrases like "cursor codebase indexing", "cursor indexing", "cursor".

885

testing-mobile-apps

jeremylongshore

Execute mobile app testing on iOS and Android devices/simulators. Use when performing specialized testing. Trigger with phrases like "test mobile app", "run iOS tests", or "validate Android functionality".

810

You might also like

copilot-sdk

github

Build agentic applications with GitHub Copilot SDK. Use when embedding AI agents in apps, creating custom tools, implementing streaming responses, managing sessions, connecting to MCP servers, or creating custom agents. Triggers on Copilot SDK, GitHub SDK, agentic app, embed Copilot, programmable agent, MCP server, custom agent.

763

api-test-generator

mikopbx

Генерация полных Python pytest тестов для REST API эндпоинтов с валидацией схемы. Использовать при создании тестов для новых эндпоинтов, добавлении покрытия для CRUD операций или валидации соответствия API с OpenAPI схемами.

16

generating-api-sdks

jeremylongshore

Generate client SDKs in multiple languages from OpenAPI specifications. Use when generating client libraries for API consumption. Trigger with phrases like "generate SDK", "create client library", or "build API SDK".

13

agentica-sdk

parcadei

Build Python agents with Agentica SDK - @agentic decorator, spawn(), persistence, MCP integration

12

generating-rest-apis

jeremylongshore

Generate complete REST API implementations from OpenAPI specifications or database schemas. Use when generating RESTful API implementations. Trigger with phrases like "generate REST API", "create RESTful API", or "build REST endpoints".

02

replit-sdk-patterns

jeremylongshore

Apply production-ready Replit SDK patterns for TypeScript and Python. Use when implementing Replit integrations, refactoring SDK usage, or establishing team coding standards for Replit. Trigger with phrases like "replit SDK patterns", "replit best practices", "replit code patterns", "idiomatic replit".

11

Search skills

Search the agent skills registry