YouTube Search API — Видеа, канали и още | YEB

Бързо търсене в YouTube с филтри за видеа, канали, плейлисти и автоматично довършване на заявки. Създайте инструменти за откриване на съдържание със сортиране, пагинация и мулти-тип резултати чрез REST API.

Какво можете да правите?
YouTube търсене с множество филтри

Търсете видеа, канали или плейлисти с една заявка.

Мигновени подсказки за автодовършване

Получавайте предложения за заявки, докато потребителите пишат.

Филтри по дата и продължителност

Дата на публикуване и продължителност за бързо стесняване на резултатите.

Изпробвай на живо
99.9 % Време на работа
153.4ms Отговор
20 req/s
0.01 Кредити / заявка

Autocomplete


POST https://api.yeb.to/v1/youtube/search/autocomplete
ПараметърТипЗадл.Описание
api_key string да Your API key
q string да User query
hl string опц Language (ISO-639-1, default en)

Пример

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"
}'

Пример за отговор

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

Кодове на отговор

КодОписание
200 SuccessЗаявката е обработена успешно.
400 Bad RequestНеуспешна валидация на входните данни.
401 UnauthorizedЛипсващ / грешен API ключ.
403 ForbiddenКлючът е неактивен или без достъп.
429 Rate LimitТвърде много заявки.
500 Server ErrorНеочаквана грешка.

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
ПараметърТипЗадл.Описание
api_key string да Your API key
q string да Search keywords
limit int опц 1-50 (default 25)
sort string опц relevance | date | rating | title | viewCount
published_after date опц YYYY-MM-DD
published_before date опц YYYY-MM-DD
duration string опц any | short | medium | long

Пример

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"
}'

Пример за отговор

{
  "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}

Кодове на отговор

КодОписание
200 SuccessЗаявката е обработена успешно.
400 Bad RequestНеуспешна валидация на входните данни.
401 UnauthorizedЛипсващ / грешен API ключ.
403 ForbiddenКлючът е неактивен или без достъп.
429 Rate LimitТвърде много заявки.
500 Server ErrorНеочаквана грешка.

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
ПараметърТипЗадл.Описание
api_key string да Your API key
q string да Search keywords
limit int опц 1-50 (default 25)
sort string опц relevance | date | rating | title | viewCount
published_after date опц YYYY-MM-DD
published_before date опц YYYY-MM-DD

Пример

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
}'

Пример за отговор

{
  "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}

Кодове на отговор

КодОписание
200 SuccessЗаявката е обработена успешно.
400 Bad RequestНеуспешна валидация на входните данни.
401 UnauthorizedЛипсващ / грешен API ключ.
403 ForbiddenКлючът е неактивен или без достъп.
429 Rate LimitТвърде много заявки.
500 Server ErrorНеочаквана грешка.

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
ПараметърТипЗадл.Описание
api_key string да Your API key
q string да Search keywords
limit int опц 1-50 (default 25)
sort string опц relevance | date | rating | title | viewCount
published_after date опц YYYY-MM-DD
published_before date опц YYYY-MM-DD

Пример

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
}'

Пример за отговор

{
  "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}

Кодове на отговор

КодОписание
200 SuccessЗаявката е обработена успешно.
400 Bad RequestНеуспешна валидация на входните данни.
401 UnauthorizedЛипсващ / грешен API ключ.
403 ForbiddenКлючът е неактивен или без достъп.
429 Rate LimitТвърде много заявки.
500 Server ErrorНеочаквана грешка.

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 — Видеа, канали и още | YEB — 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.

Често задавани въпроси

Можете да изпращате до 20 заявки в секунда, в съответствие с глобалния burst лимит.

Можете да комбинирате ключова дума, ниво на безопасно търсене, период на публикуване, продължителност (за видеа), подредба и лимит на резултатите (1-50).

Да. Всяка заявка, дори тази с грешка, изразходва кредити. Това е така, защото кредитите ви са обвързани с броя заявки, независимо от успеха или неуспеха. Ако грешката е ясно по наша вина, ще възстановим засегнатите кредити (без парично възстановяване).

Свържете се с нас на [email protected]. Приемаме обратната връзка сериозно — ако докладът ви за бъг или заявката за функционалност е смислена, можем да поправим или подобрим API-то бързо и да ви предоставим 50 безплатни кредита като благодарност.

Зависи от API-то и понякога дори от конкретната крайна точка. Някои крайни точки използват данни от външни източници, които може да имат по-строги ограничения. Ние също налагаме лимити за предотвратяване на злоупотреби и поддържане стабилността на платформата. Проверете документацията за конкретния лимит на всяка крайна точка.

Работим на кредитна система. Кредитите са предплатени, невъзстановими единици, които изразходвате за API извиквания и инструменти. Кредитите се изразходват FIFO (първи закупен, първи използван) и са валидни 12 месеца от датата на покупка. Таблото показва датата на покупка и изтичането на всяка покупка.

Да. Всички закупени кредити (включително дробни баланси) са валидни 12 месеца от покупката. Неизползваните кредити автоматично изтичат и се изтриват окончателно в края на периода на валидност. Изтеклите кредити не могат да бъдат възстановени или конвертирани в пари или друга стойност. Преходно правило: кредити, закупени преди 22 септ. 2025 г., се третират като закупени на 22 септ. 2025 г. и изтичат на 22 септ. 2026 г. (освен ако не е посочено по-ранно изтичане при покупката).

Да — в рамките на периода им на валидност. Неизползваните кредити остават налични и се прехвърлят от месец на месец, докато не изтекат 12 месеца след покупката.

Кредитите са невъзстановими. Купувайте само каквото ви трябва — винаги можете да заредите по-късно. Ако грешка от наша страна причини неуспешно таксуване, може да възстановим засегнатите кредити след проверка. Без парично възстановяване.

Цените са определени в кредити, не в долари. Всяка крайна точка посочва собствената си цена — вижте бадж „Кредити / заявка" по-горе. Винаги ще знаете точно колко изразходвате.
← Обратно към API-тата