Search: list

Affiche une collection de résultats de recherche correspondant aux paramètres de requête spécifiés dans la requête API. Par défaut, un ensemble de résultats de recherche identifie les ressources video, channel et playlist correspondantes, mais vous pouvez également configurer des requêtes pour ne récupérer qu'un type de ressource spécifique.

Impact sur les quotas:un appel à cette méthode entraîne un coût du quota de 100 unités.

Cas d'utilisation courants

Requête

Requête HTTP

GET https://www.googleapis.com/youtube/v3/search

Paramètres

Le tableau suivant répertorie les paramètres compatibles avec cette requête. Tous les paramètres répertoriés sont des paramètres de requête.

Paramètres
Paramètres obligatoires
part string
Le paramètre part spécifie une liste d'une ou de plusieurs propriétés de ressource search séparées par une virgule, qui seront incluses dans la réponse de l'API. Définissez la valeur du paramètre sur snippet.
Filtres (spécifiez zéro ou un des paramètres suivants)
forContentOwner boolean
Ce paramètre ne peut être utilisé que dans une demande autorisée en bonne et due forme, et est destiné exclusivement aux partenaires de contenu YouTube.

Le paramètre forContentOwner limite la recherche aux vidéos appartenant au propriétaire de contenu identifié par le paramètre onBehalfOfContentOwner. Si forContentOwner est défini sur "true", la requête doit également répondre aux exigences suivantes:
  • Le paramètre onBehalfOfContentOwner est obligatoire.
  • L'utilisateur qui autorise la demande doit utiliser un compte associé au propriétaire de contenu spécifié.
  • La valeur du paramètre type doit être définie sur video.
  • Aucun des autres paramètres suivants ne peut être défini: videoDefinition, videoDimension, videoDuration, videoEmbeddable, videoLicense, videoPaidProductPlacement, videoSyndicated, videoType.
forDeveloper boolean
Ce paramètre ne peut être utilisé que dans une demande autorisée correctement. Le paramètre forDeveloper limite la recherche aux vidéos mises en ligne via l'application ou le site Web du développeur. Le serveur d'API utilise les identifiants d'autorisation de la requête pour identifier le développeur. Le paramètre forDeveloper peut être utilisé avec des paramètres de recherche facultatifs tels que le paramètre q.

Pour cette fonctionnalité, chaque vidéo mise en ligne est automatiquement taguée avec le numéro de projet associé à l'application du développeur dans la Google Developers Console.

Lorsqu'une requête de recherche définit ensuite le paramètre forDeveloper sur true, le serveur d'API utilise les identifiants d'autorisation de la requête pour identifier le développeur. Par conséquent, un développeur peut limiter les résultats aux vidéos mises en ligne via son application ou son propre site Web, mais pas aux vidéos mises en ligne via d'autres applications ou sites.
forMine boolean
Ce paramètre ne peut être utilisé que dans une demande autorisée correctement. Le paramètre forMine limite la recherche aux vidéos appartenant à l'utilisateur authentifié. Si vous définissez ce paramètre sur true, la valeur du paramètre type doit également être définie sur video. De plus, aucun des autres paramètres suivants ne peut être défini dans la même requête: videoDefinition, videoDimension, videoDuration, videoEmbeddable, videoLicense, videoPaidProductPlacement, videoSyndicated, videoType.
Paramètres facultatifs
channelId string
Le paramètre channelId indique que la réponse de l'API ne doit contenir que les ressources créées par le canal.

Remarque:Les résultats de recherche sont limités à 500 vidéos si votre demande spécifie une valeur pour le paramètre channelId et la valeur du paramètre type sur video, mais pas l'un des filtres forContentOwner, forDeveloper ou forMine.
channelType string
Le paramètre channelType vous permet de limiter une recherche à un type de canal spécifique.

Les valeurs acceptées sont les suivantes :
  • any : renvoie toutes les chaînes.
  • show : ne récupère que les émissions.
eventType string
Le paramètre eventType limite une recherche à la diffusion d'événements. Si vous spécifiez une valeur pour ce paramètre, vous devez également définir la valeur du paramètre type sur video.

Les valeurs acceptées sont les suivantes :
  • completed : inclut uniquement les diffusions terminées.
  • live : inclut uniquement les diffusions actives.
  • upcoming : inclut uniquement les diffusions à venir.
location string
Associé au paramètre locationRadius, le paramètre location définit une zone géographique circulaire et limite également la recherche aux vidéos qui spécifient, dans leurs métadonnées, une zone géographique appartenant à cette zone. La valeur du paramètre est une chaîne qui spécifie les coordonnées de latitude/longitude, par exemple (37.42307,-122.08427).

  • La valeur du paramètre location identifie le point au centre de la zone.
  • Le paramètre locationRadius spécifie la distance maximale entre le lieu associé à la vidéo et ce point pour que la vidéo soit toujours incluse dans les résultats de recherche.
L'API renvoie une erreur si votre requête spécifie une valeur pour le paramètre location, mais pas pour le paramètre locationRadius.

Remarque:Si vous spécifiez une valeur pour ce paramètre, vous devez également définir la valeur du paramètre type sur video.
locationRadius string
Associé au paramètre location, le paramètre locationRadius définit une zone géographique circulaire.

La valeur du paramètre doit être un nombre à virgule flottante suivi d'une unité de mesure. Les unités de mesure valides sont m, km, ft et mi. Exemples de valeurs de paramètres valides : 1500m, 5km, 10000ft et 0.75mi. L'API n'accepte pas les valeurs de paramètre locationRadius supérieures à 1 000 kilomètres.

Remarque:Pour en savoir plus, consultez la définition du paramètre location.
maxResults unsigned integer
Le paramètre maxResults spécifie le nombre maximal d'éléments à renvoyer dans l'ensemble de résultats. Les valeurs autorisées vont de 0 à 50, inclus. La valeur par défaut est 5.
onBehalfOfContentOwner string
Ce paramètre ne peut être utilisé que dans une demande autorisée correctement. Remarque:Ce paramètre est destiné exclusivement aux partenaires de contenu YouTube.

Le paramètre onBehalfOfContentOwner indique que les identifiants d'autorisation de la demande identifient un utilisateur du CMS YouTube qui agit au nom du propriétaire de contenu spécifié dans la valeur du paramètre. Ce paramètre est destiné aux partenaires de contenu YouTube qui possèdent et gèrent un grand nombre de chaînes YouTube. Il permet aux propriétaires de contenu de s'authentifier une seule fois et d'accéder à toutes les données de leurs vidéos et de leur chaîne, sans avoir à fournir d'identifiants d'authentification pour chaque chaîne. Le compte CMS avec lequel l'utilisateur s'authentifie doit être associé au propriétaire de contenu YouTube spécifié.
order string
Le paramètre order spécifie la méthode qui sera utilisée pour organiser les ressources dans la réponse de l'API. La valeur par défaut est relevance.

Valeurs acceptées :
  • date : les ressources sont triées dans l'ordre chronologique inverse en fonction de la date de création.
  • rating : les ressources sont triées par ordre décroissant.
  • relevance : les ressources sont triées en fonction de leur pertinence par rapport à la requête de recherche. Il s'agit de la valeur par défaut pour ce paramètre.
  • title : les ressources sont triées par ordre alphabétique, en fonction de leur titre.
  • videoCount : les chaînes sont triées par ordre décroissant du nombre de vidéos mises en ligne.
  • viewCount : les ressources sont triées du nombre de vues par ordre décroissant. Pour les diffusions en direct, les vidéos sont triées en fonction du nombre de spectateurs simultanés pendant la diffusion.
pageToken string
Le paramètre pageToken identifie une page spécifique de l'ensemble de résultats à renvoyer. Dans une réponse de l'API, les propriétés nextPageToken et prevPageToken identifient d'autres pages qui peuvent être récupérées.
publishedAfter datetime
Le paramètre publishedAfter indique que la réponse de l'API ne doit contenir que les ressources créées après l'heure spécifiée ou après celle-ci. Il s'agit d'une valeur date-heure au format RFC 3339 (1970-01-01T00:00:00Z).
publishedBefore datetime
Le paramètre publishedBefore indique que la réponse de l'API ne doit contenir que les ressources créées avant ou au moment spécifié. Il s'agit d'une valeur date-heure au format RFC 3339 (1970-01-01T00:00:00Z).
q string
Le paramètre q indique le terme à rechercher.

Votre demande peut également utiliser les opérateurs booléens NOT (-) et OR (|) pour exclure des vidéos ou trouver des vidéos associées à l'un des termes de recherche. Par exemple, pour rechercher des vidéos correspondant à "nautisme" ou à "voie", définissez la valeur du paramètre q sur boating|sailing. De même, pour rechercher des vidéos correspondant à "nautisme" ou à "voie à voile", mais pas à "pêche", définissez la valeur du paramètre q sur boating|sailing -fishing. Notez que la barre verticale doit être dans une séquence d'échappement lorsqu'elle est envoyée dans votre requête API. La valeur d'échappement de l'URL pour la barre verticale est %7C.
regionCode string
Le paramètre regionCode indique à l'API de renvoyer les résultats de recherche pour les vidéos pouvant être regardées dans le pays spécifié. La valeur du paramètre est un code pays ISO 3166-1 alpha-2.
relevanceLanguage string
Le paramètre relevanceLanguage indique à l'API de renvoyer les résultats de recherche les plus pertinents dans la langue spécifiée. La valeur du paramètre est généralement un code de langue ISO 639-1 à deux lettres. Toutefois, vous devez utiliser les valeurs zh-Hans pour le chinois simplifié et zh-Hant pour le chinois traditionnel. Veuillez noter que des résultats dans d'autres langues s'afficheront s'ils sont hautement pertinents par rapport au terme de recherche.
safeSearch string
Le paramètre safeSearch indique si les résultats de recherche doivent inclure du contenu standard et soumis à des restrictions.

Les valeurs acceptées sont les suivantes :
  • moderate : YouTube filtre certains contenus des résultats de recherche et, au minimum, filtre le contenu soumis à des restrictions dans vos paramètres régionaux. En fonction de leur contenu, les résultats de recherche peuvent être supprimés ou rétrogradés dans les résultats de recherche. Il s'agit de la valeur par défaut du paramètre.
  • none : YouTube ne filtre pas l'ensemble des résultats de recherche.
  • strict : YouTube essaie d'exclure tout contenu soumis à restriction des résultats de recherche. En fonction de leur contenu, les résultats de recherche peuvent être supprimés ou rétrogradés dans les résultats de recherche.
topicId string
Le paramètre topicId indique que la réponse de l'API ne doit contenir que les ressources associées au sujet spécifié. La valeur identifie un ID de sujet Freebase.

Important:En raison de l'abandon de Freebase et de l'API Freebase, le paramètre topicId a commencé à fonctionner différemment depuis le 27 février 2017. À ce moment-là, YouTube a commencé à accepter un petit ensemble d'ID de thèmes sélectionnés. Vous ne pouvez utiliser que ce plus petit ensemble d'ID comme valeurs pour ce paramètre.

Sujets
Sujets musicaux
/m/04rlf Musique (sujet parent)
/m/02mscn musique chrétienne
/m/0ggq0m Musique classique
/m/01lyv Pays
/m/02lkt Électro
/m/0glt670 Hip-hop
/m/05rwpb Musique indépendante
/m/03_d0 Jazz
/m/028sqc Musique d'Asie
/m/0g293 Musique d'Amérique latine
/m/064t9 Pop
/m/06cqb Reggae
/m/06j6l Rythme et blues
/m/06by7 Rock
/m/0gywn Musique soul
Thèmes liés aux jeux vidéo
/m/0bzvm2 Jeux vidéo (sujet parent)
/m/025zzc Jeu d'action
/m/02ntfj Jeu d'action-aventure
/m/0b1vjn Jeu grand public
/m/02hygl Jeu vidéo musical
/m/04q1x3q Jeu vidéo de réflexion
/m/01sjng Jeu vidéo de course
/m/0403l3g Jeu vidéo de rôle
/m/021bp2 Jeu vidéo de simulation
/m/022dc6 Jeu de sport
/m/03hf_rm Jeu vidéo de stratégie
Sujets sportifs
/m/06ntj Sports (sujet parent)
/m/0jm_ Football américain
/m/018jz jouer au base-ball
/m/018w8 Basket-ball
/m/01cgz Boxe
/m/09xp_ Cricket
/m/02vx4 Football américain
/m/037hz Golf
/m/03tmr Hockey sur glace
/m/01h7lh Arts martiaux mixtes
/m/0410tth Sports motorisés
/m/07bs0 Tennis
/m/07_53 Volley-ball
Thèmes du divertissement
/m/02jjt Divertissement (sujet pour les parents)
/m/09kqc Humour
/m/02vxn Films
/m/05qjc Arts du spectacle
/m/066wd Catch
/m/0f2f9 Séries TV
Thèmes liés au style de vie
/m/019_rr Style de vie (sujet pour les parents)
/m/032tl Mode
/m/027x7n Sport
/m/02wbm Restauration
/m/03glg Loisirs
/m/068hy Animaux de compagnie
/m/041xxh Attrait physique [Beauté]
/m/07c1v Technologie
/m/07bxq Tourisme
/m/07yv9 Véhicules
Sujets liés à la société
/m/098wr Société (sujet parent)
/m/09s1f Entreprise
/m/0kt51 Health
/m/01h6rj Armée
/m/05qt0 Politique
/m/06bvp Religion
Autres thèmes
/m/01k8wb Connaissances
type string
Le paramètre type limite une requête de recherche afin qu'elle ne récupère qu'un type de ressource particulier. La valeur est une liste de types de ressources séparés par une virgule. La valeur par défaut est video,channel,playlist.

Valeurs acceptées :
  • channel
  • playlist
  • video
videoCaption string
Le paramètre videoCaption indique si l'API doit filtrer les résultats de recherche de vidéos selon qu'elles comportent ou non des sous-titres. Si vous spécifiez une valeur pour ce paramètre, vous devez également définir la valeur du paramètre type sur video.

Les valeurs acceptées sont les suivantes :
  • any : ne filtre pas les résultats en fonction de la disponibilité des sous-titres.
  • closedCaption : n'incluez que les vidéos avec des sous-titres.
  • none : n'incluez que les vidéos sans sous-titres.
videoCategoryId string
Le paramètre videoCategoryId filtre les résultats de recherche de vidéos en fonction de leur catégorie. Si vous spécifiez une valeur pour ce paramètre, vous devez également définir la valeur du paramètre type sur video.
videoDefinition string
Le paramètre videoDefinition vous permet de limiter une recherche aux vidéos en haute définition (HD) ou en définition standard (SD). Vous pouvez regarder des vidéos HD en 720p minimum, mais des résolutions plus élevées, comme 1080p, peuvent également être disponibles. Si vous spécifiez une valeur pour ce paramètre, vous devez également définir la valeur du paramètre type sur video.

Les valeurs acceptées sont les suivantes :
  • any : renvoie toutes les vidéos, quelle que soit leur résolution.
  • high : récupère uniquement les vidéos HD.
  • standard : récupère uniquement les vidéos en définition standard.
videoDimension string
Le paramètre videoDimension vous permet de limiter une recherche aux vidéos 2D ou 3D. Si vous spécifiez une valeur pour ce paramètre, vous devez également définir la valeur du paramètre type sur video.

Les valeurs acceptées sont les suivantes :
  • 2d : permet de limiter les résultats de recherche afin d'exclure les vidéos 3D.
  • 3d : limitez les résultats de recherche aux vidéos 3D.
  • any : inclut des vidéos 3D et non 3D dans les résultats renvoyés. Il s'agit de la valeur par défaut.
videoDuration string
Le paramètre videoDuration filtre les résultats de recherche de vidéos en fonction de leur durée. Si vous spécifiez une valeur pour ce paramètre, vous devez également définir la valeur du paramètre type sur video.

Les valeurs acceptées sont les suivantes :
  • any : ne filtrez pas les résultats de recherche de vidéos en fonction de leur durée. Il s'agit de la valeur par défaut.
  • long : incluez uniquement les vidéos de plus de 20 minutes.
  • medium : n'incluez que les vidéos d'une durée comprise entre 4 et 20 minutes (inclus).
  • short : n'incluez que les vidéos de moins de quatre minutes.
videoEmbeddable string
Le paramètre videoEmbeddable vous permet de limiter une recherche aux vidéos pouvant être intégrées à une page Web. Si vous spécifiez une valeur pour ce paramètre, vous devez également définir la valeur du paramètre type sur video.

Les valeurs acceptées sont les suivantes :
  • any : renvoie toutes les vidéos, intégrables ou non.
  • true : récupère uniquement les vidéos intégrables.
videoLicense string
Le paramètre videoLicense filtre les résultats de recherche pour n'inclure que les vidéos associées à une licence spécifique. YouTube permet aux utilisateurs mettant en ligne des vidéos de choisir d'associer la licence Creative Commons ou la licence YouTube standard à chacune de leurs vidéos. Si vous spécifiez une valeur pour ce paramètre, vous devez également définir la valeur du paramètre type sur video.

Les valeurs acceptées sont les suivantes :
  • any : renvoie toutes les vidéos correspondant aux paramètres de requête, quelle que soit la licence dont elles disposent.
  • creativeCommon : affichez uniquement les vidéos sous licence Creative Commons. Les utilisateurs peuvent réutiliser des vidéos avec cette licence dans d'autres vidéos qu'ils créent. En savoir plus
  • youtube : affichez uniquement les vidéos disposant de la licence YouTube standard.
videoPaidProductPlacement string
Le paramètre videoPaidProductPlacement filtre les résultats de recherche pour n'inclure que les vidéos que le créateur a indiquées comme contenant une communication commerciale. Si vous spécifiez une valeur pour ce paramètre, vous devez également définir la valeur du paramètre type sur video.

Les valeurs acceptées sont les suivantes :
  • any : permet d'afficher toutes les vidéos, qu'elles contiennent ou non des communications commerciales.
  • true : ne récupère que les vidéos contenant des communications commerciales.
videoSyndicated string
Le paramètre videoSyndicated vous permet de limiter une recherche aux seules vidéos pouvant être visionnées en dehors de youtube.com. Si vous spécifiez une valeur pour ce paramètre, vous devez également définir la valeur du paramètre type sur video.

Les valeurs acceptées sont les suivantes :
  • any : renvoie toutes les vidéos, syndiquées ou non.
  • true : récupère uniquement les vidéos syndiquées.
videoType string
Le paramètre videoType vous permet de limiter une recherche à un type de vidéos spécifique. Si vous spécifiez une valeur pour ce paramètre, vous devez également définir la valeur du paramètre type sur video.

Les valeurs acceptées sont les suivantes :
  • any : renvoyer toutes les vidéos.
  • episode : ne récupère que les épisodes d'émissions.
  • movie : récupère uniquement les films.

Corps de la requête

Ne fournissez pas de corps de requête lorsque vous appelez cette méthode.

Réponse

Si la requête aboutit, cette méthode renvoie un corps de réponse présentant la structure suivante :

{
 
"kind": "youtube#searchListResponse",
 
"etag": etag,
 
"nextPageToken": string,
 
"prevPageToken": string,
 
"regionCode": string,
 
"pageInfo": {
   
"totalResults": integer,
   
"resultsPerPage": integer
 
},
 
"items": [
   
search Resource
 
]
}

Propriétés

Le tableau suivant définit les propriétés qui apparaissent dans un résultat de recherche:

Propriétés
kind string
Identifie le type de ressource d'API. La valeur est youtube#searchListResponse.
etag etag
Etag de cette ressource.
nextPageToken string
Jeton pouvant être utilisé comme valeur du paramètre pageToken pour récupérer la page suivante dans l'ensemble de résultats.
prevPageToken string
Jeton pouvant être utilisé comme valeur du paramètre pageToken pour récupérer la page précédente dans l'ensemble de résultats.
regionCode string
Code de région utilisé pour la requête de recherche. La valeur de la propriété est un code pays ISO à deux lettres qui identifie la région. La méthode i18nRegions.list renvoie une liste des régions acceptées. La valeur par défaut est US. Si vous spécifiez une région non compatible, YouTube peut sélectionner une autre région, plutôt que la valeur par défaut, pour traiter la requête.
pageInfo object
L'objet pageInfo encapsule les informations de pagination pour l'ensemble de résultats.
pageInfo.totalResults integer
Nombre total de résultats dans l'ensemble de résultats.Veuillez noter que cette valeur est approximative et peut ne pas représenter une valeur exacte. De plus, la valeur maximale est de 1 000 000.

Vous ne devez pas utiliser cette valeur pour créer des liens de pagination. Utilisez plutôt les valeurs de propriété nextPageToken et prevPageToken pour déterminer si les liens de pagination doivent être affichés.
pageInfo.resultsPerPage integer
Nombre de résultats inclus dans la réponse de l'API.
items[] list
Liste de résultats correspondant aux critères de recherche.

Exemples

Remarque:Les exemples de code suivants peuvent ne pas représenter tous les langages de programmation compatibles. Consultez la documentation sur les bibliothèques clientes pour obtenir la liste des langages compatibles.

Cette fonction recherche des vidéos en rapport avec le mot clé "chiens". Les ID vidéo et les titres des résultats de recherche sont enregistrés dans le journal d'Apps Script.

Notez que cet exemple limite les résultats à 25. Pour renvoyer plus de résultats, transmettez des paramètres supplémentaires comme indiqué sur cette page: https://developers.google.com/youtube/v3/docs/search/list
function searchByKeyword() {
 
var results = YouTube.Search.list('id,snippet', {q: 'dogs', maxResults: 25});

 
for(var i in results.items) {
   
var item = results.items[i];
   
Logger.log('[%s] Title: %s', item.id.videoId, item.snippet.title);
 
}
}
Cet exemple de code appelle la méthode search.list de l'API pour récupérer les résultats de recherche associés à un mot clé particulier.

Cet exemple utilise la bibliothèque cliente Go.

package main

import (
        "flag"
        "fmt"
        "log"
        "net/http"

        "google.golang.org/api/googleapi/transport"
        "google.golang.org/api/youtube/v3"
)

var (
        query      = flag.String("query", "Google", "Search term")
        maxResults = flag.Int64("max-results", 25, "Max YouTube results")
)

const developerKey = "YOUR DEVELOPER KEY"

func main() {
        flag.Parse()

        client := &http.Client{
                Transport: &transport.APIKey{Key: developerKey},
        }

        service, err := youtube.New(client)
        if err != nil {
                log.Fatalf("Error creating new YouTube client: %v", err)
        }

       
// Make the API call to YouTube.
        call := service.Search.List("id,snippet").
                Q(*query).
                MaxResults(*maxResults)
        response, err := call.Do()
        handleError(err, "")

       
// Group video, channel, and playlist results in separate lists.
        videos := make(map[string]string)
        channels := make(map[string]string)
        playlists := make(map[string]string)

       
// Iterate through each item and add it to the correct list.
        for _, item := range response.Items {
                switch item.Id.Kind {
                case "youtube#video":
                        videos[item.Id.VideoId] = item.Snippet.Title
                case "youtube#channel":
                        channels[item.Id.ChannelId] = item.Snippet.Title
                case "youtube#playlist":
                        playlists[item.Id.PlaylistId] = item.Snippet.Title
                }
        }

        printIDs("Videos", videos)
        printIDs("Channels", channels)
        printIDs("Playlists", playlists)
}

// Print the ID and title of each result in a list as well as a name that
// identifies the list. For example, print the word section name "Videos"
// above a list of video search results, followed by the video ID and title
// of each matching video.
func printIDs(sectionName string, matches map[string]string) {
        fmt.Printf("%v:\n", sectionName)
        for id, title := range matches {
                fmt.Printf("[%v] %v\n", id, title)
        }
        fmt.Printf("\n\n")
}
L'exemple de code suivant appelle la méthode search.list de l'API pour récupérer les résultats de recherche associés à un mot clé particulier.

Cet exemple utilise la bibliothèque cliente.NET.

using System;
using System.Collections.Generic;
using System.IO;
using System.Reflection;
using System.Threading;
using System.Threading.Tasks;

using Google.Apis.Auth.OAuth2;
using Google.Apis.Services;
using Google.Apis.Upload;
using Google.Apis.Util.Store;
using Google.Apis.YouTube.v3;
using Google.Apis.YouTube.v3.Data;

namespace Google.Apis.YouTube.Samples
{
 
/// <summary>
 
/// YouTube Data API v3 sample: search by keyword.
 
/// Relies on the Google APIs Client Library for .NET, v1.7.0 or higher.
 
/// See https://developers.google.com/api-client-library/dotnet/get_started
 
///
 
/// Set ApiKey to the API key value from the APIs & auth > Registered apps tab of
 
///   https://cloud.google.com/console
 
/// Please ensure that you have enabled the YouTube Data API for your project.
 
/// </summary>
 
internal class Search
 
{
   
[STAThread]
   
static void Main(string[] args)
   
{
     
Console.WriteLine("YouTube Data API: Search");
     
Console.WriteLine("========================");

     
try
     
{
       
new Search().Run().Wait();
     
}
     
catch (AggregateException ex)
     
{
       
foreach (var e in ex.InnerExceptions)
       
{
         
Console.WriteLine("Error: " + e.Message);
       
}
     
}

     
Console.WriteLine("Press any key to continue...");
     
Console.ReadKey();
   
}

   
private async Task Run()
   
{
     
var youtubeService = new YouTubeService(new BaseClientService.Initializer()
     
{
       
ApiKey = "REPLACE_ME",
       
ApplicationName = this.GetType().ToString()
     
});

     
var searchListRequest = youtubeService.Search.List("snippet");
      searchListRequest
.Q = "Google"; // Replace with your search term.
      searchListRequest
.MaxResults = 50;

     
// Call the search.list method to retrieve results matching the specified query term.
     
var searchListResponse = await searchListRequest.ExecuteAsync();

     
List<string> videos = new List<string>();
     
List<string> channels = new List<string>();
     
List<string> playlists = new List<string>();

     
// Add each result to the appropriate list, and then display the lists of
     
// matching videos, channels, and playlists.
     
foreach (var searchResult in searchListResponse.Items)
     
{
       
switch (searchResult.Id.Kind)
       
{
         
case "youtube#video":
            videos
.Add(String.Format("{0} ({1})", searchResult.Snippet.Title, searchResult.Id.VideoId));
           
break;

         
case "youtube#channel":
            channels
.Add(String.Format("{0} ({1})", searchResult.Snippet.Title, searchResult.Id.ChannelId));
           
break;

         
case "youtube#playlist":
            playlists
.Add(String.Format("{0} ({1})", searchResult.Snippet.Title, searchResult.Id.PlaylistId));
           
break;
       
}
     
}

     
Console.WriteLine(String.Format("Videos:\n{0}\n", string.Join("\n", videos)));
     
Console.WriteLine(String.Format("Channels:\n{0}\n", string.Join("\n", channels)));
     
Console.WriteLine(String.Format("Playlists:\n{0}\n", string.Join("\n", playlists)));
   
}
 
}
}
Cet exemple appelle la méthode search.list de l'API pour récupérer les résultats de recherche associés à un mot clé particulier.

Cet exemple utilise la bibliothèque cliente Ruby.

#!/usr/bin/ruby

require 'rubygems'
gem
'google-api-client', '>0.7'
require 'google/api_client'
require 'trollop'

# Set DEVELOPER_KEY to the API key value from the APIs & auth > Credentials
# tab of
# {{ Google Cloud Console }} <{{ https://cloud.google.com/console }}>
# Please ensure that you have enabled the YouTube Data API for your project.
DEVELOPER_KEY
= 'REPLACE_ME'
YOUTUBE_API_SERVICE_NAME
= 'youtube'
YOUTUBE_API_VERSION
= 'v3'

def get_service
  client
= Google::APIClient.new(
   
:key => DEVELOPER_KEY,
   
:authorization => nil,
   
:application_name => $PROGRAM_NAME,
   
:application_version => '1.0.0'
 
)
  youtube
= client.discovered_api(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION)

 
return client, youtube
end

def main
  opts
= Trollop::options do
    opt
:q, 'Search term', :type => String, :default => 'Google'
    opt
:max_results, 'Max results', :type => :int, :default => 25
 
end

  client
, youtube = get_service

 
begin
   
# Call the search.list method to retrieve results matching the specified
   
# query term.
    search_response
= client.execute!(
     
:api_method => youtube.search.list,
     
:parameters => {
       
:part => 'snippet',
       
:q => opts[:q],
       
:maxResults => opts[:max_results]
     
}
   
)

    videos
= []
    channels
= []
    playlists
= []

   
# Add each result to the appropriate list, and then display the lists of
   
# matching videos, channels, and playlists.
    search_response
.data.items.each do |search_result|
     
case search_result.id.kind
       
when 'youtube#video'
          videos
<< "#{search_result.snippet.title} (#{search_result.id.videoId})"
       
when 'youtube#channel'
          channels
<< "#{search_result.snippet.title} (#{search_result.id.channelId})"
       
when 'youtube#playlist'
          playlists
<< "#{search_result.snippet.title} (#{search_result.id.playlistId})"
     
end
   
end

    puts
"Videos:\n", videos, "\n"
    puts
"Channels:\n", channels, "\n"
    puts
"Playlists:\n", playlists, "\n"
 
rescue Google::APIClient::TransmissionError => e
    puts e
.result.body
 
end
end

main

Erreurs

Le tableau suivant identifie les messages d'erreur que l'API peut renvoyer en réponse à un appel de cette méthode. Pour en savoir plus, consultez la documentation sur les messages d'erreur.

Type d'erreur Détails de l'erreur Description
badRequest (400) invalidChannelId Le paramètre channelId a spécifié un ID de chaîne non valide.
badRequest (400) invalidLocation Le format des valeurs des paramètres location et/ou locationRadius n'est pas valide.
badRequest (400) invalidRelevanceLanguage Le format de la valeur du paramètre relevanceLanguage est incorrect.
badRequest (400) invalidSearchFilter La requête contient une combinaison de filtres et/ou de restrictions de recherche non valide. Notez que vous devez définir le paramètre type sur video si vous définissez les paramètres forContentOwner ou forMine sur true. Vous devez également définir le paramètre type sur video si vous définissez une valeur pour les paramètres eventType, videoCaption, videoCategoryId, videoDefinition, videoDimension, videoDuration, videoEmbeddable, videoLicense, videoSyndicated ou videoType.