- Home
- Documentation
- get_video_info
get_video_info
Returns public information about a YouTube video. Does not use the transcription quota. Requires an account, like the other tools.
Get YouTube metadata. REST: POST /v1/info
Parameters
Send the video link in the required field.
| Name | Type | Required | Description |
|---|---|---|---|
url | string | Yes | URL or ID of a YouTube video. Accepts the same link formats as the other tools; playlists are not supported. |
Examples
The example uses your own fictional workshop.
Get the title, channel, duration and caption languages of this video: youtu.be/MinhaAula_0
Your assistant calls get_video_info with {"url": "youtu.be/MinhaAula_0"} and answers with the metadata.
curl -X POST https://mcp.mcptube.com/v1/info \ -H "Authorization: Bearer mct_YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"url": "youtu.be/MinhaAula_0"}'
Response
The response contains the requested information.
The REST API returns the result directly as JSON with HTTP 200, no job. On MCP, the first block is a summary, such as My workshop | My channel | 42:00. The next block contains the same fields as key: value lines, with indented lists and objects, not JSON. REST response example:
{
"videoId": "MinhaAula_0",
"url": "https://www.youtube.com/watch?v=MinhaAula_0",
"title": "Spreadsheets from scratch for small businesses",
"channel": "Ana Ribeiro | Finanças sem Mistério",
"channelId": "UCa9Rk2pLm7QwX4sTn1vB3cE",
"durationSeconds": 2520,
"uploadDate": "2026-10-21",
"viewCount": 1240,
"category": "Education",
"keywords": [
"planilha",
"finanças",
"pequenos negócios"
],
"description": "A workshop on organizing a small business’s finances.",
"thumbnailUrl": "https://i.ytimg.com/vi/MinhaAula_0/hqdefault.jpg",
"isLive": false,
"chapters": [
{
"title": "Why split by category",
"start": 130,
"end": 875
},
{
"title": "Building the spreadsheet live",
"start": 875,
"end": 1880
},
{
"title": "Three common mistakes",
"start": 1880,
"end": 2520
}
],
"subtitles": [
{
"language": "pt",
"name": "Português",
"autoGenerated": false
}
]
}| Field | Content |
|---|---|
videoId, url | Video ID and address. |
title, channel, channelId | Title, channel name and ID. channelId can be null. |
durationSeconds, uploadDate, viewCount | Duration in seconds, upload date and views. |
category, keywords, description | Category, keywords and description. |
thumbnailUrl, isLive | Thumbnail address and live video indicator. |
chapters | Available chapters; an empty list when there are none. |
subtitles | Available captions with language, name and autoGenerated indicating automatic captions. Does not include caption text. |
Limits
Requests share metadataPerDay with search_videos and get_video_comments, without using the transcription quota. Each successful lookup or search or comments page, even empty, uses 1 metadata unit. Failures and blocked requests are not charged. The limit of 10 calls per minute is shared with search_videos, get_video_comments and get_usage, including the corresponding REST routes.
| Limit | Free | Starter | Pro |
|---|---|---|---|
| Metadata per day, shared | 50 | 600 | 5,000 |
| Calls per minute, shared | 10 | 10 | 10 |
Errors
Use the code to choose the next step.
| Situation | Code | HTTP | What to do |
|---|---|---|---|
| Invalid URL or playlist | invalid_url | 400 | Check the video link |
| Video unavailable | video_unavailable | 404 | Check its availability |
| Too many calls per minute | rate_limited | 429 | Wait for Retry-After |
| Daily limit reached | metadata_daily_limit | 429 | Wait until 0h UTC |
| We could not process the video right now | youtube_blocked | 503 | Try again in a few minutes |