YouTube Search API

Videolar, kanallar, oynatma listeleri ve sorgu otomatik tamamlama için hızlı, filtrelenebilir arama.

Ne yapabilirsiniz?
Çok filtreli YouTube araması

Videoları, kanalları veya oynatma listelerini tek çağrıda arayın.

Anlık otomatik tamamlama ipuçları

Kullanıcılar yazarken sorgu önerileri alın.

Tarih ve süre filtreleri

Yayın tarihi ve süre ile sonuçları hızla daraltın.

Canlı Dene
99.9 % Çalışma Süresi
153.4ms Yanıt
20 req/s
0.01 Kredi / istek

Autocomplete


POST https://api.yeb.to/v1/youtube/search/autocomplete
ParametreTürZorunluAçıklama
api_key string evet Your API key
q string evet User query
hl string isteğe bağlı Language (ISO-639-1, default en)

Örnek

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

Yanıt Örneği

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

Yanıt Kodları

KodAçıklama
200 Successİstek başarıyla işlendi.
400 Bad RequestGiriş doğrulama başarısız.
401 UnauthorizedEksik / yanlış API anahtarı.
403 ForbiddenAnahtar etkin değil veya izin verilmiyor.
429 Rate LimitÇok fazla istek.
500 Server ErrorBeklenmeyen hata.

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
ParametreTürZorunluAçıklama
api_key string evet Your API key
q string evet Search keywords
limit int isteğe bağlı 1-50 (default 25)
sort string isteğe bağlı relevance | date | rating | title | viewCount
published_after date isteğe bağlı YYYY-MM-DD
published_before date isteğe bağlı YYYY-MM-DD
duration string isteğe bağlı any | short | medium | long

Örnek

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

Yanıt Örneği

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

Yanıt Kodları

KodAçıklama
200 Successİstek başarıyla işlendi.
400 Bad RequestGiriş doğrulama başarısız.
401 UnauthorizedEksik / yanlış API anahtarı.
403 ForbiddenAnahtar etkin değil veya izin verilmiyor.
429 Rate LimitÇok fazla istek.
500 Server ErrorBeklenmeyen hata.

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
ParametreTürZorunluAçıklama
api_key string evet Your API key
q string evet Search keywords
limit int isteğe bağlı 1-50 (default 25)
sort string isteğe bağlı relevance | date | rating | title | viewCount
published_after date isteğe bağlı YYYY-MM-DD
published_before date isteğe bağlı YYYY-MM-DD

Örnek

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

Yanıt Örneği

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

Yanıt Kodları

KodAçıklama
200 Successİstek başarıyla işlendi.
400 Bad RequestGiriş doğrulama başarısız.
401 UnauthorizedEksik / yanlış API anahtarı.
403 ForbiddenAnahtar etkin değil veya izin verilmiyor.
429 Rate LimitÇok fazla istek.
500 Server ErrorBeklenmeyen hata.

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
ParametreTürZorunluAçıklama
api_key string evet Your API key
q string evet Search keywords
limit int isteğe bağlı 1-50 (default 25)
sort string isteğe bağlı relevance | date | rating | title | viewCount
published_after date isteğe bağlı YYYY-MM-DD
published_before date isteğe bağlı YYYY-MM-DD

Örnek

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

Yanıt Örneği

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

Yanıt Kodları

KodAçıklama
200 Successİstek başarıyla işlendi.
400 Bad RequestGiriş doğrulama başarısız.
401 UnauthorizedEksik / yanlış API anahtarı.
403 ForbiddenAnahtar etkin değil veya izin verilmiyor.
429 Rate LimitÇok fazla istek.
500 Server ErrorBeklenmeyen hata.

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.

Sıkça Sorulan Sorular

Küresel burst limitine uygun olarak saniyede en fazla 20 istek gönderebilirsiniz.

Anahtar kelime, güvenli arama seviyesi, yayın tarihi aralığı, süre (videolar), sıralama ve sonuç limiti (1-50) birleştirilebilir.

Evet. Hata ile sonuçlananlar dahil her istek kredi tüketir. Kredileriniz başarı veya başarısızlıktan bağımsız olarak istek sayısına bağlıdır. Hata açıkça bizim tarafımızdaki bir platform sorunundaysa, etkilenen kredileri geri yükleriz (nakit iade yapılmaz).

[email protected] adresinden bize ulaşın. Geri bildirimleri ciddiye alıyoruz—hata raporunuz veya özellik isteğiniz anlamlıysa, API'yi hızla düzeltebilir veya geliştirebilir ve teşekkür olarak size 50 ücretsiz kredi verebiliriz.

API'ye ve bazen endpoint'e bağlıdır. Bazı endpoint'ler daha katı limitlere sahip olabilecek harici kaynaklardan veri kullanır. Ayrıca kötüye kullanımı önlemek ve platformumuzu stabil tutmak için limitler uyguluyoruz. Her endpoint'in belirli limiti için belgelere bakın.

Kredi sistemiyle çalışıyoruz. Krediler, API çağrıları ve araçlar için harcadığınız ön ödemeli, iade edilemez birimlerdir. Krediler FIFO (en eski önce) sırasıyla tüketilir ve satın alma tarihinden itibaren 12 ay geçerlidir. Kontrol paneli her satın alma tarihini ve son kullanma tarihini gösterir.

Evet. Satın alınan tüm krediler (kesirli bakiyeler dahil) satın almadan itibaren 12 ay geçerlidir. Kullanılmayan krediler geçerlilik süresinin sonunda otomatik olarak sona erer ve kalıcı olarak silinir. Süresi dolan krediler geri yüklenemez veya nakde ya da başka bir değere dönüştürülemez. Geçiş kuralı: 22 Eyl 2025 öncesi satın alınan krediler 22 Eyl 2025'te satın alınmış olarak kabul edilir ve 22 Eyl 2026'da sona erer (satın alma sırasında daha erken bir son kullanma tarihi belirtilmedikçe).

Evet—geçerlilik süreleri içinde. Kullanılmayan krediler mevcut kalır ve satın almadan 12 ay sonra sona erene kadar aydan aya devredilir.

Krediler iade edilemez. Sadece ihtiyacınız olanı satın alın—her zaman daha sonra yükleyebilirsiniz. Bir platform hatası başarısız bir ücretlendirmeye neden olursa, soruşturma sonrası etkilenen kredileri geri yükleyebiliriz. Nakit iade yapılmaz.

Fiyatlar dolar değil kredi olarak belirlenir. Her endpoint'in kendi maliyeti vardır—yukarıdaki "Kredi / istek" rozetine bakın. Her zaman tam olarak ne harcadığınızı bilirsiniz.
← API'lere Dön