YouTube Video API

Πρόσβαση σε εκτεταμένα δεδομένα βίντεο YouTube, συμπεριλαμβανομένων πληροφοριών βίντεο, σχολίων, στατιστικών, αφοσίωσης και ελέγχου με AI.

Τι μπορείτε να κάνετε;
Αναλυτικά δεδομένα βίντεο

Λάβετε τίτλο, περιγραφή, ημερομηνία δημοσίευσης, διάρκεια, κατηγορία, γλώσσα και πολλά ακόμα.

Στατιστικά και αφοσίωση

Ανακτήστε προβολές, likes και αριθμό σχολίων και υπολογίστε το ποσοστό αφοσίωσης.

Έλεγχος με AI

Λάβετε προτάσεις βασισμένες σε GPT για βελτίωση του SEO και της αφοσίωσης του βίντεό σας.

Δοκιμή ζωντανά
99.9 % Διαθεσιμότητα
59ms Απάντηση
20 req/s
0.009 Πιστωτικές μονάδες / αίτημα

Basic Information


POST https://api.yeb.to/v1/youtube/video/information
ΠαράμετροςΤύποςΑπαιτ.Περιγραφή
api_key string ναι Your API key
video string ναι Video ID (11 chars) **or** full YouTube URL

Παράδειγμα

curl -X POST https://api.yeb.to/v1/youtube/video/information \
  -H "Content-Type: application/json" \
  -d '{"api_key":"YOUR_KEY","video":"dQw4w9WgXcQ"}'

Παράδειγμα απάντησης

{
  "video": {
    "id":           "dQw4w9WgXcQ",
    "title":        "Rick Astley – Never Gonna Give You Up",
    "description":  "The official video for…",
    "duration":     "PT3M32S",
    "publishedAt":  "1987-10-25T00:00:00Z",
    "categoryId":   "10",
    "categoryName": "Music",
    "channelId":    "UCuAXFkgsw1L7xaCfnd5JJOw",
    "channelTitle": "Official Rick Astley",
    "statistics": {
      "viewCount":    "1 440 000 000",
      "likeCount":    "15 600 000",
      "commentCount": "1 900 000"
    },
    "thumbnails": { … },
    "contentDetails": { … },
    "snippet": { … }
  }
}
{"error":"Video not found","code":404}

Κωδικοί απάντησης

ΚωδικόςΠεριγραφή
200 SuccessΤο αίτημα επεξεργάστηκε επιτυχώς.
400 Bad RequestΗ επικύρωση εισόδου απέτυχε.
401 UnauthorizedΚλειδί API λείπει ή είναι λάθος.
403 ForbiddenΚλειδί ανενεργό ή μη επιτρεπόμενο.
429 Rate LimitΠάρα πολλά αιτήματα.
500 Server ErrorΜη αναμενόμενο σφάλμα.

Information

youtube/video/information 0.0090 credits

Parameters

API Key
body · string · required
Video
body · string · required

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

Video Tags


POST https://api.yeb.to/v1/youtube/video/tags
ΠαράμετροςΤύποςΑπαιτ.Περιγραφή
api_key string ναι Your API key
video string ναι Video ID or URL

Παράδειγμα

curl -X POST https://api.yeb.to/v1/youtube/video/tags \
  -H "Content-Type: application/json" \
  -d '{"api_key":"YOUR_KEY","video":"dQw4w9WgXcQ"}'

Παράδειγμα απάντησης

{"tags":["80s","Rick Astley","Official Video"]}
{"error":"Tags unavailable","code":204}

Κωδικοί απάντησης

ΚωδικόςΠεριγραφή
200 SuccessΤο αίτημα επεξεργάστηκε επιτυχώς.
400 Bad RequestΗ επικύρωση εισόδου απέτυχε.
401 UnauthorizedΚλειδί API λείπει ή είναι λάθος.
403 ForbiddenΚλειδί ανενεργό ή μη επιτρεπόμενο.
429 Rate LimitΠάρα πολλά αιτήματα.
500 Server ErrorΜη αναμενόμενο σφάλμα.

Tags

youtube/video/tags 0.0030 credits

Parameters

API Key
body · string · required
Video
body · string · required

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

Top Comments


POST https://api.yeb.to/v1/youtube/video/comments
ΠαράμετροςΤύποςΑπαιτ.Περιγραφή
api_key string ναι Your API key
video string ναι Video ID or URL
limit int προαιρ. 1-100, default 50
order string προαιρ. relevance (default) | time
repliesOn bool προαιρ. true = include replies

Παράδειγμα

curl -X POST https://api.yeb.to/v1/youtube/video/comments \
  -H "Content-Type: application/json" \
  -d '{
    "api_key":   "YOUR_KEY",
    "video":     "dQw4w9WgXcQ",
    "limit":     25,
    "order":     "time",
    "repliesOn": true
  }'

Παράδειγμα απάντησης

{
  "cnt_comments": 25,
  "comments": [
    {
      "id":"Ugzx…",
      "author":"Alice",
      "text":"Still a banger!",
      "likes":42,
      "published":"2025-06-01T12:34:00Z",
      "replies":{
        "cnt":2,
        "items":[{"id":"Ugy…","author":"Bob","text":"100 %","likes":3,"published":"…"}]
      }
    }
  ]
}
{"error":"Comments disabled","code":403}

Κωδικοί απάντησης

ΚωδικόςΠεριγραφή
200 SuccessΤο αίτημα επεξεργάστηκε επιτυχώς.
400 Bad RequestΗ επικύρωση εισόδου απέτυχε.
401 UnauthorizedΚλειδί API λείπει ή είναι λάθος.
403 ForbiddenΚλειδί ανενεργό ή μη επιτρεπόμενο.
429 Rate LimitΠάρα πολλά αιτήματα.
500 Server ErrorΜη αναμενόμενο σφάλμα.

Comments

youtube/video/comments 0.0090 credits

Parameters

API Key
body · string · required
Video
body · string · required
Limit
body · string
Order
body · string
Include replies
body · string

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

Settings / Status


POST https://api.yeb.to/v1/youtube/video/settings
ΠαράμετροςΤύποςΑπαιτ.Περιγραφή
api_key string ναι Your API key
video string ναι Video ID or URL

Παράδειγμα

curl -X POST https://api.yeb.to/v1/youtube/video/settings \
  -H "Content-Type: application/json" \
  -d '{"api_key":"YOUR_KEY","video":"dQw4w9WgXcQ"}'

Παράδειγμα απάντησης

{
   "settings": {
    "privacyStatus":       "public",
    "license":             "creativeCommon",
    "embeddable":          true,
       "publicStatsViewable": true,
   "disableComments":     false,
    "madeForKids":         false,
    "ageLimit":            false,
    "projection":          "rectangular",
   "recordingDate":       "2025-07-14",
    "locationDescription": "Berlin, Germany",

    "categoryId":          "25",
    "categoryName":        "News & Politics",
    "language":            "bg",
    "region":              "bg"
  }}
{"error":"Video not found","code":404}

Κωδικοί απάντησης

ΚωδικόςΠεριγραφή
200 SuccessΤο αίτημα επεξεργάστηκε επιτυχώς.
400 Bad RequestΗ επικύρωση εισόδου απέτυχε.
401 UnauthorizedΚλειδί API λείπει ή είναι λάθος.
403 ForbiddenΚλειδί ανενεργό ή μη επιτρεπόμενο.
429 Rate LimitΠάρα πολλά αιτήματα.
500 Server ErrorΜη αναμενόμενο σφάλμα.

Settings

youtube/video/settings 0.0040 credits

Parameters

API Key
body · string · required
Video
body · string · required

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

Restrictions


POST https://api.yeb.to/v1/youtube/video/restricted
ΠαράμετροςΤύποςΑπαιτ.Περιγραφή
api_key string ναι Your API key
video string ναι Video ID or URL

Παράδειγμα

curl -X POST https://api.yeb.to/v1/youtube/video/restricted \
  -H "Content-Type: application/json" \
  -d '{"api_key":"YOUR_KEY","video":"dQw4w9WgXcQ"}'

Παράδειγμα απάντησης

{
    "restrictions": {
      "geoBlocked":    false,
      "ageRestricted": false,
      "blocked":       [],
      "allowed":       [],
      "embeddable":    true,
      "madeForKids":   false,
      "license":       "youtube",
      "privacyStatus": "public"
    }
  }
{"error":"Video removed","code":410}

Κωδικοί απάντησης

ΚωδικόςΠεριγραφή
200 SuccessΤο αίτημα επεξεργάστηκε επιτυχώς.
400 Bad RequestΗ επικύρωση εισόδου απέτυχε.
401 UnauthorizedΚλειδί API λείπει ή είναι λάθος.
403 ForbiddenΚλειδί ανενεργό ή μη επιτρεπόμενο.
429 Rate LimitΠάρα πολλά αιτήματα.
500 Server ErrorΜη αναμενόμενο σφάλμα.

Restrictions

youtube/video/restricted 0.0030 credits

Parameters

API Key
body · string · required
Video
body · string · required

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

Trending Check


POST https://api.yeb.to/v1/youtube/video/trending
ΠαράμετροςΤύποςΑπαιτ.Περιγραφή
api_key string ναι Your API key
video string ναι Video ID or URL
country string προαιρ. ISO country (US default)
categoryId string προαιρ. Optional numeric ID

Παράδειγμα

curl -X POST https://api.yeb.to/v1/youtube/video/trending \
  -H "Content-Type: application/json" \
  -d '{"api_key":"YOUR_KEY","video":"dQw4w9WgXcQ","country":"GB"}'

Παράδειγμα απάντησης

{
    "trending": {
      "country":      "GB",
      "categoryId":   null,
      "categoryName": null,
      "isTrending":   true,
      "position":     17
    }
  }
{"error":"Quota exceeded","code":429}

Κωδικοί απάντησης

ΚωδικόςΠεριγραφή
200 SuccessΤο αίτημα επεξεργάστηκε επιτυχώς.
400 Bad RequestΗ επικύρωση εισόδου απέτυχε.
401 UnauthorizedΚλειδί API λείπει ή είναι λάθος.
403 ForbiddenΚλειδί ανενεργό ή μη επιτρεπόμενο.
429 Rate LimitΠάρα πολλά αιτήματα.
500 Server ErrorΜη αναμενόμενο σφάλμα.

Trending?

youtube/video/trending 0.0020 credits

Parameters

API Key
body · string · required
Video
body · string · required
Country
body · string
Category ID
body · string

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

Statistics


POST https://api.yeb.to/v1/youtube/video/statistics
ΠαράμετροςΤύποςΑπαιτ.Περιγραφή
api_key string ναι Your API key
video string ναι Video ID or URL

Παράδειγμα

curl -X POST https://api.yeb.to/v1/youtube/video/statistics \
  -H "Content-Type: application/json" \
  -d '{"api_key":"YOUR_KEY","video":"dQw4w9WgXcQ"}'

Παράδειγμα απάντησης

{
  "statistics": {
    "views"      : 1580000000,
    "likes"      : 15400000,
    "comments"   : 1120000,
    "favourites" : 45000
  }
}
{"error":"Video not found","code":404}

Κωδικοί απάντησης

ΚωδικόςΠεριγραφή
200 SuccessΤο αίτημα επεξεργάστηκε επιτυχώς.
400 Bad RequestΗ επικύρωση εισόδου απέτυχε.
401 UnauthorizedΚλειδί API λείπει ή είναι λάθος.
403 ForbiddenΚλειδί ανενεργό ή μη επιτρεπόμενο.
429 Rate LimitΠάρα πολλά αιτήματα.
500 Server ErrorΜη αναμενόμενο σφάλμα.

Statistics

youtube/video/statistics 0.0040 credits

Parameters

API Key
body · string · required
Video
body · string · required

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

Watch-Time Estimate


POST https://api.yeb.to/v1/youtube/video/watchtime-estimate
ΠαράμετροςΤύποςΑπαιτ.Περιγραφή
api_key string ναι Your API key
video string ναι Video ID or URL
avgRetention float προαιρ. Override (0-1). e.g. 0.55

Παράδειγμα

curl -X POST https://api.yeb.to/v1/youtube/video/watchtime-estimate \
  -H "Content-Type: application/json" \
  -d '{"api_key":"YOUR_KEY","video":"dQw4w9WgXcQ"}'

Παράδειγμα απάντησης

{
  "watchtime": {
    "views":        739,
    "durationSec":  1733,
    "avgRetention": 0.30,
    "perViewSec":   520,
    "seconds":      384206,
    "watchHours":   106.7

}
}
{"error":"Video not found","code":404}

Κωδικοί απάντησης

ΚωδικόςΠεριγραφή
200 SuccessΤο αίτημα επεξεργάστηκε επιτυχώς.
400 Bad RequestΗ επικύρωση εισόδου απέτυχε.
401 UnauthorizedΚλειδί API λείπει ή είναι λάθος.
403 ForbiddenΚλειδί ανενεργό ή μη επιτρεπόμενο.
429 Rate LimitΠάρα πολλά αιτήματα.
500 Server ErrorΜη αναμενόμενο σφάλμα.

Watch-Time

youtube/video/watchtime-estimate 0.0030 credits

Parameters

API Key
body · string · required
Video
body · string · required
Average Retention
body · string

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

Engagement Rate


POST https://api.yeb.to/v1/youtube/video/engagement-rate
ΠαράμετροςΤύποςΑπαιτ.Περιγραφή
api_key string ναι Your API key
video string ναι Video ID or URL

Παράδειγμα

curl -X POST https://api.yeb.to/v1/youtube/video/engagement-rate \
  -H "Content-Type: application/json" \
  -d '{"api_key":"YOUR_KEY","video":"dQw4w9WgXcQ"}'

Παράδειγμα απάντησης

{
  "engagement": {
    "views":     1580000000,
    "likes":     15400000,
    "comments":  1120000,
    "rate":      0.011
  }
}
{"error":"Video not found","code":404}

Κωδικοί απάντησης

ΚωδικόςΠεριγραφή
200 SuccessΤο αίτημα επεξεργάστηκε επιτυχώς.
400 Bad RequestΗ επικύρωση εισόδου απέτυχε.
401 UnauthorizedΚλειδί API λείπει ή είναι λάθος.
403 ForbiddenΚλειδί ανενεργό ή μη επιτρεπόμενο.
429 Rate LimitΠάρα πολλά αιτήματα.
500 Server ErrorΜη αναμενόμενο σφάλμα.

Engagement

youtube/video/engagement-rate 0.0030 credits

Parameters

API Key
body · string · required
Video
body · string · required

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

Thumbnail URLs


POST https://api.yeb.to/v1/youtube/video/thumbnail
ΠαράμετροςΤύποςΑπαιτ.Περιγραφή
api_key string ναι Your API key
video string ναι Video ID or URL

Παράδειγμα

curl -X POST https://api.yeb.to/v1/youtube/video/thumbnail \
  -H "Content-Type: application/json" \
  -d '{"api_key":"YOUR_KEY","video":"dQw4w9WgXcQ"}'

Παράδειγμα απάντησης

{
  "thumbnails": {
    "default":  "https://i.ytimg.com/vi/dQw4w9WgXcQ/default.jpg",
    "medium":   "https://i.ytimg.com/vi/dQw4w9WgXcQ/mqdefault.jpg",
    "high":     "https://i.ytimg.com/vi/dQw4w9WgXcQ/hqdefault.jpg",
    "standard": "https://i.ytimg.com/vi/dQw4w9WgXcQ/sddefault.jpg",
    "maxres":   "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg"
  }
}
{"error":"Video not found","code":404}

Κωδικοί απάντησης

ΚωδικόςΠεριγραφή
200 SuccessΤο αίτημα επεξεργάστηκε επιτυχώς.
400 Bad RequestΗ επικύρωση εισόδου απέτυχε.
401 UnauthorizedΚλειδί API λείπει ή είναι λάθος.
403 ForbiddenΚλειδί ανενεργό ή μη επιτρεπόμενο.
429 Rate LimitΠάρα πολλά αιτήματα.
500 Server ErrorΜη αναμενόμενο σφάλμα.

Thumbnail URLs

youtube/video/thumbnail 0.0010 credits

Parameters

API Key
body · string · required
Video
body · string · required

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

Playlists Featuring This Video


POST https://api.yeb.to/v1/youtube/video/search-playlists
ΠαράμετροςΤύποςΑπαιτ.Περιγραφή
api_key string ναι Your API key
video string ναι Video ID or URL
limit int προαιρ. 1-50, default 50

Παράδειγμα

curl -X POST https://api.yeb.to/v1/youtube/video/search-playlists \
  -H "Content-Type: application/json" \
  -d '{"api_key":"YOUR_KEY","video":"dQw4w9WgXcQ","limit":10}'

Παράδειγμα απάντησης

{
  "cnt_playlists": 2,
  "playlists": [
    {"id":"PL123…","title":"Best 80s Hits","url":"https://…","found":true},
    {"id":"PL456…","title":"Rick Astley Favs","url":"https://…","found":true}
  ]
}
{"error":"Video not found","code":404}

Κωδικοί απάντησης

ΚωδικόςΠεριγραφή
200 SuccessΤο αίτημα επεξεργάστηκε επιτυχώς.
400 Bad RequestΗ επικύρωση εισόδου απέτυχε.
401 UnauthorizedΚλειδί API λείπει ή είναι λάθος.
403 ForbiddenΚλειδί ανενεργό ή μη επιτρεπόμενο.
429 Rate LimitΠάρα πολλά αιτήματα.
500 Server ErrorΜη αναμενόμενο σφάλμα.

Search Playlists

youtube/video/search-playlists 0.0100 credits

Parameters

API Key
body · string · required
Video
body · string · required
Limit
body · string

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

Extract Links


POST https://api.yeb.to/v1/youtube/video/extract-links
ΠαράμετροςΤύποςΑπαιτ.Περιγραφή
api_key string ναι Your API key
video string ναι Video ID or URL

Παράδειγμα

curl -X POST https://api.yeb.to/v1/youtube/video/extract-links \
  -H "Content-Type: application/json" \
  -d '{"api_key":"YOUR_KEY","video":"dQw4w9WgXcQ"}'

Παράδειγμα απάντησης

Κωδικοί απάντησης

ΚωδικόςΠεριγραφή
200 SuccessΤο αίτημα επεξεργάστηκε επιτυχώς.
400 Bad RequestΗ επικύρωση εισόδου απέτυχε.
401 UnauthorizedΚλειδί API λείπει ή είναι λάθος.
403 ForbiddenΚλειδί ανενεργό ή μη επιτρεπόμενο.
429 Rate LimitΠάρα πολλά αιτήματα.
500 Server ErrorΜη αναμενόμενο σφάλμα.

Extract Links

youtube/video/extract-links 0.0020 credits

Parameters

API Key
body · string · required
Video
body · string · required

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

Extract Hashtags


POST https://api.yeb.to/v1/youtube/video/extract-hashtags
ΠαράμετροςΤύποςΑπαιτ.Περιγραφή
api_key string ναι Your API key
video string ναι Video ID or URL

Παράδειγμα

curl -X POST https://api.yeb.to/v1/youtube/video/extract-hashtags \
  -H "Content-Type: application/json" \
  -d '{"api_key":"YOUR_KEY","video":"dQw4w9WgXcQ"}'

Παράδειγμα απάντησης

{"cnt_hashtags":2,"hashtags":["#RickAstley","#NeverGonnaGiveYouUp"]}
{"error":"Video not found","code":404}

Κωδικοί απάντησης

ΚωδικόςΠεριγραφή
200 SuccessΤο αίτημα επεξεργάστηκε επιτυχώς.
400 Bad RequestΗ επικύρωση εισόδου απέτυχε.
401 UnauthorizedΚλειδί API λείπει ή είναι λάθος.
403 ForbiddenΚλειδί ανενεργό ή μη επιτρεπόμενο.
429 Rate LimitΠάρα πολλά αιτήματα.
500 Server ErrorΜη αναμενόμενο σφάλμα.

Extract Hashtags

youtube/video/extract-hashtags 0.0050 credits

Parameters

API Key
body · string · required
Video
body · string · required

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

AI-Powered Audit


POST https://api.yeb.to/v1/youtube/video/audit
ΠαράμετροςΤύποςΑπαιτ.Περιγραφή
api_key string ναι Your API key
video string ναι Video ID or URL
sample int προαιρ. Baseline sample size (10-100, default 50)

Παράδειγμα

curl -X POST https://api.yeb.to/v1/youtube/video/audit \
  -H "Content-Type: application/json" \
  -d '{"api_key":"YOUR_KEY","video":"dQw4w9WgXcQ"}'

Παράδειγμα απάντησης

{
  "videoId":"dQw4w9WgXcQ",
  "views":1580000000,
  "likes":15400000,
  "comments":1120000,
  "engagementRate":0.011,
  "channelMedianViews":420000,
  "isAboveMedian":true,
  "aiRecommendations":"• Use a more curiosity-driven title…"
}
{"error":"Video not found","code":404}

Κωδικοί απάντησης

ΚωδικόςΠεριγραφή
200 SuccessΤο αίτημα επεξεργάστηκε επιτυχώς.
400 Bad RequestΗ επικύρωση εισόδου απέτυχε.
401 UnauthorizedΚλειδί API λείπει ή είναι λάθος.
403 ForbiddenΚλειδί ανενεργό ή μη επιτρεπόμενο.
429 Rate LimitΠάρα πολλά αιτήματα.
500 Server ErrorΜη αναμενόμενο σφάλμα.

AI Audit

youtube/video/audit 0.0200 credits

Parameters

API Key
body · string · required
Video
body · string · required
Sample size
body · string

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

YouTube Video API — Practical Guide

A hands-on guide to the YouTube Video API actions you’ll actually use: what each endpoint does, the problems it solves, the few parameters that matter, and how to read responses to build smarter UIs (mix builders, QA tools, SEO audits, and moderation dashboards).

#What this API solves

The youtube/video module turns a single YouTube video ID (or URL) into the practical signals you need: core metadata, engagement metrics, restrictions & status, comments, SEO surfaces (tags, hashtags, links), playlists featuring the video, and AI-powered audits. Use results to choose thumbnails/titles, estimate watch-time, detect country blocks, or group videos into mixes.

#Endpoints & when to use them

#POST /v1/youtube/video/information — Basic Information

  • Best for: Canonical data for cards, editors, and QA. Category & channel IDs for routing.
  • Output: video{ id, title, description, duration (ISO), publishedAt, categoryId + categoryName, channelId, channelTitle, statistics, thumbnails }.
  • Tip: Store id, channelId, categoryId as foreign keys; render duration as mm:ss.

#POST /v1/youtube/video/engagement-rate — Engagement Rate

  • Best for: Quick quality bar across uploads; ranking candidates for playlists.
  • Output: engagement{ views, likes, comments, rate } where rate = (likes+comments)/views.
  • Tip: Use buckets: <0.01 (weak), 0.01–0.03 (solid), >0.03 (hot) — tune per niche.

#POST /v1/youtube/video/comments — Top Comments

  • Best for: Social proof, snippets for landing pages, moderation/QA workflows.
  • Output: Flat list of top-level comments (optionally with replies).
  • Tip: For moderation UIs, request order="time"; for marketing, use relevance (default).

#POST /v1/youtube/video/restricted — Restrictions

  • Best for: Detecting geo blocks, age restrictions, and embeddability issues before publishing.
  • Output: restrictions{ geoBlocked, ageRestricted, blocked[], allowed[], embeddable, madeForKids, license, privacyStatus }.
  • Tip: If geoBlocked=true show “Unavailable in your region” and pick alternates for that market.

#POST /v1/youtube/video/settings — Settings / Status

  • Best for: Editorial checks: privacy, license, Made for Kids, projection, recordingDate, language/region.
  • Output: settings{ privacyStatus, license, embeddable, publicStatsViewable, disableComments, madeForKids, ageRestricted, projection, recordingDate, locationDescription, categoryId+Name, language, region }.
  • Tip: Use language/region to prefill translation tasks and subtitles pipelines.

#POST /v1/youtube/video/statistics — Statistics

  • Best for: Snapshot cards and simple leaderboards.
  • Output: statistics{ views, likes, comments, favourites } (point-in-time).

#POST /v1/youtube/video/tags — Video Tags

  • Best for: SEO diffing, tag normalization, clustering similar videos.
  • Output: tags[] or empty if unavailable.

#POST /v1/youtube/video/extract-hashtags — Extract Hashtags

  • Best for: Pulling visible #hashtags from title/description for social cross-posting.
  • Output: { cnt_hashtags, hashtags[] }.
  • Best for: Affiliate checks, out-link audits, or building a “Links” panel on video pages.
  • Output: { cnt_links, links[] }.

#POST /v1/youtube/video/thumbnail — Thumbnail URLs

  • Best for: Rendering cards without re-deriving thumb URLs.
  • Output: thumbnails{ default, medium, high, standard, maxres }.

#POST /v1/youtube/video/search-playlists — Playlists Featuring This Video

  • Best for: Discoverability & social proof (“featured in 12 playlists”).
  • Output: { cnt_playlists, playlists[{ id, title, url, found }] }.
  • Best for: Pinning “Now Trending in GB” badges and ordering on homepages.
  • Output: trending{ country, categoryId, categoryName, isTrending, position }.

#POST /v1/youtube/video/watchtime-estimate — Watch-Time Estimate

  • Best for: Forecasting watch-hours for mixes or promo decisions.
  • Output: watchtime{ views, durationSec, avgRetention, perViewSec, seconds, watchHours }.
  • Tip: Override avgRetention (0–1) if you know your niche average; otherwise we fallback by category.

#POST /v1/youtube/video/audit — AI-Powered Audit

  • Best for: Fast SEO/CTR feedback on title/description/tags vs channel baseline.
  • Output: audit{ videoId, views, likes, comments, engagementRate, channelMedianViews, isAboveMedian, aiRecommendations }.
  • Tip: Tune sample (10–100) to match channel cadence for meaningful medians.

#Quick start

# Basic info
curl -X POST "https://api.yeb.to/v1/youtube/video/information" \
  -H "Accept: application/json" -H "Content-Type: application/json" \
  -H "X-API-Key: <YOUR_API_KEY>" \
  -d '{ "video":"dQw4w9WgXcQ" }'
# Engagement rate
curl -X POST "https://api.yeb.to/v1/youtube/video/engagement-rate" \
  -H "Accept: application/json" -H "Content-Type: application/json" \
  -H "X-API-Key: <YOUR_API_KEY>" \
  -d '{ "video":"dQw4w9WgXcQ" }'
# Comments (latest 25, include replies)
curl -X POST "https://api.yeb.to/v1/youtube/video/comments" \
  -H "Accept: application/json" -H "Content-Type: application/json" \
  -H "X-API-Key: <YOUR_API_KEY>" \
  -d '{ "video":"dQw4w9WgXcQ", "limit":25, "order":"time", "repliesOn":true }'
# AI audit (use 50 last uploads as baseline)
curl -X POST "https://api.yeb.to/v1/youtube/video/audit" \
  -H "Accept: application/json" -H "Content-Type: application/json" \
  -H "X-API-Key: <YOUR_API_KEY>" \
  -d '{ "video":"dQw4w9WgXcQ", "sample":50 }'

#Parameters that actually matter

ParamTypeRequiredPractical guidance
api_key string Yes Your credential. Keep server-side or sign short-lived edge tokens.
video string Yes* 11-char ID or full URL. Not required for compare-videos (if available) or some meta actions.
order string No For comments: relevance (default) or time.
limit int No Comments/playlists page size. Reasonable 10–50; defaults provided per endpoint.
repliesOn bool No For comments, include reply threads when you need context.
country string No For trending check, ISO-3166 code (default US).
categoryId string|int No For trending check; use 10 for Music.
avgRetention float No For watchtime-estimate override (0–1). If omitted, we fall back to category averages.
sample int No For audit: channel baseline size (10–100, default 50) to compute median views.

#Reading & acting on responses

#Information — interpretation

{
  "video": {
    "id":"dQw4w9WgXcQ",
    "title":"Rick Astley – Never Gonna Give You Up",
    "duration":"PT3M32S",
    "publishedAt":"1987-10-25T00:00:00Z",
    "categoryId":"10",
    "categoryName":"Music",
    "channelId":"UCuAXFkgsw1L7xaCfnd5JJOw",
    "channelTitle":"Official Rick Astley"
  }
}
  • id — Video ID → watch URL, embeds, thumbnail derivation.
  • channelId — Use for deep links and channel-level rollups.
  • duration — ISO-8601; convert to mm:ss for chips (helpful in grid UIs).

#Engagement — interpretation

{ "engagement": { "views":1580000000, "likes":15400000, "comments":1120000, "rate":0.011 } }
  • Use case: Sort candidates for playlists by rate, then sanity-check with comments volume.

#Comments — interpretation

{
  "cnt_comments": 25,
  "comments": [
    { "id":"Ugz…", "author":"Alice", "text":"Still a banger!", "likes":42, "published":"2025-06-01T12:34:00Z",
      "replies": { "cnt":2, "items":[{"id":"Ugy…","author":"Bob","text":"100%","likes":3,"published":"…"}] } }
  ]
}
  • Surface: Show the first one or two “relevance” comments as social proof; switch to time for live streams.

#Restrictions — interpretation

{
  "restrictions": {
    "geoBlocked":false, "ageRestricted":false,
    "embeddable":true,  "privacyStatus":"public"
  }
}
  • Action: If embeddable=false, fallback to channel link instead of inline player.
{ "trending": { "country":"GB", "isTrending":true, "position":17 } }
  • Action: Add “Trending #17 in GB” badge; bump in country-specific rails.

#Watch-time estimate — interpretation

{
  "watchtime": {
    "views":739, "durationSec":1733,
    "avgRetention":0.30, "perViewSec":520,
    "seconds":384206, "watchHours":106.7
  }
}
  • Use case: Forecast weekly watch-hours; if below target, delay posting the next mix.

#Practical recipes

  • Playlist curation: Rank by engagement.rate, filter restrictions.embeddable=true, and ensure categoryId=10 for music.
  • SEO diff: Compare tags + hashtags against your top performers; feed weak items into /audit.
  • Compliance: Check restricted prior to embedding; show geo messages when geoBlocked.
  • Mix timing: Use watchtime.watchHours to decide whether to release or wait for the current video to peak.

#YouTube IDs you’ll work with

FieldWhat it isHow to use
id (Video ID) 11-char identifier Watch: https://www.youtube.com/watch?v={id} · Thumbs: https://i.ytimg.com/vi/{id}/hqdefault.jpg
channelId Channel identifier Channel: https://www.youtube.com/channel/{channelId}
playlistId Playlist identifier Playlist: https://www.youtube.com/playlist?list={playlistId}
commentId Comment identifier Moderation tools, permalinks, reply threading.
categoryId Numeric content category Common IDs below; 10 = Music

#Common YouTube Category IDs

IDCategory
1Film & Animation
2Autos & Vehicles
10Music
17Sports
20Gaming
22People & Blogs
23Comedy
24Entertainment
25News & Politics
26Howto & Style
27Education
28Science & Technology
29Nonprofits & Activism

#Errors & troubleshooting

  • 400 "Missing "action" parameter" — Provide one of the supported actions (see sections above).
  • 400 "Missing "video" parameter" — Supply ID or URL for video-based actions.
  • 404 "Video not found" — Invalid/removed/private video.
  • 403 "Comments disabled" — Respect channel/video settings; hide comment UI.
  • 429 "Quota exceeded" — Backoff and reduce polling; cache responses.

#API Changelog (youtube/video)

2026-03-07
Watch-time fields. Added perViewSec and watchHours to watchtime for easier planning.
2026-03-07
Engagement wrapper. Standardized engagement{ ... } payload in engagement-rate.
2026-03-07
Trending check. Response now includes categoryName (derived from categoryId).
2026-02-28
Comments API. Optional repliesOn flag now returns structured replies (replies{ cnt, items[] }).
2026-02-21
AI Audit. Baseline sampling (sample 10–100) and channel median comparison added; clearer aiRecommendations.
2026-02-14
Unified responses. Normalized keys across actions (e.g., thumbnails{}, statistics{}, restrictions{}).

Use the API Playgrounds below each section in this page to test requests with your own video IDs.

Συχνές Ερωτήσεις

Μπορείτε να ανακτήσετε τίτλους, περιγραφές, ετικέτες, μικρογραφίες, σχόλια (με απαντήσεις), στατιστικά (προβολές, likes, σχόλια), αφοσίωση κοινού, κεφάλαια βίντεο, λίστες αναπαραγωγής που περιέχουν το βίντεο, ακόμα και αίτημα ελέγχου περιεχομένου με AI.

Υποστηρίζονται και τα δύο! Μπορείτε να δώσετε ένα αναγνωριστικό βίντεο YouTube (π.χ. dQw4w9WgXcQ) ή μια πλήρη διεύθυνση URL βίντεο YouTube.

Το API επιστρέφει ένα σαφές μήνυμα σφάλματος και κωδικό κατάστασης HTTP (π.χ. 404 για μη βρεθέν, 403 για περιορισμένα/ιδιωτικά βίντεο).

Ναι. Κάθε αίτημα, ακόμα και αυτά που καταλήγουν σε σφάλμα, καταναλώνει πιστωτικές μονάδες. Οι πιστωτικές μονάδες σας συνδέονται με τον αριθμό αιτημάτων, ανεξάρτητα από επιτυχία ή αποτυχία. Εάν το σφάλμα οφείλεται σαφώς σε πρόβλημα της πλατφόρμας από τη δική μας πλευρά, θα αποκαταστήσουμε τις επηρεαζόμενες πιστωτικές μονάδες (χωρίς επιστροφή χρημάτων).

Επικοινωνήστε μαζί μας στο [email protected]. Λαμβάνουμε τα σχόλια σοβαρά—εάν η αναφορά σφάλματος ή το αίτημα λειτουργίας είναι ουσιαστικό, μπορούμε να διορθώσουμε ή να βελτιώσουμε το API γρήγορα και να σας χορηγήσουμε 50 δωρεάν πιστωτικές μονάδες ως ευχαριστώ.

Εξαρτάται από το API και μερικές φορές ακόμα και από το endpoint. Ορισμένα endpoints χρησιμοποιούν δεδομένα από εξωτερικές πηγές, που μπορεί να έχουν αυστηρότερα όρια. Επιβάλλουμε επίσης όρια για να αποτρέψουμε κατάχρηση και να διατηρήσουμε την πλατφόρμα μας σταθερή. Ελέγξτε την τεκμηρίωση για το συγκεκριμένο όριο κάθε endpoint.

Λειτουργούμε με σύστημα πιστωτικών μονάδων. Οι πιστωτικές μονάδες είναι προπληρωμένες, μη επιστρέψιμες μονάδες που ξοδεύετε σε κλήσεις API και εργαλεία. Καταναλώνονται με τη μέθοδο FIFO (παλαιότερες πρώτα) και ισχύουν για 12 μήνες από την ημερομηνία αγοράς. Ο πίνακας ελέγχου δείχνει κάθε ημερομηνία αγοράς και τη λήξη της.

Ναι. Όλες οι αγορασμένες πιστωτικές μονάδες (συμπεριλαμβανομένων κλασματικών υπολοίπων) ισχύουν για 12 μήνες από την αγορά. Οι αχρησιμοποίητες πιστωτικές μονάδες λήγουν αυτόματα και διαγράφονται μόνιμα στο τέλος της περιόδου ισχύος. Οι ληγμένες πιστωτικές μονάδες δεν μπορούν να αποκατασταθούν ή να μετατραπούν σε μετρητά ή άλλη αξία. Μεταβατικός κανόνας: πιστωτικές μονάδες που αγοράστηκαν πριν τις 22 Σεπ. 2025 θεωρούνται αγορασμένες στις 22 Σεπ. 2025 και λήγουν στις 22 Σεπ. 2026 (εκτός αν αναφέρθηκε νωρίτερη λήξη κατά την αγορά).

Ναι—εντός της περιόδου ισχύος τους. Οι αχρησιμοποίητες πιστωτικές μονάδες παραμένουν διαθέσιμες και μεταφέρονται από μήνα σε μήνα μέχρι να λήξουν 12 μήνες μετά την αγορά.

Οι πιστωτικές μονάδες είναι μη επιστρέψιμες. Αγοράστε μόνο ό,τι χρειάζεστε—μπορείτε πάντα να αναπληρώσετε αργότερα. Εάν ένα σφάλμα πλατφόρμας προκαλέσει αποτυχημένη χρέωση, μπορούμε να αποκαταστήσουμε τις επηρεαζόμενες πιστωτικές μονάδες μετά από έρευνα. Καμία επιστροφή χρημάτων.

Οι τιμές ορίζονται σε πιστωτικές μονάδες, όχι σε δολάρια. Κάθε endpoint έχει το δικό του κόστος—δείτε το σήμα «Πιστωτικές μονάδες / αίτημα» παραπάνω. Θα ξέρετε πάντα ακριβώς τι ξοδεύετε.
← Πίσω στα API