videos-search

À UTILISER POUR la recherche de vidéos. Retourne des vidéos avec titre, URL, miniature, durée, nombre de vues, créateur. Prend en charge les filtres de fraîcheur, SafeSearch et la pagination.

npx skills add https://github.com/brave/brave-search-skills --skill videos-search

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.views et video.creator pour 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=pd ou freshness=pw pour 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.com ou site:vimeo.com pour 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) avec count pour plus de résultats
  • Résultats max : Jusqu'à 50 résultats par requête

Skills similaires