Search: list

Restituisce una raccolta di risultati di ricerca che corrispondono ai parametri di query specificati nella richiesta API. Per impostazione predefinita, un set di risultati di ricerca identifica le risorse video, channel e playlist corrispondenti, ma puoi anche configurare le query in modo da recuperare solo un tipo specifico di risorsa.

Impatto sulla quota: 100 chiamate al giorno. Una chiamata a questo metodo ha un costo della quota di 1 unità nel bucket della quota Query di ricerca.

Casi d'uso comuni

Richiesta

Richiesta HTTP

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

Parametri

La tabella seguente elenca i parametri supportati da questa query. Tutti i parametri elencati sono parametri di query.

Parametri
Parametri obbligatori
part string
Il parametro part specifica un elenco separato da virgole di una o più proprietà della risorsa search che verranno incluse nella risposta dell'API. Imposta il valore parametro su snippet.
Filtri (specifica 0 o 1 dei seguenti parametri)
forContentOwner boolean
Questo parametro può essere utilizzato solo in una richiesta autorizzata correttamente ed è destinato esclusivamente ai partner di contenuti di YouTube.

Il parametro forContentOwner limita la ricerca al recupero dei soli video di proprietà del proprietario dei contenuti identificato dal parametro onBehalfOfContentOwner. Se forContentOwner è impostato su true, la richiesta deve soddisfare anche i seguenti requisiti:
  • Il parametro onBehalfOfContentOwner è obbligatorio.
  • L'utente che autorizza la richiesta deve utilizzare un account collegato al proprietario dei contenuti specificato.
  • Il valore del parametro type deve essere impostato su video.
  • Non è possibile impostare nessuno degli altri parametri seguenti: videoDefinition, videoDimension, videoDuration, videoEmbeddable, videoLicense, videoPaidProductPlacement, videoSyndicated, videoType.
forDeveloper boolean
Questo parametro può essere utilizzato solo in una richiesta autorizzata correttamente. Il parametro forDeveloper limita la ricerca al recupero dei soli video caricati tramite l'applicazione o il sito web dello sviluppatore. Il server API utilizza le credenziali di autorizzazione della richiesta per identificare lo sviluppatore. Il parametro forDeveloper può essere utilizzato insieme a parametri di ricerca facoltativi come il parametro q.

Per questa funzionalità, ogni video caricato viene taggato automaticamente con il numero di progetto associato all'applicazione dello sviluppatore in Google Developers Console.

Quando una richiesta di ricerca imposta successivamente il parametro forDeveloper su true, il server API utilizza le credenziali di autorizzazione della richiesta per identificare lo sviluppatore. Pertanto, uno sviluppatore può limitare i risultati ai video caricati tramite la propria app o il proprio sito web, ma non ai video caricati tramite altre app o altri siti.
forMine boolean
Questo parametro può essere utilizzato solo in una richiesta autorizzata correttamente. Il parametro forMine limita la ricerca al recupero dei soli video di proprietà dell'utente autenticato. Se imposti questo parametro su true, anche il valore del parametro type deve essere impostato su video. Inoltre, nessuno dei seguenti altri parametri può essere impostato nella stessa richiesta: videoDefinition, videoDimension, videoDuration, videoEmbeddable, videoLicense, videoPaidProductPlacement, videoSyndicated, videoType.
Parametri facoltativi
channelId string
Il parametro channelId indica che la risposta dell'API deve contenere solo le risorse create dal canale.

Nota: i risultati di ricerca sono limitati a un massimo di 500 video se la richiesta specifica un valore per il parametro channelId e imposta il valore parametro type su video, ma non imposta anche uno dei filtri forContentOwner, forDeveloper o forMine.
channelType string
Il parametro channelType consente di limitare una ricerca a un particolare tipo di canale.

I valori accettabili sono:
  • any: restituisce tutti i canali.
  • show: recupera solo i programmi.
eventType string
Il parametro eventType limita una ricerca agli eventi di trasmissione. Se specifichi un valore per questo parametro, devi impostare anche il valore del parametro type su video.

I valori accettabili sono:
  • completed: includi solo le trasmissioni completate.
  • live: includi solo le trasmissioni attive.
  • upcoming: include solo le trasmissioni future.
location string
Il parametro location, insieme al parametro locationRadius, definisce un'area geografica circolare e limita anche una ricerca ai video che specificano, nei metadati, una posizione geografica che rientra in quell'area. Il valore parametro è una stringa che specifica le coordinate di latitudine/longitudine, ad esempio (37.42307,-122.08427).

  • Il valore del parametro location identifica il punto al centro dell'area.
  • Il parametro locationRadius specifica la distanza massima che la località associata a un video può avere da quel punto affinché il video venga comunque incluso nei risultati di ricerca.
L'API restituisce un errore se la richiesta specifica un valore per il parametro location, ma non specifica anche un valore per il parametro locationRadius.

Nota: se specifichi un valore per questo parametro, devi anche impostare il valore del parametro type su video.
locationRadius string
Il parametro locationRadius, insieme al parametro location, definisce un'area geografica circolare.

Il valore del parametro deve essere un numero in virgola mobile seguito da un'unità di misura. Le unità di misura valide sono m, km, ft e mi. Ad esempio, i valori parametro validi includono 1500m, 5km, 10000ft e 0.75mi. L'API non supporta valori del parametro locationRadius superiori a 1000 chilometri.

Nota: per ulteriori informazioni, consulta la definizione del parametro location.
maxResults unsigned integer
Il parametro maxResults specifica il numero massimo di elementi da restituire nel set di risultati. I valori accettabili sono compresi tra 0 e 50 inclusi. Il valore predefinito è 5.

onBehalfOfContentOwner string
Questo parametro può essere utilizzato solo in una richiesta autorizzata correttamente. Nota: questo parametro è destinato esclusivamente ai partner di contenuti di YouTube.

Il parametro onBehalfOfContentOwner indica che le credenziali di autorizzazione della richiesta identificano un utente del YouTube CMS che agisce per conto del proprietario dei contenuti specificato nel valore parametro. Questo parametro è destinato ai partner di contenuti di YouTube che possiedono e gestiscono molti canali YouTube diversi. Consente ai proprietari dei contenuti di autenticarsi una sola volta e accedere a tutti i dati dei video e dei canali, senza dover fornire le credenziali di autenticazione per ogni singolo canale. L'account CMS con cui l'utente esegue l'autenticazione deve essere collegato al proprietario dei contenuti di YouTube specificato.
order string
Il parametro order specifica il metodo che verrà utilizzato per ordinare le risorse nella risposta dell'API. Il valore predefinito è relevance.

I valori accettabili sono:
  • date: le risorse vengono ordinate in ordine cronologico inverso in base alla data di creazione. Nota:poiché questa funzionalità si basa sull'indice della Ricerca, potresti riscontrare ritardi nell'indicizzazione dei nuovi contenuti o ricevere set di risultati incompleti. Per recuperare in modo affidabile i video caricati più di recente da un canale, non utilizzare search.list. Utilizza invece il metodo playlistItems.list per recuperare la playlist dei caricamenti del canale.
  • rating: le risorse sono ordinate dalla valutazione più alta a quella più bassa. Nota:questa valutazione viene calcolata utilizzando un punteggio algoritmico interno e non è strettamente equivalente a un conteggio dei non mi piace in ordine decrescente.
  • relevance: le risorse sono ordinate in base alla loro pertinenza rispetto alla query di ricerca. Questo è il valore predefinito per questo parametro.
  • title: le risorse sono ordinate alfabeticamente per titolo.
  • videoCount: i canali sono ordinati in ordine decrescente in base al numero di video caricati.
  • viewCount: le risorse sono ordinate dal numero più alto al più basso di visualizzazioni. Per le trasmissioni live, i video vengono ordinati in base al numero di spettatori simultanei durante la trasmissione.
pageToken string
Il parametro pageToken identifica una pagina specifica nel set di risultati che deve essere restituita. In una risposta dell'API, le proprietà nextPageToken e prevPageToken identificano altre pagine che potrebbero essere recuperate.
publishedAfter datetime
Il parametro publishedAfter indica che la risposta dell'API deve contenere solo le risorse create in corrispondenza o dopo l'ora specificata. Il valore è un valore di data e ora formattato in RFC 3339 (1970-01-01T00:00:00Z).
publishedBefore datetime
Il parametro publishedBefore indica che la risposta dell'API deve contenere solo le risorse create prima o all'ora specificata. Il valore è un valore di data e ora formattato in RFC 3339 (1970-01-01T00:00:00Z).
q string
Il parametro q specifica il termine di ricerca da cercare.

La tua richiesta può anche utilizzare gli operatori booleani NOT (-) e OR (|) per escludere i video o per trovare video associati a uno dei diversi termini di ricerca. Ad esempio, per cercare video che corrispondono a "canottaggio" o "vela", imposta il valore parametro q su boating|sailing. Analogamente, per cercare video che corrispondono a "boating" o "sailing", ma non a "fishing", imposta il valore del parametro q su boating|sailing -fishing. Tieni presente che il carattere barra verticale deve essere preceduto dal carattere di escape dell'URL quando viene inviato nella richiesta API. Il valore con escape URL per il carattere pipe è %7C.
regionCode string
Il parametro regionCode indica all'API di restituire i risultati di ricerca per i video che possono essere visualizzati nel paese specificato. Il valore parametro è un codice paese ISO 3166-1 alpha-2.
relevanceLanguage string
Il parametro relevanceLanguage indica all'API di restituire i risultati di ricerca più pertinenti per la lingua specificata. Il valore del parametro è in genere un codice lingua ISO 639-1 a due lettere. Tuttavia, devi utilizzare i valori zh-Hans per il cinese semplificato e zh-Hant per il cinese tradizionale. Tieni presente che i risultati in altre lingue verranno comunque restituiti se sono molto pertinenti al termine della query di ricerca.
safeSearch string
Il parametro safeSearch indica se i risultati di ricerca devono includere contenuti con limitazioni e contenuti standard.

I valori accettabili sono:
  • moderate: YouTube filtrerà alcuni contenuti dai risultati di ricerca e, come minimo, filtrerà i contenuti soggetti a limitazioni nella tua località. In base ai loro contenuti, i risultati di ricerca potrebbero essere rimossi o declassati. Questo è il valore parametro predefinito.
  • none: YouTube non filtrerà l'insieme dei risultati di ricerca.
  • strict: YouTube tenterà di escludere tutti i contenuti con limitazioni dal set di risultati di ricerca. In base ai contenuti, i risultati di ricerca potrebbero essere rimossi o retrocessi nei risultati di ricerca.
topicId string
Il parametro topicId indica che la risposta dell'API deve contenere solo le risorse associate all'argomento specificato. Il valore identifica un ID argomento di Freebase.

Importante: a causa del ritiro di Freebase e dell'API Freebase, il parametro topicId ha iniziato a funzionare in modo diverso dal 27 febbraio 2017. In quel momento, YouTube ha iniziato a supportare un piccolo insieme di ID argomento selezionati e puoi utilizzare solo questo insieme più piccolo di ID come valori per questo parametro.

type string
Il parametro type limita una query di ricerca al recupero di un solo tipo di risorsa. Il valore è un elenco separato da virgole di tipi di risorse. Il valore predefinito è video,channel,playlist.

I valori accettabili sono:
  • channel
  • playlist
  • video
videoCaption string
Il parametro videoCaption indica se l'API deve filtrare i risultati di ricerca dei video in base alla presenza o meno di sottotitoli codificati. Se specifichi un valore per questo parametro, devi anche impostare il valore del parametro type su video.

I valori accettabili sono:
  • any: non filtrare i risultati in base alla disponibilità dei sottotitoli codificati.
  • closedCaption: includi solo i video con sottotitoli codificati.
  • none: includi solo i video senza sottotitoli codificati.
videoCategoryId string
Il parametro videoCategoryId filtra i risultati di ricerca dei video in base alla loro categoria. Se specifichi un valore per questo parametro, devi impostare anche il valore del parametro type su video.
videoDefinition string
Il parametro videoDefinition ti consente di limitare una ricerca in modo da includere solo video in alta definizione (HD) o in definizione standard (SD). I video HD sono disponibili per la riproduzione con una risoluzione di almeno 720p, anche se potrebbero essere disponibili risoluzioni più elevate, come 1080p. Se specifichi un valore per questo parametro, devi anche impostare il valore del parametro type su video.

I valori accettabili sono:
  • any: restituisce tutti i video, indipendentemente dalla loro risoluzione.
  • high: recupera solo i video HD.
  • standard: recupera solo i video in definizione standard.
videoDimension string
Il parametro videoDimension consente di limitare una ricerca per recuperare solo video 2D o 3D. Se specifichi un valore per questo parametro, devi anche impostare il valore del parametro type su video.

I valori accettabili sono:
  • 2d: limita i risultati di ricerca per escludere i video 3D.
  • 3d: limita i risultati di ricerca in modo da includere solo i video in 3D.
  • any: includi sia i video 3D che quelli non 3D nei risultati restituiti. Questo è il valore predefinito.
videoDuration string
Il parametro videoDuration filtra i risultati di ricerca dei video in base alla loro durata. Se specifichi un valore per questo parametro, devi impostare anche il valore del parametro type su video.

I valori accettabili sono:
  • any: non filtrare i risultati di ricerca dei video in base alla loro durata. Questo è il valore predefinito.
  • long: includi solo i video di durata superiore a 20 minuti.
  • medium: includi solo video di durata compresa tra 4 e 20 minuti (inclusi).
  • short: includi solo video di durata inferiore a quattro minuti.
videoEmbeddable string
Il parametro videoEmbeddable consente di limitare una ricerca solo ai video che possono essere incorporati in una pagina web. Se specifichi un valore per questo parametro, devi anche impostare il valore del parametro type su video.

I valori accettabili sono:
  • any: restituisce tutti i video, incorporabili o meno.
  • true: recupera solo i video incorporabili.
videoLicense string
Il parametro videoLicense filtra i risultati di ricerca in modo da includere solo i video con una determinata licenza. YouTube consente agli utenti che caricano video di scegliere se allegare la licenza Creative Commons o la licenza YouTube standard a ciascuno dei loro video. Se specifichi un valore per questo parametro, devi anche impostare il valore del parametro type su video.

I valori accettabili sono:
  • any: restituisce tutti i video, indipendentemente dalla licenza, che corrispondono ai parametri di query.
  • creativeCommon: restituisce solo i video con una licenza Creative Commons. Gli utenti possono riutilizzare i video con questa licenza in altri video che creano. Scopri di più.
  • youtube: restituisce solo i video con la licenza YouTube standard.
videoPaidProductPlacement string
Il parametro videoPaidProductPlacement filtra i risultati di ricerca per includere solo i video che il creator ha contrassegnato come contenenti una promozione a pagamento. Se specifichi un valore per questo parametro, devi anche impostare il valore del parametro type su video.

I valori accettabili sono:
  • any: restituisci tutti i video, indipendentemente dal fatto che contengano promozioni a pagamento.
  • true: recupera solo i video con promozioni a pagamento.
videoSyndicated string
Il parametro videoSyndicated ti consente di limitare una ricerca ai soli video che possono essere riprodotti al di fuori di youtube.com. Se specifichi un valore per questo parametro, devi anche impostare il valore del parametro type su video.

I valori accettabili sono:
  • any: restituisce tutti i video, indipendentemente dal fatto che siano distribuiti o meno.
  • true: recupera solo i video distribuiti.
videoType string
Il parametro videoType ti consente di limitare una ricerca a un tipo specifico di video. Se specifichi un valore per questo parametro, devi impostare anche il valore del parametro type su video.

I valori accettabili sono:
  • any: restituisce tutti i video.
  • episode: recupera solo gli episodi dei programmi.
  • movie: recupera solo i film.

Corpo della richiesta

Non fornire un corpo della richiesta quando chiami questo metodo.

Risposta

In caso di esito positivo, questo metodo restituisce un corpo della risposta con la seguente struttura:

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

Proprietà

La tabella seguente definisce le proprietà visualizzate in un risultato di ricerca:

Proprietà
kind string
Identifica il tipo di risorsa API. Il valore sarà youtube#searchListResponse.
etag etag
L'ETag di questa risorsa.
nextPageToken string
Il token che può essere utilizzato come valore del parametro pageToken per recuperare la pagina successiva nel set di risultati.
prevPageToken string
Il token che può essere utilizzato come valore del parametro pageToken per recuperare la pagina precedente nel set di risultati.
regionCode string
Il codice regione utilizzato per la query di ricerca. Il valore della proprietà è un codice paese ISO di due lettere che identifica la regione. Il metodo i18nRegions.list restituisce un elenco di regioni supportate. Il valore predefinito è US. Se viene specificata una regione non supportata, YouTube potrebbe comunque selezionare un'altra regione, anziché il valore predefinito, per gestire la query.
pageInfo object
L'oggetto pageInfo incapsula le informazioni di paginazione per il set di risultati.
pageInfo.totalResults integer
Il numero totale di risultati nel set di risultati.Tieni presente che il valore è un'approssimazione e potrebbe non rappresentare un valore esatto. Inoltre, il valore massimo è 1.000.000.

Non devi utilizzare questo valore per creare link di impaginazione. Utilizza invece i valori delle proprietà nextPageToken e prevPageToken per determinare se mostrare i link di impaginazione.
pageInfo.resultsPerPage integer
Il numero di risultati inclusi nella risposta dell'API.
items[] list
Un elenco di risultati che corrispondono ai criteri di ricerca.

Esempi

Nota:i seguenti esempi di codice potrebbero non rappresentare tutti i linguaggi di programmazione supportati. Consulta la documentazione delle librerie client per un elenco delle lingue supportate.

Apps Script

Questa funzione cerca video correlati alla parola chiave "cani". Gli ID e i titoli dei video dei risultati di ricerca vengono registrati nel log di Apps Script.

Tieni presente che questo esempio limita i risultati a 25. Per restituire più risultati, passa parametri aggiuntivi come documentato qui: https://developers.google.com/youtube/data/reference/rest/v3/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);
  }
}

Go

Questo esempio di codice chiama il metodo search.list dell'API per recuperare i risultati di ricerca associati a una determinata parola chiave.

Questo esempio utilizza la libreria client 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")
}

.NET

Il seguente esempio di codice chiama il metodo search.list dell'API per recuperare i risultati di ricerca associati a una determinata parola chiave.

Questo esempio utilizza la libreria client.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)));
    }
  }
}

Ruby

Questo esempio chiama il metodo search.list dell'API per recuperare i risultati di ricerca associati a una determinata parola chiave.

Questo esempio utilizza la libreria client 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

Errori

La seguente tabella identifica i messaggi di errore che l'API potrebbe restituire in risposta a una chiamata a questo metodo. Per maggiori dettagli, consulta la documentazione relativa ai messaggi di errore.

Tipo di errore Dettagli errore Descrizione
badRequest (400) invalidChannelId Il parametro channelId ha specificato un ID canale non valido.
badRequest (400) invalidLocation Il valore del parametro location e/o locationRadius non è stato formattato correttamente.
badRequest (400) invalidRelevanceLanguage Il valore del parametro relevanceLanguage non è stato formattato correttamente.
badRequest (400) invalidSearchFilter La richiesta contiene una combinazione non valida di filtri di ricerca e/o limitazioni. Tieni presente che devi impostare il parametro type su video se imposti il parametro forContentOwner o forMine su true. Se imposti un valore per i parametri eventType, videoCaption, videoCategoryId, videoDefinition, videoDimension, videoDuration, videoEmbeddable, videoLicense, videoSyndicated o videoType, devi anche impostare il parametro type su video.

Prova

Utilizza APIs Explorer per chiamare questa API e visualizzare la richiesta API e la risposta.