YouTube Search API

Rychlé, filtrovatelné vyhledávání videí, kanálů, playlistů a automatické doplňování dotazů.

Co můžete dělat?
Vyhledávání YouTube s více filtry

Prohledejte videa, kanály nebo playlisty jedním voláním.

Okamžité návrhy doplňování

Získejte návrhy dotazů, zatímco uživatelé píší.

Filtry data a délky

Datum publikace a délka vám umožní rychle zúžit výsledky.

Vyzkoušet živě
99.9 % Dostupnost
153.4ms Odpověď
20 req/s
0.01 Kredity / požadavek

Autocomplete


POST https://api.yeb.to/v1/youtube/search/autocomplete
ParametrTypPovinnýPopis
api_key string ano Your API key
q string ano User query
hl string volitelný Language (ISO-639-1, default en)

Příklad

curl -X POST https://api.yeb.to/v1/youtube/search/autocomplete \
  -H "Content-Type: application/json" \
  -d '{
  "api_key": "YOUR_KEY",
  "q": "minecraft survival",
  "hl": "en"
}'

Příklad odpovědi

{
  "query":        "minecraft survival",
  "lang":         "en",
  "suggestions":  ["minecraft survival house","minecraft survival guide"],
  "cnt_results":  2
}
{"error":"Missing \"q\" (query) parameter","code":400}

Kódy odpovědí

KódPopis
200 SuccessPožadavek zpracován OK.
400 Bad RequestValidace vstupu selhala.
401 UnauthorizedChybějící / nesprávný API klíč.
403 ForbiddenKlíč neaktivní nebo nepovolený.
429 Rate LimitPříliš mnoho požadavků.
500 Server ErrorNeočekávaná chyba.

Autocomplete

youtube/search/autocomplete 0.0100 credits

Parameters

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

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

Search Videos


POST https://api.yeb.to/v1/youtube/search/videos
ParametrTypPovinnýPopis
api_key string ano Your API key
q string ano Search keywords
limit int volitelný 1-50 (default 25)
sort string volitelný relevance | date | rating | title | viewCount
published_after date volitelný YYYY-MM-DD
published_before date volitelný YYYY-MM-DD
duration string volitelný any | short | medium | long

Příklad

curl -X POST https://api.yeb.to/v1/youtube/search/videos \
  -H "Content-Type: application/json" \
  -d '{
  "api_key":          "YOUR_KEY",
  "q":                "how to draw",
  "limit":            10,
  "sort":             "date",
  "published_after":  "2025-01-01",
  "duration":         "short"
}'

Příklad odpovědi

{
  "cnt_results": 1,
  "videos":[
    {
      "id":          "dQw4w9WgXcQ",
      "title":       "How to draw a cat",
      "description": "Learn cat drawing…",
      "publishedAt": "2025-06-05T14:00:01Z",
      "channelId":   "UCabc123",
      "durationISO": "PT3M45S",
      "views":       15230
    }
  ]
}
{"error":"Missing \"q\" (query) parameter","code":400}

Kódy odpovědí

KódPopis
200 SuccessPožadavek zpracován OK.
400 Bad RequestValidace vstupu selhala.
401 UnauthorizedChybějící / nesprávný API klíč.
403 ForbiddenKlíč neaktivní nebo nepovolený.
429 Rate LimitPříliš mnoho požadavků.
500 Server ErrorNeočekávaná chyba.

Videos

youtube/search/videos 0.0060 credits

Parameters

API Key
body · string · required
Query
body · string · required
Limit
body · string
Sort
body · string
Published After
body · string
Published Before
body · string
Duration
body · string

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

Search Channels


POST https://api.yeb.to/v1/youtube/search/channels
ParametrTypPovinnýPopis
api_key string ano Your API key
q string ano Search keywords
limit int volitelný 1-50 (default 25)
sort string volitelný relevance | date | rating | title | viewCount
published_after date volitelný YYYY-MM-DD
published_before date volitelný YYYY-MM-DD

Příklad

curl -X POST https://api.yeb.to/v1/youtube/search/channels \
  -H "Content-Type: application/json" \
  -d '{
  "api_key": "YOUR_KEY",
  "q":       "technology reviews",
  "limit":   5
}'

Příklad odpovědi

{
  "cnt_results": 2,
  "channels":[
    {
      "id":          "UC_x5XG1OV2P6uZZ5FSM9Ttw",
      "title":       "Google Developers",
      "description": "The official Google Developers channel.",
      "publishedAt": "2007-08-23T00:34:43Z",
      "thumb":       "https://yt3.ggpht.com/abc=s88-c-k-c0xffffffff-no-rj-mo"
    }
  ]
}
{"error":"Missing \"q\" (query) parameter","code":400}

Kódy odpovědí

KódPopis
200 SuccessPožadavek zpracován OK.
400 Bad RequestValidace vstupu selhala.
401 UnauthorizedChybějící / nesprávný API klíč.
403 ForbiddenKlíč neaktivní nebo nepovolený.
429 Rate LimitPříliš mnoho požadavků.
500 Server ErrorNeočekávaná chyba.

Channels

youtube/search/channels 0.0060 credits

Parameters

API Key
body · string · required
Query
body · string · required
Limit
body · string
Sort
body · string
Published After
body · string
Published Before
body · string

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

Search Playlists


POST https://api.yeb.to/v1/youtube/search/playlists
ParametrTypPovinnýPopis
api_key string ano Your API key
q string ano Search keywords
limit int volitelný 1-50 (default 25)
sort string volitelný relevance | date | rating | title | viewCount
published_after date volitelný YYYY-MM-DD
published_before date volitelný YYYY-MM-DD

Příklad

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

Příklad odpovědi

{
  "cnt_results": 1,
  "playlists":[
    {
      "id":          "PL12345ABCDE",
      "title":       "Lo-Fi Chill Beats",
      "description": "Relaxing music to study to.",
      "publishedAt": "2024-11-17T10:00:00Z",
      "channelId":   "UCLofi123",
      "items":       35
    }
  ]
}
{"error":"Missing \"q\" (query) parameter","code":400}

Kódy odpovědí

KódPopis
200 SuccessPožadavek zpracován OK.
400 Bad RequestValidace vstupu selhala.
401 UnauthorizedChybějící / nesprávný API klíč.
403 ForbiddenKlíč neaktivní nebo nepovolený.
429 Rate LimitPříliš mnoho požadavků.
500 Server ErrorNeočekávaná chyba.

Playlists

youtube/search/playlists 0.0060 credits

Parameters

API Key
body · string · required
Query
body · string · required
Limit
body · string
Sort
body · string
Published After
body · string
Published Before
body · string

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

YouTube Search API — Practical Guide

Turn raw YouTube searches into editorial decisions and content plans. Autocomplete helps you mine intent; video/channel/playlist search gives you freshness windows, volume, and targets for outreach or curation.

#What YouTube Search solves

Use youtube/search to discover demand (autocomplete), source competitors & collaborators (channels), map curation targets (playlists), and fill topical gaps (videos). Filters like date, duration, and sorting let you bias for fresh vs evergreen.

#Endpoints & when to use them

#POST /v1/youtube/search/autocomplete — Autocomplete

  • Best for: Idea mining, SEO variations, quick demand checks per language (hl).
  • Output: query, lang, suggestions[], cnt_results (wrapped under data).
  • Tip: Seed titles/descriptions with top 2–3 suggestions; batch by locale to localize copy.

#POST /v1/youtube/search/videos — Search Videos

  • Best for: Spot rising topics, collect examples by date or viewCount, and scope by duration.
  • Filters: sort (relevance/date/rating/title/viewCount), published_after/published_before (YYYY-MM-DD), duration (short/medium/long).
  • Output: videos[] with id, title, publishedAt, channelId, durationISO, views (wrapped under data).

#POST /v1/youtube/search/channels — Search Channels

  • Best for: Competitor mapping, outreach, “featured creators” rails.
  • Output: channels[] with id (channelId), title, description, publishedAt, thumb (wrapped under data).
  • Tip: Combine with youtube/channel/info to enrich topics and country.

#POST /v1/youtube/search/playlists — Search Playlists

  • Best for: Finding curation hubs to pitch or mirror; tracking “series” potential by list size.
  • Output: playlists[] with id, title, publishedAt, channelId, items (wrapped under data).

#Quick start

# Autocomplete (English)
curl -X POST "https://api.yeb.to/v1/youtube/search/autocomplete" \
  -H "Accept: application/json" -H "Content-Type: application/json" \
  -H "X-API-Key: <YOUR_API_KEY>" \
  -d '{ "q":"minecraft survival", "hl":"en" }'
# Videos (latest, short-form only)
curl -X POST "https://api.yeb.to/v1/youtube/search/videos" \
  -H "Accept: application/json" -H "Content-Type: application/json" \
  -H "X-API-Key: <YOUR_API_KEY>" \
  -d '{ "q":"how to draw", "sort":"date", "published_after":"2025-01-01", "duration":"short", "limit":10 }'
# Channels (top 5 by relevance)
curl -X POST "https://api.yeb.to/v1/youtube/search/channels" \
  -H "Accept: application/json" -H "Content-Type: application/json" \
  -H "X-API-Key: <YOUR_API_KEY>" \
  -d '{ "q":"technology reviews", "limit":5 }'
# Playlists (lofi, last year)
curl -X POST "https://api.yeb.to/v1/youtube/search/playlists" \
  -H "Accept: application/json" -H "Content-Type: application/json" \
  -H "X-API-Key: <YOUR_API_KEY>" \
  -d '{ "q":"lofi chill", "published_after":"2024-11-01", "limit":8 }'

#Parameters that actually matter

ParamTypeRequiredPractical guidance
api_keystringYes Keep server-side or sign short-lived tokens at the edge.
qstringYes* Query text. Optional only for autocomplete (empty → empty suggestions).
limitintNo 1–50 (default 25). Use 8/12/24 for tidy grids.
sortstringNo relevance (default) · date · rating · title · viewCount.
published_after/published_beforedateNo YYYY-MM-DD. We normalize to ISO; invalid inputs are ignored safely.
durationstringNo Videos only: any | short | medium | long.
hlstringNo Autocomplete UI language (ISO-639-1, e.g. en, de, tr).

#Reading & acting on responses

#Autocomplete — interpretation

{
  "data": {
    "query": "minecraft survival",
    "lang": "en",
    "suggestions": ["minecraft survival house","minecraft survival guide"],
    "cnt_results": 2
  }
}
  • Use top suggestions as title leads; echo 1–2 in description for better CTR + intent match.

#Videos — interpretation

{
  "data": {
    "cnt_results": 1,
    "videos": [
      {
        "id": "dQw4w9WgXcQ",
        "title": "How to draw a cat",
        "publishedAt": "2025-06-05T14:00:01Z",
        "channelId": "UCabc123",
        "durationISO": "PT3M45S",
        "views": 15230
      }
    ]
  }
}
  • Pipe id into youtube/video/* to check engagement, restrictions, and trending signals.
  • Use publishedAt with your calendar to time responsive mixes while the topic is hot.

#Channels — interpretation

{
  "data": {
    "cnt_results": 2,
    "channels": [
      {
        "id": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
        "title": "Google Developers",
        "description": "The official Google Developers channel.",
        "publishedAt": "2007-08-23T00:34:43Z",
        "thumb": "https://yt3.ggpht.com/…"
      }
    ]
  }
}
  • Enrich each id with youtube/channel/info and statistics to prioritize partners.

#Playlists — interpretation

{
  "data": {
    "cnt_results": 1,
    "playlists": [
      {
        "id": "PL12345ABCDE",
        "title": "Lo-Fi Chill Beats",
        "publishedAt": "2024-11-17T10:00:00Z",
        "channelId": "UCLofi123",
        "items": 35
      }
    ]
  }
}
  • Sort by items to locate big curators; track publish cadence via publishedAt.

#Practical recipes

  • Idea mining per locale: Run autocomplete with hl in target languages; harvest 10–20 suggestions; group by stem.
  • Fresh topic tracker: videos with sort=date + published_after = last 7–30 days → push timely mixes.
  • Playlist outreach: Use playlists to find curators (high items); pitch your best-fitting mix.
  • Competitor map: channels → enrich with channel statistics and info; tag by topic for dashboards.

#YouTube identifiers you’ll use

FieldWhat it isHow to use
videoId 11-char video ID Feed into youtube/video/* endpoints (engagement, restrictions, audit).
channelId Canonical channel ID (UC…) Resolve to metadata via youtube/channel/*.
playlistId Playlist identifier Open as https://www.youtube.com/playlist?list={playlistId} for QA or outreach.

#Errors & troubleshooting

  • 400 "Missing "action" parameter" — Ensure routing sets the action segment.
  • 400 "Missing "q" (query) parameter" — Required for all except autocomplete.
  • No 4xx on bad dates — invalid published_after/before are ignored (safe default).
  • sort outside allowed values quietly falls back to relevance.

#API Changelog (youtube/search)

2026-03-07
Standardized response envelope. All search endpoints now return results under data (e.g., { "data": { "videos": [...] }}) for consistency across the suite.
2026-03-01
Date filters. Added published_after/published_before (YYYY-MM-DD) to videos/channels/playlists; normalized to ISO internally.
2026-02-23
Sorting parity. Unified sort values (relevance, date, rating, title, viewCount). Invalid values now fall back to relevance without errors.
2026-02-14
Autocomplete locales. Added hl for language-aware suggestions; tuned parsing for better result counts.

Try the Playgrounds attached to each endpoint above with your own queries to see live shapes and decide which filters matter for your workflow.

Často kladené otázky

Můžete odeslat až 20 požadavků za sekundu, v souladu s globálním burst limitem.

Můžete kombinovat klíčové slovo, úroveň bezpečného vyhledávání, rozsah data publikace, délku (videa), řazení a limit výsledků (1-50).

Ano. Každý požadavek, i ten s chybou, spotřebovává kredity. Vaše kredity jsou vázány na počet požadavků, bez ohledu na úspěch nebo neúspěch. Pokud je chyba jasně způsobena problémem platformy na naší straně, obnovíme dotčené kredity (bez peněžních refundací).

Kontaktujte nás na [email protected]. Zpětnou vazbu bereme vážně—pokud je váš report chyby nebo žádost o funkci smysluplná, můžeme API rychle opravit nebo vylepšit a poskytnout vám 50 bezplatných kreditů jako poděkování.

Závisí na API a někdy i na endpointu. Některé endpointy používají data z externích zdrojů, které mohou mít přísnější limity. Limity také vynucujeme, abychom zabránili zneužití a udrželi stabilitu platformy. Konkrétní limit pro každý endpoint naleznete v dokumentaci.

Fungujeme na kreditovém systému. Kredity jsou předplacené, nevratné jednotky, které utrácíte za API volání a nástroje. Kredity se spotřebovávají FIFO (nejstarší první) a jsou platné 12 měsíců od data nákupu. Dashboard zobrazuje datum každého nákupu a jeho expirace.

Ano. Všechny zakoupené kredity (včetně zlomkových zůstatků) jsou platné 12 měsíců od nákupu. Nevyužité kredity automaticky expirují a jsou trvale smazány na konci období platnosti. Expirované kredity nelze obnovit ani převést na hotovost nebo jinou hodnotu. Přechodné pravidlo: kredity zakoupené před 22. 9. 2025 se považují za zakoupené 22. 9. 2025 a expirují 22. 9. 2026 (pokud nebyla při nákupu uvedena dřívější expirace).

Ano—v rámci období platnosti. Nevyužité kredity zůstávají dostupné a převádějí se z měsíce na měsíc, dokud neexpirují 12 měsíců po nákupu.

Kredity jsou nevratné. Kupujte pouze to, co potřebujete—vždy si můžete dobit později. Pokud chyba na straně platformy způsobí neúspěšné stržení, můžeme po prošetření obnovit dotčené kredity. Žádné peněžní refundace.

Ceny jsou stanoveny v kreditech, ne v dolarech. Každý endpoint má svou vlastní cenu—viz odznak „Kredity / požadavek" výše. Vždy přesně víte, kolik utrácíte.
← Zpět na API