Recherche de Vidéos
Clé API requise : Obtenez-en une à https://api.search.brave.com
Plan : Inclus dans le plan Search. Voir https://api-dashboard.search.brave.com/app/subscriptions/subscribe
Démarrage rapide (cURL)
Recherche basique
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}"
Avec paramètres
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
Authentification : Header X-Subscription-Token: <API_KEY>
Note : Les deux méthodes GET et POST sont supportées. POST est utile pour les requêtes longues.
Paramètres
| Paramètre | Type | Requis | Défaut | Description |
|---|---|---|---|---|
q |
string | Oui | - | Requête de recherche (1-400 caractères, max 50 mots) |
country |
string | Non | US |
Pays de recherche (code pays sur 2 lettres ou ALL) |
search_lang |
string | Non | en |
Préférence de langue (code langue 2+ caractères) |
ui_lang |
string | Non | en-US |
Langue de l'interface (ex. "en-US") |
count |
int | Non | 20 |
Nombre de résultats (1-50) |
offset |
int | Non | 0 |
Décalage de page (0-9) |
safesearch |
string | Non | moderate |
Filtre contenu adulte (off/moderate/strict) |
freshness |
string | Non | - | Filtre temporel (pd/pw/pm/py ou plage de dates) |
spellcheck |
bool | Non | true |
Correction automatique de la requête |
operators |
bool | Non | true |
Appliquer les opérateurs de recherche |
include_fetch_metadata |
bool | Non | false |
Inclure fetched_content_timestamp dans les résultats |
Valeurs de Freshness
| Valeur | Description |
|---|---|
pd |
Jour passé (24 heures) |
pw |
Semaine passée (7 jours) |
pm |
Mois passé (31 jours) |
py |
Année passée (365 jours) |
YYYY-MM-DDtoYYYY-MM-DD |
Plage de dates personnalisée |
Format de réponse
{
"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"
}
}
]
}
Champs de réponse
| Champ | Type | Description |
|---|---|---|
type |
string | Toujours "videos" |
query.original |
string | Requête de recherche originale |
query.altered |
string? | Requête corrigée par spellcheck (si modifiée) |
query.cleaned |
string? | Requête nettoyée/normalisée |
query.spellcheck_off |
bool? | Si spellcheck a été désactivé |
query.show_strict_warning |
bool? | Vrai si safesearch strict a bloqué des résultats adultes |
query.search_operators |
object? | Opérateurs appliqués (applied, cleaned_query, sites) |
extra.might_be_offensive |
bool | Si les résultats peuvent contenir du contenu offensant |
results[].type |
string | Toujours "video_result" |
results[].url |
string | URL source de la vidéo |
results[].title |
string | Titre de la vidéo |
results[].description |
string? | Description de la vidéo |
results[].age |
string? | Âge lisible (ex. "6 mois ago") ou date absolue (ex. "February 12, 2025") |
results[].page_age |
string? | Âge de la page depuis la source (datetime ISO) |
results[].page_fetched |
string? | Datetime ISO du dernier fetch de la page (ex. 2025-02-12T15:00:00Z) |
results[].fetched_content_timestamp |
int? | Timestamp du fetch (uniquement avec include_fetch_metadata=true) |
results[].video.duration |
string? | Chaîne de durée (format variable) |
results[].video.views |
int? | Nombre de vues en tant qu'entier |
results[].video.creator |
string? | Nom du canal/créateur |
results[].video.publisher |
string? | Plateforme (YouTube, Vimeo, etc.) |
results[].video.requires_subscription |
bool? | Si la vidéo nécessite un abonnement |
results[].video.tags |
list[str]? | Tags pertinents pour la vidéo |
results[].video.author |
object? | Profil auteur |
results[].video.author.name |
string | Nom de l'auteur |
results[].video.author.url |
string | URL du profil auteur |
results[].video.author.long_name |
string? | Nom auteur étendu |
results[].video.author.img |
string? | URL image profil auteur |
results[].thumbnail.src |
string | URL vignette servie |
results[].thumbnail.original |
string? | URL vignette originale |
results[].meta_url.scheme |
string? | Schéma protocole URL |
results[].meta_url.netloc |
string? | Localisation réseau |
results[].meta_url.hostname |
string? | Nom de domaine en minuscules |
results[].meta_url.favicon |
string? | URL favicon |
results[].meta_url.path |
string? | Chemin URL |
Opérateurs de recherche
Utilisez les opérateurs de recherche pour affiner les résultats :
site:youtube.com- Limiter à un site spécifique"exact phrase"- Correspondance exacte-exclude- Exclure un terme
Définissez operators=false pour désactiver l'analyse des opérateurs.
Cas d'usage
- Recherche de contenu vidéo : Trouvez des tutoriels, explications et critiques par sujet. Utilisez les métadonnées
video.duration,video.viewsetvideo.creatorpour filtrer et classer les résultats par programmation. Préférez videos-search à web-search quand vous avez besoin d'un index vidéo dédié avec des métadonnées enrichies (durée, vues, créateur, tags) et jusqu'à 50 résultats par requête. - Surveillance vidéo fraîche : Utilisez
freshness=pdoufreshness=pwpour suivre le contenu vidéo fraîchement publié sur les tendances ou sujets spécifiques. - Recherche spécifique à une plateforme : Utilisez les opérateurs
site:youtube.comousite:vimeo.compour cibler des plateformes vidéo spécifiques. - Extraction de métadonnées vidéo : Obtenez les nombre de vues, durées, infos créateur et tags pour l'analyse, la curation de contenu ou les systèmes de recommandation.
Notes
- Pagination : Utilisez
offset(0-9) aveccountpour plus de résultats - Résultats max : Jusqu'à 50 résultats par requête