Search videos in a channel by keyword
Keyword-search within a channel. Both `channel` and `q` are required on the first page (pass `continuation` for subsequent pages). To list every upload from a channel without a search keyword, use `/api/v2/channel/videos` instead.
Quick example
curl "https://getyoutubetranscriber.com/api/v2/channel/search?channel=%40TED&q=sleep" \
-H "Authorization: Bearer ytt_your_key_here"Full parameter list, response schema, and try-it samples in every language are below.
Send your API key as Authorization: Bearer <api_key>.
In: header
Query Parameters
Channel identifier. Accepts an @handle (e.g. @TED), a channel URL (e.g. https://www.youtube.com/@TED), or a bare UCID (e.g. UCAuUUnT6oDeKwE6v1NGQxug). Required on the first page (with q); omit and pass continuation on subsequent pages.
1 <= length <= 200Search keyword scoped to the specified channel. Matches against the channel's video titles, descriptions, and tags. Required on the first page. To list every upload from a channel without a keyword, use /api/v2/channel/videos instead.
1 <= length <= 200Cursor for the next page of results. Provide instead of channel + q after the first page.
1 <= length <= 8192Response Body
curl -X GET "http://localhost:3011/api/v2/channel/search?channel=%40TED&q=sleep&continuation=string"{
"results": [
{
"type": "video",
"video_id": "string",
"title": "string",
"channel_id": "string",
"channel_title": "string",
"channel_handle": "string",
"channel_verified": true,
"length_text": "string",
"view_count_text": "string",
"published_time_text": "string",
"has_captions": true,
"thumbnails": [
{
"url": "string",
"width": 0,
"height": 0
}
]
}
],
"result_count": 0,
"continuation_token": "string",
"has_more": true,
"playlist_info": {
"title": "string",
"num_videos": "string",
"description": "string",
"owner_name": "string",
"view_count": "string"
}
}{
"type": "https://getyoutubetranscriber.com/api/errors/validation",
"title": "Validation failed",
"status": 422,
"detail": "video_url is required",
"instance": "/api/v2/transcript",
"request_id": "req_01J0XYZ...",
"code": "E_VALIDATION",
"errors": [
{
"field": "string",
"code": "string",
"message": "string"
}
],
"retry_after": 0
}{
"type": "https://getyoutubetranscriber.com/api/errors/validation",
"title": "Validation failed",
"status": 422,
"detail": "video_url is required",
"instance": "/api/v2/transcript",
"request_id": "req_01J0XYZ...",
"code": "E_VALIDATION",
"errors": [
{
"field": "string",
"code": "string",
"message": "string"
}
],
"retry_after": 0
}{
"type": "https://getyoutubetranscriber.com/api/errors/validation",
"title": "Validation failed",
"status": 422,
"detail": "video_url is required",
"instance": "/api/v2/transcript",
"request_id": "req_01J0XYZ...",
"code": "E_VALIDATION",
"errors": [
{
"field": "string",
"code": "string",
"message": "string"
}
],
"retry_after": 0
}{
"type": "https://getyoutubetranscriber.com/api/errors/validation",
"title": "Validation failed",
"status": 422,
"detail": "video_url is required",
"instance": "/api/v2/transcript",
"request_id": "req_01J0XYZ...",
"code": "E_VALIDATION",
"errors": [
{
"field": "string",
"code": "string",
"message": "string"
}
],
"retry_after": 0
}{
"type": "https://getyoutubetranscriber.com/api/errors/validation",
"title": "Validation failed",
"status": 422,
"detail": "video_url is required",
"instance": "/api/v2/transcript",
"request_id": "req_01J0XYZ...",
"code": "E_VALIDATION",
"errors": [
{
"field": "string",
"code": "string",
"message": "string"
}
],
"retry_after": 0
}{
"type": "https://getyoutubetranscriber.com/api/errors/validation",
"title": "Validation failed",
"status": 422,
"detail": "video_url is required",
"instance": "/api/v2/transcript",
"request_id": "req_01J0XYZ...",
"code": "E_VALIDATION",
"errors": [
{
"field": "string",
"code": "string",
"message": "string"
}
],
"retry_after": 0
}{
"type": "https://getyoutubetranscriber.com/api/errors/validation",
"title": "Validation failed",
"status": 422,
"detail": "video_url is required",
"instance": "/api/v2/transcript",
"request_id": "req_01J0XYZ...",
"code": "E_VALIDATION",
"errors": [
{
"field": "string",
"code": "string",
"message": "string"
}
],
"retry_after": 0
}Resolve Youtube handle GET
Free endpoint. Accepts any @handle, URL, or ID and returns the channel id.
List all videos uploaded by a channel GET
Paginated list of every video on a channel, newest first. Pass `channel` on the first page and `continuation` for subsequent pages. Use this to enumerate a channel's uploads; use `/api/v2/channel/search` when you want to filter by keyword.