curl -H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"input":[{"keyword":"cooking tutorials"}],"limit_per_input":null}' \
"https://api.brightdata.com/datasets/v3/scrape?dataset_id=gd_lk538t2k2p1k3oos71¬ify=false&include_errors=true&type=discover_new&discover_by=keyword"
import requests
response = requests.post(
"https://api.brightdata.com/datasets/v3/scrape",
params={
"dataset_id": "gd_lk538t2k2p1k3oos71",
"notify": "false",
"include_errors": "true",
"type": "discover_new",
"discover_by": "keyword",
},
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"input": [{"keyword": "cooking tutorials"}],
"limit_per_input": None,
},
)
print(response.text)
const params = new URLSearchParams({
dataset_id: "gd_lk538t2k2p1k3oos71",
notify: "false",
include_errors: "true",
type: "discover_new",
discover_by: "keyword",
});
const response = await fetch(`https://api.brightdata.com/datasets/v3/scrape?${params}`, {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
input: [{ keyword: "cooking tutorials" }],
limit_per_input: null,
}),
});
console.log(await response.text());
[
{
"url": "https://www.youtube.com/@channelname",
"handle": "@channelname",
"banner_img": "https://...",
"profile_image": "https://...",
"name": "Channel Name",
"subscribers": 299,
"Description": "Channel description...",
"videos_count": 21,
"created_date": "2024-11-25T00:00:00.000Z",
"views": 98723,
"Details": {"location": "United States"},
"Links": ["youtube.com/@channelname"],
"identifier": "UC...",
"id": "UC...",
"has_podcast": false,
"top_videos": [
{
"Image_url": "https://...",
"posted_time": "3 weeks ago",
"title": "Video Title",
"video_url": "https://www.youtube.com/watch?v=abc",
"views": 11
}
]
}
]
YouTube
Discover YouTube channels by keyword
Discover YouTube channels that match a search keyword with the Bright Data Scraper API: POST /datasets/v3/scrape, dataset_id gd_lk538t2k2p1k3oos71.
POST
/
datasets
/
v3
/
scrape
curl -H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"input":[{"keyword":"cooking tutorials"}],"limit_per_input":null}' \
"https://api.brightdata.com/datasets/v3/scrape?dataset_id=gd_lk538t2k2p1k3oos71¬ify=false&include_errors=true&type=discover_new&discover_by=keyword"
import requests
response = requests.post(
"https://api.brightdata.com/datasets/v3/scrape",
params={
"dataset_id": "gd_lk538t2k2p1k3oos71",
"notify": "false",
"include_errors": "true",
"type": "discover_new",
"discover_by": "keyword",
},
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"input": [{"keyword": "cooking tutorials"}],
"limit_per_input": None,
},
)
print(response.text)
const params = new URLSearchParams({
dataset_id: "gd_lk538t2k2p1k3oos71",
notify: "false",
include_errors: "true",
type: "discover_new",
discover_by: "keyword",
});
const response = await fetch(`https://api.brightdata.com/datasets/v3/scrape?${params}`, {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
input: [{ keyword: "cooking tutorials" }],
limit_per_input: null,
}),
});
console.log(await response.text());
[
{
"url": "https://www.youtube.com/@channelname",
"handle": "@channelname",
"banner_img": "https://...",
"profile_image": "https://...",
"name": "Channel Name",
"subscribers": 299,
"Description": "Channel description...",
"videos_count": 21,
"created_date": "2024-11-25T00:00:00.000Z",
"views": 98723,
"Details": {"location": "United States"},
"Links": ["youtube.com/@channelname"],
"identifier": "UC...",
"id": "UC...",
"has_podcast": false,
"top_videos": [
{
"Image_url": "https://...",
"posted_time": "3 weeks ago",
"title": "Video Title",
"video_url": "https://www.youtube.com/watch?v=abc",
"views": 11
}
]
}
]
Query Parameters
string
default:"gd_lk538t2k2p1k3oos71"
required
The dataset ID used for this request.
Must be set to
gd_lk538t2k2p1k3oos71 to collect Discover Channels by Keyword data.string
default:"discover_new"
Must be set to
discover_new.string
default:"keyword"
Must be set to
keyword.boolean
default:false
Whether to send notifications when the request is completed.
boolean
default:true
Whether to include errors in the response.
Request Body
object[]
required
curl -H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"input":[{"keyword":"cooking tutorials"}],"limit_per_input":null}' \
"https://api.brightdata.com/datasets/v3/scrape?dataset_id=gd_lk538t2k2p1k3oos71¬ify=false&include_errors=true&type=discover_new&discover_by=keyword"
import requests
response = requests.post(
"https://api.brightdata.com/datasets/v3/scrape",
params={
"dataset_id": "gd_lk538t2k2p1k3oos71",
"notify": "false",
"include_errors": "true",
"type": "discover_new",
"discover_by": "keyword",
},
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"input": [{"keyword": "cooking tutorials"}],
"limit_per_input": None,
},
)
print(response.text)
const params = new URLSearchParams({
dataset_id: "gd_lk538t2k2p1k3oos71",
notify: "false",
include_errors: "true",
type: "discover_new",
discover_by: "keyword",
});
const response = await fetch(`https://api.brightdata.com/datasets/v3/scrape?${params}`, {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
input: [{ keyword: "cooking tutorials" }],
limit_per_input: null,
}),
});
console.log(await response.text());
[
{
"url": "https://www.youtube.com/@channelname",
"handle": "@channelname",
"banner_img": "https://...",
"profile_image": "https://...",
"name": "Channel Name",
"subscribers": 299,
"Description": "Channel description...",
"videos_count": 21,
"created_date": "2024-11-25T00:00:00.000Z",
"views": 98723,
"Details": {"location": "United States"},
"Links": ["youtube.com/@channelname"],
"identifier": "UC...",
"id": "UC...",
"has_podcast": false,
"top_videos": [
{
"Image_url": "https://...",
"posted_time": "3 weeks ago",
"title": "Video Title",
"video_url": "https://www.youtube.com/watch?v=abc",
"views": 11
}
]
}
]
Was this page helpful?