Get a video
- MCP tool
get_video- CLI
kinetune videos get
Try it with your own API key: it runs on that key's workspace, so a real key reads your real songs, videos and credits. Reads and quotes only; nothing is charged.
Status, progress, credits and, when completed, the download links
status is queued, processing, completed, failed or cancelled. While it waits, queue says why: plan_limit (the organization already makes as many videos at once as its plan allows; position is its place in line) or render_capacity (every render machine is busy; estimated_wait_seconds is about how long). Completed videos have outputs with download_url (full quality), web_url (720p) and poster_url, signed for 7 days. A lyric video's poster is a frame with one whole lyric line on screen (the hook when it can be), ready to set as the thumbnail where you post it; a Canvas's is its first frame; a music video's a frame of its first seconds. poster_seconds says where in that file the poster was cut, for posts that take a cover frame offset instead of an image (TikTok); null on videos made before it was kept. Failed videos have error and error_code; AI_VIDEO_UNAVAILABLE means the AI video couldn’t be made for a reason on our side, so make it again later.
AuthorizationBearer <token>An organization API key (kt_live_…) or an OAuth access token
video_id*stringThe video id
1 <= length <= 120OK
application/json- response
id*stringtype*string"lyric-video""canvas""music-video"variation*integer-9007199254740991 <= value <= 9007199254740991variation_count*integer-9007199254740991 <= value <= 9007199254740991quote_id*string|nullstatus*string"queued""processing""completed""failed""cancelled"stage*stringThe step it is at while it is made
progress*number0–100
queue*|Why the video is waiting, while it waits (its plan's limit, or every render machine busy); null otherwise
outputs*array<>One file per format, once delivered
song*request*What the video was made from, with your metadata
look_id*string|nulllook*|nullcanvas?|A Canvas: its design and, for stock, the credit to show
music_video?|A music video's plan, once the director made it (null before)
quoted_credits*number|nullcharged_credits*number|nullerror*string|nullerror_code*string|nullretry_of_job_id*string|nullcreated_at*stringupdated_at*string[key: string]?unknowncurl -X GET 'https://kinetune.com/api/v1/videos/string'{
"id": "string",
"type": "lyric-video",
"variation": -9007199254740991,
"variation_count": -9007199254740991,
"quote_id": "string",
"status": "queued",
"stage": "string",
"progress": 0,
"queue": {
"reason": "plan_limit",
"position": -9007199254740991,
"estimated_wait_seconds": -9007199254740991
},
"outputs": [
{
"aspect_ratio": "9:16",
"url": "string",
"download_url": "string",
"web_url": "string",
"poster_url": "string",
"poster_seconds": 0,
"url_expires_in_seconds": -9007199254740991,
"duration_seconds": 0,
"size_bytes": -9007199254740991,
"bitrate_kbps": -9007199254740991,
"web_size_bytes": -9007199254740991,
"property1": null,
"property2": null
}
],
"song": {
"id": "string",
"title": "string",
"artist_name": "string"
},
"request": {
"property1": null,
"property2": null
},
"look_id": "string",
"look": {
"property1": null,
"property2": null
},
"canvas": {
"property1": null,
"property2": null
},
"music_video": {
"title": "string",
"concept": "string",
"style": "string",
"clips": -9007199254740991,
"cast": {
"face_photo_id": "string",
"outfit_photo_id": "string"
},
"world": {
"setting": "string",
"wardrobe": "string",
"light": "string"
},
"shots": [
{
"index": -9007199254740991,
"start_seconds": 0,
"end_seconds": 0,
"section": "string",
"lyrics": "string",
"summary": "string"
}
]
},
"quoted_credits": 0,
"charged_credits": 0,
"error": "string",
"error_code": "string",
"retry_of_job_id": "string",
"created_at": "string",
"updated_at": "string",
"property1": null,
"property2": null
}