videos-search

安装量: 65
排名: #11616

安装

npx skills add https://github.com/brave/brave-search-skills --skill videos-search
Videos Search
Requires API Key
Get one at
https://api.search.brave.com
Plan
Included in the
Search
plan. See
https://api-dashboard.search.brave.com/app/subscriptions/subscribe
Quick Start (cURL)
Basic Search
curl
-s
"https://api.search.brave.com/res/v1/videos/search?q=python+tutorial"
\
-H
"Accept: application/json"
\
-H
"X-Subscription-Token:
${BRAVE_SEARCH_API_KEY}
"
With Parameters
curl
-s
"https://api.search.brave.com/res/v1/videos/search"
\
-H
"Accept: application/json"
\
-H
"X-Subscription-Token:
${BRAVE_SEARCH_API_KEY}
"
\
-G
\
--data-urlencode
"q=machine learning explained"
\
--data-urlencode
"country=US"
\
--data-urlencode
"search_lang=en"
\
--data-urlencode
"count=20"
\
--data-urlencode
"freshness=pm"
Endpoint
GET https://api.search.brave.com/res/v1/videos/search
POST https://api.search.brave.com/res/v1/videos/search
Authentication
:
X-Subscription-Token:
header
Note
Both GET and POST methods are supported. POST is useful for long queries.
Parameters
Parameter
Type
Required
Default
Description
q
string
Yes
-
Search query (1-400 chars, max 50 words)
country
string
No
US
Search country (2-letter country code or
ALL
)
search_lang
string
No
en
Language preference (2+ char language code)
ui_lang
string
No
en-US
UI language (e.g., "en-US")
count
int
No
20
Number of results (1-50)
offset
int
No
0
Page offset (0-9)
safesearch
string
No
moderate
Adult content filter (
off
/
moderate
/
strict
)
freshness
string
No
-
Time filter (
pd
/
pw
/
pm
/
py
or date range)
spellcheck
bool
No
true
Auto-correct query
operators
bool
No
true
Apply search operators
include_fetch_metadata
bool
No
false
Include
fetched_content_timestamp
in results
Freshness Values
Value
Description
pd
Past day (24 hours)
pw
Past week (7 days)
pm
Past month (31 days)
py
Past year (365 days)
YYYY-MM-DDtoYYYY-MM-DD
Custom date range
Response Format
{
"type"
:
"videos"
,
"query"
:
{
"original"
:
"python tutorial"
,
"spellcheck_off"
:
false
}
,
"extra"
:
{
"might_be_offensive"
:
false
}
,
"results"
:
[
{
"type"
:
"video_result"
,
"title"
:
"Python Tutorial for Beginners"
,
"url"
:
"https://www.youtube.com/watch?v=rfscVS0vtbw"
,
"description"
:
"Learn Python programming from scratch..."
,
"age"
:
"February 12, 2025"
,
"page_age"
:
"2025-02-12T00:00:00"
,
"page_fetched"
:
"2025-02-12T15:00:00Z"
,
"thumbnail"
:
{
"src"
:
"https://imgs.search.brave.com/..."
,
"original"
:
"https://i.ytimg.com/vi/rfscVS0vtbw/hqdefault.jpg"
}
,
"video"
:
{
"duration"
:
"03:45:00"
,
"views"
:
1523000
,
"creator"
:
"freeCodeCamp"
,
"publisher"
:
"YouTube"
,
"requires_subscription"
:
false
,
"tags"
:
[
"python"
,
"programming"
]
,
"author"
:
{
"name"
:
"freeCodeCamp.org"
,
"url"
:
"https://www.youtube.com/@freecodecamp"
}
}
,
"meta_url"
:
{
"scheme"
:
"https"
,
"netloc"
:
"youtube.com"
,
"hostname"
:
"www.youtube.com"
,
"favicon"
:
"https://imgs.search.brave.com/..."
,
"path"
:
"\u203a watch"
}
}
]
}
Response Fields
Field
Type
Description
type
string
Always
"videos"
query.original
string
The original search query
query.altered
string?
Spellcheck-corrected query (if changed)
query.cleaned
string?
Cleaned/normalized query
query.spellcheck_off
bool?
Whether spellcheck was disabled
query.show_strict_warning
bool?
True if strict safesearch blocked adult results
query.search_operators
object?
Applied search operators (
applied
,
cleaned_query
,
sites
)
extra.might_be_offensive
bool
Whether results may contain offensive content
results[].type
string
Always
"video_result"
results[].url
string
Source URL of the video
results[].title
string
Video title
results[].description
string?
Video description
results[].age
string?
Human-readable age (e.g. "6 months ago") or absolute date (e.g. "February 12, 2025")
results[].page_age
string?
Page age from source (ISO datetime)
results[].page_fetched
string?
ISO datetime when page was last fetched (e.g.
2025-02-12T15:00:00Z
)
results[].fetched_content_timestamp
int?
Fetch timestamp (only with
include_fetch_metadata=true
)
results[].video.duration
string?
Time string (variable format)
results[].video.views
int?
View count as integer
results[].video.creator
string?
Channel/creator name
results[].video.publisher
string?
Platform (YouTube, Vimeo, etc.)
results[].video.requires_subscription
bool?
Whether video requires a subscription
results[].video.tags
list[str]?
Tags relevant to the video
results[].video.author
object?
Author profile
results[].video.author.name
string
Author name
results[].video.author.url
string
Author profile URL
results[].video.author.long_name
string?
Extended author name
results[].video.author.img
string?
Author profile image URL
results[].thumbnail.src
string
Served thumbnail URL
results[].thumbnail.original
string?
Original thumbnail URL
results[].meta_url.scheme
string?
URL protocol scheme
results[].meta_url.netloc
string?
Network location
results[].meta_url.hostname
string?
Lowercased domain name
results[].meta_url.favicon
string?
Favicon URL
results[].meta_url.path
string?
URL path
Search Operators
Use search operators to refine results:
site:youtube.com
- Limit to specific site
"exact phrase"
- Match exact phrase
-exclude
- Exclude term
Set
operators=false
to disable operator parsing.
Use Cases
Video content research
Find tutorials, explainers, and reviews by topic. Use the
video.duration
,
video.views
, and
video.creator
metadata to filter and rank results programmatically. Prefer videos-search over web-search when you need a dedicated video index with richer metadata (duration, views, creator, tags) and up to 50 results per request.
Fresh video monitoring
Use
freshness=pd
or
freshness=pw
to track newly published video content on trending topics or specific subjects.
Platform-specific search
Use
site:youtube.com
or
site:vimeo.com
operators to target specific video platforms.
Video metadata extraction
Get view counts, durations, creator info, and tags for analytics, content curation, or recommendation systems.
Notes
Pagination
Use
offset
(0-9) with
count
for more results
Max results
Up to 50 results per request
返回排行榜