GitHubLog in
YouTube Search API

YouTube Search API

Searches YouTube by keyword and returns a page of videos, each with a url the transcript and batch endpoints accept. Results can be filtered by upload date, duration and caption availability, and sorted by relevance or views. With type set to channel or playlist, it returns channels or playlists instead.

Page of results1 creditHowever many videos it lists
Failed requestsFreeA request that fails costs nothing
POST/api/v2/transcripts/searchidempotent

Body parameters

Keyword search query.

curl https://transcriptfetch.com/api/v2/transcripts/search \
  -H "Authorization: Bearer $TRANSCRIPTFETCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"how transformers work","limit":10}'
SuccessExample response envelope
{
  "ok": true,
  "request_id": "req_…",
  "data": {
    "kind": "video_list",
    "source": "search",
    "platform": "youtube",
    "videos": [
      {
        "videoId": "Hq3Lz8pVt2K",
        "url": "https://www.youtube.com/watch?v=Hq3Lz8pVt2K",
        "title": "Transformers, explained step by step",
        "duration": 1580,
        "channel": "Example Channel",
        "publishedAt": "2026-09-08T00:00:00Z",
        "stats": {
          "plays": 184000
        }
      }
    ],
    "next_cursor": "eyJvIjoxMH0"
  },
  "usage": {
    "credits_spent": 1,
    "balance": 656,
    "bytes": 0
  }
}

Every YouTube endpoint

Same call, other platforms:TikTok Search APIInstagram Search API

Frequently asked questions

Is this the YouTube Data API's search.list?

No. It is TranscriptFetch's own search endpoint: no Google project, API key, OAuth or daily quota. One page of results costs 1 credit, and every row's url can go straight to the transcript endpoint.

Which filters does YouTube search support?

upload_date (hour, today, week, month, year), duration (short, medium, long), captions (true keeps only captioned videos) and sort (relevance or views). These are YouTube-only; TikTok and Instagram search take the query alone.

Can I search for channels or playlists rather than videos?

Yes. Send type channel or type playlist. The response's data.kind becomes channel_list or playlist_list, and each row's url is accepted by the channel or playlist endpoint as-is.

How do I page through results?

Each response carries data.next_cursor. Send it back as cursor to get the following page; limit sets the page size, up to 50. Stop when next_cursor is null.