YouTube Channel API

Extended channel analytics: info, videos, playlists, stats and audits.

מה ניתן לעשות?
Instant channel stats

Subscribers, views and more in 1 call.

Fetch latest uploads

Retrieve IDs, titles and publish dates.

One-click audit

Average length, best upload time, top videos…

נסו בלייב
99.9 % זמן פעילות
1935ms תגובה
20 req/s
0.005 קרדיטים / בקשה

Channel Info


POST https://api.yeb.to/v1/youtube/channel/info
ParameterTypeReq.Description
api_key string yes Your API key
channel string yes Channel ID (UC…) or vanity URL

Example

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

Response Example

{
  "id":              "UC_x5XG1OV2P6uZZ5FSM9Ttw",
  "title":           "Google Developers",
  "description":     "The Google Developers channel provides ...",
  "keywords":        "Google, Android, Chrome, Firebase",
  "topicCats":       ["Science and technology", "Computer programming"],
  "topicCatsRaw": [
    "https://en.wikipedia.org/wiki/Science_and_technology",
    "https://en.wikipedia.org/wiki/Computer_programming"
  ],
  "country":         "US"
}
{"error":"Missing \"channel\" parameter","code":400}

קודי תגובה

CodeDescription
200 SuccessRequest processed OK.
400 Bad RequestInput validation failed.
401 UnauthorizedMissing / wrong API key.
403 ForbiddenKey inactive or not allowed.
429 Rate LimitToo many requests.
500 Server ErrorUnexpected failure.

Info

youtube/channel/info 0.0050 credits

Parameters

API Key
body · string · required
Channel
body · string · required

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

Latest Videos


POST https://api.yeb.to/v1/youtube/channel/videos
ParameterTypeReq.Description
api_key string yes Your API key
channel string yes Channel ID (UC…) or vanity URL
limit int opt Max items (1-50, default 50)
order string opt Sort by: date (default) · relevance · rating · viewCount · title · videoCount
period string opt Quick date filter: today | week | month | year
after RFC 3339 opt Custom publishedAfter (e.g. 2025-01-01T00:00:00Z) – overrides period
before RFC 3339 opt Custom publishedBefore (same format as after)

Example

curl -X POST https://api.yeb.to/v1/youtube/channel/videos \
  -H "Content-Type: application/json" \
  -d '{
  "api_key": "YOUR_KEY",
  "channel": "GoogleDevelopers",
  "limit":   25,
  "order":   "viewCount",
  "period":  "month"
}'

Response Example

[
  {"id":"dQw4w9WgXcQ","title":"Rick Astley – …"},
  {"id":"kJQP7kiw5Fk","title":"Despacito"}
]
{"error":"Missing \"channel\" parameter","code":400}

קודי תגובה

CodeDescription
200 SuccessRequest processed OK.
400 Bad RequestInput validation failed.
401 UnauthorizedMissing / wrong API key.
403 ForbiddenKey inactive or not allowed.
429 Rate LimitToo many requests.
500 Server ErrorUnexpected failure.

Videos

youtube/channel/videos 0.0090 credits

Parameters

API Key
body · string · required
Channel
body · string · required
Limit
body · string
Order
body · string
Period
body · string
Published After
body · string
Published Before
body · string

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

Playlists


POST https://api.yeb.to/v1/youtube/channel/playlists
ParameterTypeReq.Description
api_key string yes Your API key
channel string yes Channel ID or vanity
limit int opt Max playlists (1-50, default 50)
order string opt Sort by: date (default), videos, title
after string opt Only playlists published after this date (YYYY-MM-DD or RFC-3339)
before string opt Only playlists published before this date (YYYY-MM-DD or RFC-3339)

Example

curl -X POST https://api.yeb.to/v1/youtube/channel/playlists \
  -H "Content-Type: application/json" \
  -d '{
  "api_key": "YOUR_KEY",
  "channel": "GoogleDevelopers",
  "order"  : "videos",
  "after"  : "2023-01-01",
  "limit"  : 25
}'

Response Example

{
  "playlists": [
    {
      "id"          : "PL590L5WQmH8fJ54Foh3L5jT8vIojl7FeN",
      "title"       : "Google I/O 2025 – full sessions",
      "description" : "",
      "video_count" : 27,
      "published_at": "2025-05-14T12:03:44Z"
    },
    {
      "id"          : "PL590L5WQmH8f7u7b1ZOM8I3W-hd2_XxT4",
      "title"       : "Android Basics",
      "description" : "Intro series for new Android devs",
      "video_count" : 18,
      "published_at": "2024-11-08T09:20:11Z"
    }
  ]
}
{"error":"Invalid \"after\" or \"before\" date","code":422}

קודי תגובה

CodeDescription
200 SuccessRequest processed OK.
400 Bad RequestInput validation failed.
401 UnauthorizedMissing / wrong API key.
403 ForbiddenKey inactive or not allowed.
429 Rate LimitToo many requests.
500 Server ErrorUnexpected failure.

Playlists

youtube/channel/playlists 0.0090 credits

Parameters

API Key
body · string · required
Channel
body · string · required
Limit
body · string
Order
body · string
Published After
body · string
Published Before
body · string

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

Find Channel ID


POST https://api.yeb.to/v1/youtube/channel/find-id
ParameterTypeReq.Description
api_key string yes Your API key
query string yes Vanity URL (handle) or channel name

Example

curl -X POST https://api.yeb.to/v1/youtube/channel/find-id \
  -H "Content-Type: application/json" \
  -d '{
  "api_key": "YOUR_KEY",
  "query": "@GoogleDevelopers"
}'

Response Example

{"channel_id":"UC_x5XG1OV2P6uZZ5FSM9Ttw"}
{"error":"Not found","code":404}

קודי תגובה

CodeDescription
200 SuccessRequest processed OK.
400 Bad RequestInput validation failed.
401 UnauthorizedMissing / wrong API key.
403 ForbiddenKey inactive or not allowed.
429 Rate LimitToo many requests.
500 Server ErrorUnexpected failure.

Find ID

youtube/channel/find-id 0.0010 credits

Parameters

API Key
body · string · required
Query
body · string · required

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

Channel Thumbnail


POST https://api.yeb.to/v1/youtube/channel/thumbnail
ParameterTypeReq.Description
api_key string yes Your API key
channel string yes Channel ID or vanity

Example

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

Response Example

{"url":"https://yt3.ggpht.com/ytc/AAUvwng…=s800-c-k-c0xffffffff-no-rj"}
{"error":"Missing \"channel\"","code":400}

קודי תגובה

CodeDescription
200 SuccessRequest processed OK.
400 Bad RequestInput validation failed.
401 UnauthorizedMissing / wrong API key.
403 ForbiddenKey inactive or not allowed.
429 Rate LimitToo many requests.
500 Server ErrorUnexpected failure.

Thumbnail

youtube/channel/thumbnail 0.0010 credits

Parameters

API Key
body · string · required
Channel
body · string · required

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

Region Restrictions


POST https://api.yeb.to/v1/youtube/channel/region-restrictions
ParameterTypeReq.Description
api_key string yes Your API key
channel string yes Channel ID or vanity

Example

curl -X POST https://api.yeb.to/v1/youtube/channel/region-restrictions \
  -H "Content-Type: application/json" \
  -d '{"api_key":"YOUR_KEY","channel":"GoogleDevelopers"}'

Response Example

{"madeForKids":false}
{"error":"Missing \"channel\"","code":400}

קודי תגובה

CodeDescription
200 SuccessRequest processed OK.
400 Bad RequestInput validation failed.
401 UnauthorizedMissing / wrong API key.
403 ForbiddenKey inactive or not allowed.
429 Rate LimitToo many requests.
500 Server ErrorUnexpected failure.

Region restrictions

youtube/channel/region-restrictions 0.0030 credits

Parameters

API Key
body · string · required
Channel
body · string · required

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

Channel Settings


POST https://api.yeb.to/v1/youtube/channel/settings
ParameterTypeReq.Description
api_key string yes Your API key
channel string yes Channel ID or vanity

Example

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

Response Example

{
  "defaultLang": "en",
  "country": "US",
  "showRelatedChannels": true,
  "featuredChannels": ["UCVHFbqXqoYvEWM1Ddxl0QDg"]
}
{"error":"Missing \"channel\"","code":400}

קודי תגובה

CodeDescription
200 SuccessRequest processed OK.
400 Bad RequestInput validation failed.
401 UnauthorizedMissing / wrong API key.
403 ForbiddenKey inactive or not allowed.
429 Rate LimitToo many requests.
500 Server ErrorUnexpected failure.

Settings

youtube/channel/settings 0.0050 credits

Parameters

API Key
body · string · required
Channel
body · string · required

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

Statistics


POST https://api.yeb.to/v1/youtube/channel/statistics
ParameterTypeReq.Description
api_key string yes Your API key
channel string yes Channel ID or vanity

Example

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

Response Example

{
  "subscribers": 2500000,
  "views": 150000000,
  "videos": 320,
  "hiddenSubs": false
}
{"error":"Missing \"channel\"","code":400}

קודי תגובה

CodeDescription
200 SuccessRequest processed OK.
400 Bad RequestInput validation failed.
401 UnauthorizedMissing / wrong API key.
403 ForbiddenKey inactive or not allowed.
429 Rate LimitToo many requests.
500 Server ErrorUnexpected failure.

Statistics

youtube/channel/statistics 0.0070 credits

Parameters

API Key
body · string · required
Channel
body · string · required

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

Subscribe-Link Generator


POST https://api.yeb.to/v1/youtube/channel/subscribe-link-generator
ParameterTypeReq.Description
api_key string yes Your API key
channel string yes Channel ID or vanity

Example

curl -X POST https://api.yeb.to/v1/youtube/channel/subscribe-link-generator \
  -H "Content-Type: application/json" \
  -d '{"api_key":"YOUR_KEY","channel":"GoogleDevelopers"}'

Response Example

קודי תגובה

CodeDescription
200 SuccessRequest processed OK.
400 Bad RequestInput validation failed.
401 UnauthorizedMissing / wrong API key.
403 ForbiddenKey inactive or not allowed.
429 Rate LimitToo many requests.
500 Server ErrorUnexpected failure.

Subscribe-link

youtube/channel/subscribe-link-generator 0.0010 credits

Parameters

API Key
body · string · required
Channel
body · string · required

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

Search Channels


POST https://api.yeb.to/v1/youtube/channel/search
ParameterTypeReq.Description
api_key string yes Your API key
query string yes Search keywords or @handle
limit int opt Max results (1-50, default 10)
order string opt Sort: relevance (default) · date · rating · viewCount · title · videoCount
period string opt Date filter: today | week | month | year
after RFC 3339 opt Custom publishedAfter (overrides period)
before RFC 3339 opt Custom publishedBefore

Example

curl -X POST https://api.yeb.to/v1/youtube/channel/search \
  -H "Content-Type: application/json" \
  -d '{
  "api_key": "YOUR_KEY",
  "query":   "technology reviews",
  "limit":   10,
  "order":   "relevance",
  "period":  "week"
}'

Response Example

[
  {"id":"UC-9-kyTW8ZkZNDHQJ6FgpwQ","title":"Music"},
  {"id":"UC_iD0xppBwwsrM9DegC5cQQ","title":"Trap City"}
]
{"error":"Missing \"query\"","code":400}

קודי תגובה

CodeDescription
200 SuccessRequest processed OK.
400 Bad RequestInput validation failed.
401 UnauthorizedMissing / wrong API key.
403 ForbiddenKey inactive or not allowed.
429 Rate LimitToo many requests.
500 Server ErrorUnexpected failure.

Search

youtube/channel/search 0.0090 credits

Parameters

API Key
body · string · required
Query
body · string · required
Limit
body · string
Order
body · string
Period
body · string
Published After
body · string
Published Before
body · string

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

YouTube Channel Audit


POST https://api.yeb.to/v1/youtube/channel/audit
ParameterTypeReq.Description
api_key string yes Your API key
channel string yes Channel ID or vanity
after string opt RFC-3339 or YYYY-MM-DD – fetch uploads **after** this date
before string opt RFC-3339 or YYYY-MM-DD – fetch uploads **before** this date

Example

curl -X POST https://api.yeb.to/v1/youtube/channel/audit \
  -H "Content-Type: application/json" \
  -d '{"api_key":"YOUR_KEY","channel":"GoogleDevelopers","after":"2025-01-01","before":"2025-06-30"}'

Response Example

{
  "bestUploadDay":      "Wednesday",
  "bestUploadHourUTC":  "17",
  "avgVideoLengthSec":  412,
  "topVideos":[
    {
      "id":"3fumBcKC6RE",
      "title":"Google I/O 2025 – Keynote",
      "views":5200000,
      "len_s":372
    },
    {
      "id":"Vb2ZXRh74WU",
      "title":"Jetpack Compose 2.0",
      "views":2900000,
      "len_s":648
    }
  ],
  "language": "en",
  "country":  "US",
  "category":      "Science and technology",
  "categoryRaw":   "https://en.wikipedia.org/wiki/Science_and_technology"
}
{"error":"Channel has no recent videos","code":404}

קודי תגובה

CodeDescription
200 SuccessRequest processed OK.
400 Bad RequestInput validation failed.
401 UnauthorizedMissing / wrong API key.
403 ForbiddenKey inactive or not allowed.
429 Rate LimitToo many requests.
500 Server ErrorUnexpected failure.

Audit

youtube/channel/audit 0.0100 credits

Parameters

API Key
body · string · required
Channel
body · string · required
Published After
body · string
Published Before
body · string

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

YouTube Channel API — Practical Guide

A hands-on guide to turning a YouTube channel into actionable signals: find/resolve IDs, fetch latest uploads and playlists, read settings/statistics, run audits, and build real workflows (mix scheduling, SEO checks, regional compliance, badges).

#What this API solves

The youtube/channel module focuses on channel-level intelligence: resolve channel IDs, pull core info & settings, list uploads/playlists with practical filters, inspect statistics, and run a lightweight, production-ready audit (best upload day/hour, median signals). Results help you schedule mixes, benchmark performance, and avoid embedding issues.

#Endpoints & when to use them

#POST /v1/youtube/channel/find-id — Find Channel ID

  • Best for: Converting @handle / vanity to canonical channelId (UC…).
  • Output: { "channel_id": "UC…" }.
  • Tip: Cache this mapping; most other endpoints accept either value, but canonicalizing simplifies storage.

#POST /v1/youtube/channel/info — Channel Info

  • Best for: Bio cards, topic categories, country routing.
  • Output: { id, title, description, keywords, topicCats[], topicCatsRaw[], country }.
  • Tip: Use topicCats to cluster channels (“Science and technology”, “Programming”).

#POST /v1/youtube/channel/videos — Latest Videos

  • Best for: Build “latest” or “top this month” rails; seed audits.
  • Filters: order (date | viewCount | …), period (today/week/month/year), or custom after/before (RFC-3339 or YYYY-MM-DD).
  • Output: Array of { id, title, … } items.

#POST /v1/youtube/channel/playlists — Playlists

  • Best for: Curatorial analysis (“which series drive views?”).
  • Output: { playlists: [{ id, title, description, video_count, published_at }] }.
  • Tip: Sort by videos to find evergreen series; filter by dates to compare seasons.

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

  • Best for: High-level counters for badges and sanity checks.
  • Output: { subscribers, views, videos, hiddenSubs }.

#POST /v1/youtube/channel/settings — Channel Settings

  • Best for: Localization defaults (language/country) and side-rail curation (featured channels).
  • Output: { defaultLang, country, showRelatedChannels, featuredChannels[] }.

#POST /v1/youtube/channel/region-restrictions — Region Restrictions

  • Best for: Compliance/UX gating at the channel level (e.g., kids content).
  • Output: { madeForKids: boolean }.
  • Best for: Discovery workflows; onboarding new sources.
  • Filters: order, period, or custom after/before.
  • Output: { results: [{ id, title, …}] }.

#POST /v1/youtube/channel/audit — Channel Audit

  • Best for: Quickly infer optimal upload windows, typical lengths, and top performers over a period.
  • Output: { bestUploadDay, bestUploadHourUTC, avgVideoLengthSec, topVideos[], language, country, category, categoryRaw }.
  • Tip: Pass after/before to focus on a season or rebrand window.

#POST /v1/youtube/channel/subscribe-link-generator — Subscribe Link

  • Best for: One-click subscribe CTA in your UI.
  • Output: { url: "…?sub_confirmation=1" }.

#POST /v1/youtube/channel/thumbnail — Channel Thumbnail

  • Best for: Channel cards, “featured creators” strips.
  • Output: { url } (high-res avatar).

#Quick start

# 1) Resolve channel ID from @handle
curl -X POST "https://api.yeb.to/v1/youtube/channel/find-id" \
  -H "Accept: application/json" -H "Content-Type: application/json" \
  -H "X-API-Key: <YOUR_API_KEY>" \
  -d '{ "query": "@GoogleDevelopers" }'
# 2) Latest videos this month, sorted by views
curl -X POST "https://api.yeb.to/v1/youtube/channel/videos" \
  -H "Accept: application/json" -H "Content-Type: application/json" \
  -H "X-API-Key: <YOUR_API_KEY>" \
  -d '{ "channel":"UC_x5XG1OV2P6uZZ5FSM9Ttw", "order":"viewCount", "period":"month", "limit":25 }'
# 3) Playlists after a given date
curl -X POST "https://api.yeb.to/v1/youtube/channel/playlists" \
  -H "Accept: application/json" -H "Content-Type: application/json" \
  -H "X-API-Key: <YOUR_API_KEY>" \
  -d '{ "channel":"GoogleDevelopers", "order":"videos", "after":"2024-11-01", "limit":25 }'
# 4) Channel audit across a custom window
curl -X POST "https://api.yeb.to/v1/youtube/channel/audit" \
  -H "Accept: application/json" -H "Content-Type: application/json" \
  -H "X-API-Key: <YOUR_API_KEY>" \
  -d '{ "channel":"GoogleDevelopers", "after":"2025-01-01", "before":"2025-06-30" }'

#Parameters that actually matter

ParamTypeRequiredPractical guidance
api_key string Yes Use server-side or sign short-lived edge tokens.
channel string Yes* UC… ID or vanity (@handle). Not required for find-id / search.
limit int No 1–50 (default varies). Keep UI grids tidy: 12/24/48.
order string No For videos and search. Typical: date or viewCount.
period string No Shortcut time filter: today | week | month | year.
after/before date No RFC-3339 or YYYY-MM-DD; we normalize. Use to bracket seasons or editorial windows.
query string Yes* For find-id/search: keywords or @handle.

#Reading & acting on responses

#Audit — interpretation

{
  "bestUploadDay": "Wednesday",
  "bestUploadHourUTC": "17",
  "avgVideoLengthSec": 412,
  "topVideos": [{ "id":"3fumBcKC6RE","title":"…","views":5200000,"len_s":372 }],
  "language": "en",
  "country": "US",
  "category": "Science and technology"
}
  • Schedule: Publish near bestUploadHourUTC for the target market; A/B test ±2h.
  • Format: Use avgVideoLengthSec to pick default mix lengths per channel.
  • Editorial: Promote a topVideos[0] rerun in your weekly hub.

#Info — interpretation

{
  "id":"UC_x5XG1OV2P6uZZ5FSM9Ttw",
  "title":"Google Developers",
  "topicCats":["Science and technology","Computer programming"],
  "country":"US"
}
  • Drive category pages from topicCats; geotarget copy by country.

#Videos — interpretation

[
  { "id":"dQw4w9WgXcQ", "title":"…" },
  { "id":"kJQP7kiw5Fk", "title":"Despacito" }
]
  • Pipe IDs to your youtube/video/* endpoints (engagement, restrictions, audit, etc.).

#Playlists — interpretation

{
  "playlists":[
    { "id":"PL590…", "title":"Google I/O 2025 – full sessions", "video_count":27, "published_at":"2025-05-14T12:03:44Z" }
  ]
}
  • Sort by video_count to detect successful series; feature them prominently.

#Statistics — interpretation

{ "subscribers":2500000, "views":150000000, "videos":320, "hiddenSubs":false }
  • Use for creator badges and sanity checks; don’t re-poll too often (cache daily).

#Practical recipes

  • Weekly mix planning: Pull videos for the last week, rank by engagement (via video API), schedule near bestUploadHourUTC.
  • Channel onboarding: find-idinfo/settingsstatistics snapshot → seed playlists.
  • Seasonal check: Run audit with after/before around a rebrand to compare cadence/length shifts.

#YouTube identifiers you’ll use

FieldWhat it isHow to use
channelId Canonical channel ID (starts with UC) https://www.youtube.com/channel/{channelId}
@handle Vanity username Resolve with /channel/find-id once; then persist channelId.
playlistId Channel playlist identifier https://www.youtube.com/playlist?list={playlistId}
videoId 11-char video ID Used across youtube/video/* endpoints.

#Errors & troubleshooting

  • 400 "Missing "action" parameter" — Internal routing error; ensure endpoint path sets an action.
  • 400 "Missing "channel" parameter" — Provide channel for all except find-id/search.
  • 404 "Unable to resolve channel ID" — Vanity not found; try find-id or pass UC… directly.
  • 422 "Invalid "order"" — Use documented values (e.g., date, viewCount).
  • 422 "Invalid "after" or "before" date" — Use RFC-3339 or YYYY-MM-DD; ensure after <= before.
  • 404 "Channel has no recent videos" — For audit, widen date range or increase activity window.

#API Changelog (youtube/channel)

2025-11-21
Date normalization & filters. after/before now accept RFC-3339 or YYYY-MM-DD across videos, playlists, search, and audit. Clear 422s on invalid or inverted ranges.
2025-11-14
Videos endpoint upgrades. Added order (date, viewCount, …) and period shortcuts (today/week/month/year).
2025-11-07
Audit windowing. /channel/audit accepts after/before to focus on seasons; topVideos capped at 10 with length in seconds.
2025-10-31
Playlists wrapping. Standardized success shape to { playlists: [...] }; added sorting by videos/title.

Use the Playgrounds attached to each endpoint block on this page to experiment with your own channel / @handle.

שאלות נפוצות

Up to 20 requests per second per API key, in line with the global burst limit.

It fetches the last N uploads (default 10) and returns average length, best upload time and top-performing videos.

עד 20 בקשות / שנייה לכל מפתח. אין מגבלות יומיות או חודשיות – שלם לפי השימוש.

אנחנו פועלים במערכת קרדיטים. רוכשים פעם אחת – הקרדיטים אינם פוקעים ואין מנויים.

כל קריאת HTTP היא בקשה אחת; כל בקשה צורכת מספר קרדיטים בהתאם לנקודת הקצה.

כן, הם אינם פוקעים עד שתשתמש בהם (אך אינם ניתנים להחזר).

קרדיטים הם ללא החזר. אנא רכשו רק את מה שאתם צריכים – ניתן לטעון מחדש בכל עת.

המחירים מוגדרים בקרדיטים, לא בדולרים. כל נקודת קצה מציינת את עלותה – ראו את תג “קרדיטים / בקשה” למעלה.
← חזרה ל-APIs