Data API-Code-Snippets

Anleitung

Mit dem interaktiven Code-Snippet-Tool können Sie API-Anfragen ganz einfach testen und Codebeispiele für diese Anfragen generieren. Für jede Methode werden im Code Code-Snippets für einen oder mehrere Anwendungsfälle angezeigt. Jeder Anwendungsfall beschreibt eine allgemeine Methode zum Aufrufen dieser Methode. Sie können beispielsweise die Methode channels.list aufrufen, um Daten zu einem bestimmten Kanal oder zum Kanal des aktuellen Nutzers abzurufen.

API-Anfragen ausführen

Sie können Anfragen ausführen, indem Sie neben der Liste der Anfrageparameter auf die Schaltfläche Ausführen klicken. Wenn Sie die Anwendung noch nicht autorisiert haben, in Ihrem Namen API-Anfragen zu senden, werden Sie jetzt dazu aufgefordert. Wenn Ihre Anfrage einen Schreibvorgang ausführt, also mit Ihrem Kanal verknüpfte Ressourcen einfügt, aktualisiert oder löscht, werden Sie außerdem als Vorsichtsmaßnahme aufgefordert, die Ausführung der Anfrage zu bestätigen.

Code-Snippets und vollständige Beispiele ein-/ausblenden

Für jeden Anwendungsfall zeigt das Tool ein Code-Snippet an, das den spezifischen Code für die aufgerufene Methode identifiziert. Jedes Snippet identifiziert die aufgerufene Methode sowie die Parameter- und Property-Werte in der API-Anfrage.

Darüber hinaus zeigt das Tool ein vollständiges Codebeispiel, das dieses Code-Snippet in eine Vorlage setzt, die Boilerplate-Funktionen zum Autorisieren von API-Anfragen und zum Erstellen von API-Anfragen definiert. Mit dem Schieberegler über den Beispielen können Sie zwischen dem Snippet und dem vollständigen Beispiel wechseln:

Vollständige Codebeispiele lokal ausführen

Die vollständigen Codebeispiele sind so konzipiert, dass sie kopiert und lokal ausgeführt werden. Für die Ausführung der vollständigen Codebeispiele gelten die folgenden Voraussetzungen und Einrichtungsschritte:

Java

Voraussetzungen

  • Java 1.7 oder höher
  • Gradle 2.3 oder höher

Projekt einrichten und Codebeispiele ausführen

  1. Erstellen Sie ein Projekt in der API Console und richten Sie Anmeldedaten für eine Webanwendung ein. Legen Sie die autorisierten Weiterleitungs-URIs entsprechend fest.

  2. Folgen Sie der Anleitung im API-Java-Schnellstart, um Ihr Projekt vorzubereiten. Ersetzen Sie jedoch den Inhalt der Standarddatei build.gradle durch den folgenden Code:

    apply plugin: 'java'
    apply plugin: 'application'
    
    mainClassName = 'ApiExample'
    sourceCompatibility = 1.7
    targetCompatibility = 1.7
    version = '1.0'
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        compile 'com.google.api-client:google-api-client:1.22.0'
        compile 'com.google.oauth-client:google-oauth-client-jetty:1.22.0'
        compile 'com.google.apis:google-api-services-youtube:v3-rev182-1.22.0'
        compile group: 'com.google.code.gson', name: 'gson', version: '1.7.2'
        compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.4.4'
    }
    
    compileJava {
        options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
    }
  3. Speichern Sie in Ihrem Arbeitsverzeichnis die Datei client_secrets.json, die mit Ihren Anmeldedaten verknüpft ist, in src/main/resources/client_secret.json.

  4. Kopieren Sie aus Ihrem Arbeitsverzeichnis das vollständige Codebeispiel nach src/main/java/ApiExample.java. Der Klassenname in jedem Beispiel lautet ApiExample, sodass Sie die Datei build.gradle nicht ändern müssen, um verschiedene Beispiele auszuführen.

  5. Führen Sie das Beispiel über die Befehlszeile aus:

    gradle -q run
  6. Die meisten Beispiele drucken etwas auf STDOUT. Du kannst auch auf der YouTube-Website nachsehen, wie sich Ersuchen auswirken, die Daten schreiben, wie beispielsweise Anfragen zu Playlists oder Kanalabschnitten.

JavaScript
  1. Erstellen Sie ein Projekt in der API Console und richten Sie Anmeldedaten für eine Webanwendung ein. Legen Sie die autorisierten JavaScript-Quellen fest, um die URL zu identifizieren, von der aus Sie Anfragen senden (z.B. http://localhost).

  2. Kopieren Sie das vollständige Codebeispiel in eine lokale Datei, auf die Ihr Webserver zugreifen kann (z.B. /var/www/html/example.html).

  3. Suchen Sie die Zeile im Codebeispiel, in der die Client-ID für die Anfrage festgelegt ist, und ersetzen Sie den Wert durch die Client-ID für Ihre Anmeldedaten:

    gapi.client.init({
        'clientId': 'REPLACE_ME',
  4. Öffnen Sie die Datei in Ihrem Browser, z.B. http://localhost/example.html. Wir empfehlen, einen Browser mit einer Debugging-Konsole wie Google Chrome zu verwenden.

  5. Autorisieren Sie die Anfrage, falls erforderlich. Wenn die Anfrage autorisiert ist, sollte in der Debugging-Konsole die API-Antwort auf die Anfrage als JSON-Objekt angezeigt werden.

Node.js

Voraussetzungen

  • Node.js muss installiert sein.
  • Das Paketverwaltungstool npm ist im Lieferumfang von Node.js enthalten.
  • Die Google APIs-Clientbibliothek für Node.js:
    npm install googleapis --save
  • Zugriff auf das Internet und einen Webbrowser.
  • Ein Google-Konto.

Projekt einrichten und Codebeispiele ausführen

  1. Erstellen Sie ein Projekt in der API Console und richten Sie OAuth 2.0-Anmeldedaten in der Google API Console ein. Legen Sie bei der Einrichtung Ihrer Anmeldedaten den Anwendungstyp auf Sonstiges fest.

  2. Speichern Sie die mit Ihren Anmeldedaten verknüpfte Datei client_secret.json in einer lokalen Datei.

  3. Kopieren Sie das vollständige Codebeispiel in eine lokale Datei im selben Verzeichnis wie die Datei client_secret.json oder ändern Sie das Beispiel so, dass der Speicherort der Datei korrekt angegeben wird.

  4. Führen Sie das Beispiel über die Befehlszeile aus:

    node sample.js
  5. Bei den meisten Beispielen wird etwas an STDOUT oder, bei Web-App-Beispielen, auf der aktuellen Webseite gedruckt. Du kannst auch auf der YouTube-Website nachsehen, wie sich Ersuchen auswirken, die Daten schreiben, wie beispielsweise Anfragen zu Playlists oder Kanalabschnitten.

Python

Voraussetzungen

  • Python 2.6 oder höher
  • Das pip-Paketverwaltungstool
  • Die Google APIs-Clientbibliothek für Python:
    pip install --upgrade google-api-python-client
  • google-auth, google-auth-oauthlib und google-auth-httplib2 zur Nutzerautorisierung
    pip install --upgrade google-auth google-auth-oauthlib google-auth-httplib2
  • Das Flask Python-Framework für Webanwendungen (wenn Sie die Python-Beispiele für Webserveranwendungen ausführen).
    pip install --upgrade flask
  • Die HTTP-Anfragenanfrage.
    pip install --upgrade requests

Projekt einrichten und Codebeispiele ausführen

  1. Erstellen Sie ein Projekt in der API Console und richten Sie OAuth 2.0-Anmeldedaten in der Google API Console ein. Legen Sie beim Einrichten Ihrer Anmeldedaten für die Anwendung, die das Flask-Python-Framework für Webanwendungen verwendet, den Anwendungstyp auf Webanwendung fest und legen Sie auch autorisierte Weiterleitungs-URIs für diese Anmeldedaten fest. Setzen Sie andernfalls den Anwendungstyp auf Other.

  2. Speichern Sie die mit Ihren Anmeldedaten verknüpfte Datei client_secret.json in einer lokalen Datei.

  3. Kopieren Sie das vollständige Codebeispiel in eine lokale Datei im selben Verzeichnis wie die Datei client_secret.json oder ändern Sie das Beispiel so, dass der Speicherort der Datei korrekt angegeben wird.

  4. Führen Sie das Beispiel über die Befehlszeile aus:

    python sample.py
    Hinweis für Beispiele für Webserveranwendungen:

    Wenn Sie die Python-Beispiele für Webserveranwendungen ausführen, wird beim Ausführen des Skripts ein lokaler Webserver gestartet. Um die API-Anfrage auszuführen, müssen Sie die bereitgestellte Webseite in einem Browser aufrufen. Die Python-Beispiele, die das Flask-Framework für Webanwendungen verwenden, enthalten beispielsweise folgende Zeile:

    app.run('localhost', 8080, debug=True)

    Dieser Code startet einen lokalen Webserver unter http://localhost:8080. Das Skript versucht jedoch erst, eine API-Anfrage auszuführen, wenn Sie http://localhost:8080 in einem Browser öffnen. (Die URL für Ihren lokalen Server muss auch als autorisierter Weiterleitungs-URI für Ihre Anmeldedaten festgelegt sein.)
  5. Bei den meisten Beispielen wird etwas an STDOUT oder, bei Web-App-Beispielen, auf der aktuellen Webseite gedruckt. Du kannst auch auf der YouTube-Website nachsehen, wie sich Ersuchen auswirken, die Daten schreiben, wie beispielsweise Anfragen zu Playlists oder Kanalabschnitten.

PHP

Voraussetzungen

  • PHP 5.4 oder höher mit installierter Befehlszeile und JSON-Erweiterung
  • Das Abhängigkeitsmanagement-Tool Composer
  • Die Google APIs-Clientbibliothek für PHP:
    php composer.phar require google/apiclient:^2.0

Projekt einrichten und Codebeispiele ausführen

  1. Erstellen Sie ein Projekt in der API Console und richten Sie OAuth 2.0-Anmeldedaten in der Google API Console ein. Legen Sie bei der Einrichtung Ihrer Anmeldedaten den Anwendungstyp auf Sonstiges fest.

  2. Speichern Sie die mit Ihren Anmeldedaten verknüpfte Datei client_secret.json in einer lokalen Datei.

  3. Kopieren Sie das vollständige Codebeispiel in eine lokale Datei im selben Verzeichnis wie die Datei client_secret.json oder ändern Sie das Beispiel so, dass der Speicherort der Datei korrekt angegeben wird.

  4. Führen Sie das Beispiel über die Befehlszeile aus:

    php sample.php
  5. Bei den meisten Beispielen wird etwas an STDOUT oder, bei Web-App-Beispielen, auf der aktuellen Webseite gedruckt. Du kannst auch auf der YouTube-Website nachsehen, wie sich Ersuchen auswirken, die Daten schreiben, wie beispielsweise Anfragen zu Playlists oder Kanalabschnitten.

Ruby

Voraussetzungen

  • Ruby 2.0 oder höher
  • Die Google APIs-Clientbibliothek für Ruby:
    gem install google-api-client

Projekt einrichten und Codebeispiele ausführen

  1. Erstellen Sie ein Projekt in der API Console und richten Sie OAuth 2.0-Anmeldedaten in der Google API Console ein. Legen Sie bei der Einrichtung Ihrer Anmeldedaten den Anwendungstyp auf Sonstiges fest.

  2. Speichern Sie die mit Ihren Anmeldedaten verknüpfte Datei client_secret.json in einer lokalen Datei.

  3. Kopieren Sie das vollständige Codebeispiel in eine lokale Datei im selben Verzeichnis wie die Datei client_secret.json oder ändern Sie das Beispiel so, dass der Speicherort der Datei korrekt angegeben wird.

  4. Führen Sie das Beispiel über die Befehlszeile aus:

    ruby sample.rb
  5. Bei den meisten Beispielen wird etwas an STDOUT oder, bei Web-App-Beispielen, auf der aktuellen Webseite gedruckt. Du kannst auch auf der YouTube-Website nachsehen, wie sich Ersuchen auswirken, die Daten schreiben, wie beispielsweise Anfragen zu Playlists oder Kanalabschnitten.

Apps Script
Folgen Sie der Anleitung zum Aktivieren der erweiterten Google-Dienste, um YouTube-Funktionen aktivieren zu können.
Los
  1. Erstellen Sie ein Projekt in der API Console und richten Sie OAuth 2.0-Anmeldedaten in der Google API Console ein. Legen Sie bei der Einrichtung Ihrer Anmeldedaten den Anwendungstyp auf Sonstiges fest.

  2. Speichern Sie die mit Ihren Anmeldedaten verknüpfte Datei client_secret.json in einer lokalen Datei.

  3. Kopieren Sie das vollständige Codebeispiel in eine lokale Datei im selben Verzeichnis wie die Datei client_secret.json oder ändern Sie das Beispiel so, dass der Speicherort der Datei korrekt angegeben wird.

  4. Führen Sie das Beispiel über die Befehlszeile aus:

    go run sample.go
  5. Bei den meisten Beispielen wird etwas an STDOUT oder, bei Web-App-Beispielen, auf der aktuellen Webseite gedruckt. Du kannst auch auf der YouTube-Website nachsehen, wie sich Ersuchen auswirken, die Daten schreiben, wie beispielsweise Anfragen zu Playlists oder Kanalabschnitten.

Standardfunktionen verwenden

Wie oben erwähnt, wird in vollständigen Codebeispielen Boilerplate-Code zum Autorisieren und Erstellen von API-Anfragen verwendet. Die Funktion build_resource in Python-Beispielen verwendet beispielsweise ein Wörterbuch, das Ressourcenwerte ihren Werten zuweist, um eine Ressource zu erstellen, die eingefügt oder aktualisiert werden kann. Ähnliche Funktionen sind für JavaScript, PHP, Ruby, Go und Apps Script verfügbar.

Die folgenden Tabs zeigen beispielsweise, wie die Standardfunktionen zum Erstellen von Ressourcen aufgerufen werden, um eine playlist-Ressource zu erstellen. Die Standardfunktionen müssen nicht wissen, welche Art von Ressource erstellt wird.

JavaScript
function createResource(properties) {
  var resource = {};
  var normalizedProps = properties;
  for (var p in properties) {
    var value = properties[p];
    if (p && p.substr(-2, 2) == '[]') {
      var adjustedName = p.replace('[]', '');
      if (value) {
        normalizedProps[adjustedName] = value.split(',');
      }
      delete normalizedProps[p];
    }
  }
  for (var p in normalizedProps) {
    // Leave properties that don't have values out of inserted resource.
    if (normalizedProps.hasOwnProperty(p) && normalizedProps[p]) {
      var propArray = p.split('.');
      var ref = resource;
      for (var pa = 0; pa < propArray.length; pa++) {
        var key = propArray[pa];
        if (pa == propArray.length - 1) {
          ref[key] = normalizedProps[p];
        } else {
          ref = ref[key] = ref[key] || {};
        }
      }
    };
  }
  return resource;
}
var resource = createResource({
    'snippet.title': 'Sample playlist ',
    'snippet.description': 'This is a sample playlist description.',
    'snippet.tags[]': 'JavaScript code, interactive',
    'snippet.defaultLanguage': '',
    'status.privacyStatus': 'private'
}
Python
# Build a resource based on a list of properties given as key-value pairs.
# Leave properties with empty values out of the inserted resource.
def build_resource(properties):
  resource = {}
  for p in properties:
    # Given a key like "snippet.title", split into "snippet" and "title", where
    # "snippet" will be an object and "title" will be a property in that object.
    prop_array = p.split('.')
    ref = resource
    for pa in range(0, len(prop_array)):
      is_array = False
      key = prop_array[pa]
      # Convert a name like "snippet.tags[]" to snippet.tags, but handle
      # the value as an array.
      if key[-2:] == '[]':
        key = key[0:len(key)-2:]
        is_array = True
      if pa == (len(prop_array) - 1):
        # Leave properties without values out of inserted resource.
        if properties[p]:
          if is_array:
            ref[key] = properties[p].split(',')
          else:
            ref[key] = properties[p]
      elif key not in ref:
        # For example, the property is "snippet.title", but the resource does
        # not yet have a "snippet" object. Create the snippet object here.
        # Setting "ref = ref[key]" means that in the next time through the
        # "for pa in range ..." loop, we will be setting a property in the
        # resource's "snippet" object.
        ref[key] = {}
        ref = ref[key]
      else:
        # For example, the property is "snippet.description", and the resource
        # already has a "snippet" object.
        ref = ref[key]
  return resource

resource = build_resource({
    'snippet.title': 'Sample playlist ',
    'snippet.description': 'This is a sample playlist description.',
    'snippet.tags[]': 'Python code, interactive',
    'snippet.defaultLanguage': '',
    'status.privacyStatus': 'private'}
  
PHP
// Add a property to the resource.
function addPropertyToResource(&$ref, $property, $value) {
    $keys = explode(".", $property);
    $is_array = false;
    foreach ($keys as $key) {
        // Convert a name like "snippet.tags[]" to "snippet.tags" and
        // set a boolean variable to handle the value like an array.
        if (substr($key, -2) == "[]") {
            $key = substr($key, 0, -2);
            $is_array = true;
        }
        $ref = &$ref[$key];
    }

    // Set the property value. Make sure array values are handled properly.
    if ($is_array && $value) {
        $ref = $value;
        $ref = explode(",", $value);
    } elseif ($is_array) {
        $ref = array();
    } else {
        $ref = $value;
    }
}

// Build a resource based on a list of properties given as key-value pairs.
function createResource($properties) {
    $resource = array();
    foreach ($properties as $prop => $value) {
        if ($value) {
            addPropertyToResource($resource, $prop, $value);
        }
    }
    return $resource;
}

$propertyObject = createResource(array(
    'snippet.title' => 'Sample playlist ',
    'snippet.description' => 'This is a sample playlist description.',
    'snippet.tags[]' => 'Python code, interactive',
    'snippet.defaultLanguage' => '',
    'status.privacyStatus' => 'private'));
Ruby
# Build a resource based on a list of properties given as key-value pairs.
def create_resource(properties)
  resource = {}
  properties.each do |prop, value|
    ref = resource
    prop_array = prop.to_s.split(".")
    for p in 0..(prop_array.size - 1)
      is_array = false
      key = prop_array[p]
      if key[-2,2] == "[]"
        key = key[0...-2]
        is_array = true
      end
      if p == (prop_array.size - 1)
        if is_array
          if value == ""
            ref[key.to_sym] = []
          else
            ref[key.to_sym] = value.split(",")
          end
        elsif value != ""
          ref[key.to_sym] = value
        end
      elsif ref.include?(key.to_sym)
        ref = ref[key.to_sym]
      else
        ref[key.to_sym] = {}
        ref = ref[key.to_sym]
      end
    end
  end
  return resource
end

resource = create_resource({
    'snippet.title': 'Sample playlist ',
    'snippet.description': 'This is a sample playlist description.',
    'snippet.tags[]': 'Ruby code, interactive',
    'snippet.default_language': '',
    'status.privacy_status': 'private'})
Apps Script
// Build an object from an object containing properties as key-value pairs
function createResource(properties) {
  var res = {};
  var normalizedProps = {};
  for (var p in properties) {
    var value = properties[p];
    if (p.substr(-2, 2) == '[]' && value) {
      var adjustedName = p.replace('[]', '');
      normalizedProps[adjustedName] = value.split(',');
    } else {
      normalizedProps[p] = value;
    }
  }
  for (var p in normalizedProps) {
    if (normalizedProps.hasOwnProperty(p) && normalizedProps[p]) {
      var propArray = p.split('.');
      var ref = res;
      for (var pa = 0; pa < propArray.length; pa++) {
        var key = propArray[pa];
        if (pa == propArray.length - 1) {
          ref[key] = normalizedProps[p];
        } else {
          ref = ref[key] = ref[key] || {};
        }
      }
    };
  }
  return res;
}

var resource = createResource({
    'snippet.title': 'Sample playlist ',
    'snippet.description': 'This is a sample playlist description.',
    'snippet.tags[]': 'Apps Script code, interactive',
    'snippet.defaultLanguage': '',
    'status.privacyStatus': 'private'
});
Los
func addPropertyToResource(ref map[string]interface{}, keys []string, value string, count int) map[string]interface{} {
        for k := count; k < (len(keys) - 1); k++ {
                switch val := ref[keys[k]].(type) {
                case map[string]interface{}:
                        ref[keys[k]] = addPropertyToResource(val, keys, value, (k + 1))
                case nil:
                        next := make(map[string]interface{})
                        ref[keys[k]] = addPropertyToResource(next, keys, value, (k + 1))
                }
        }
        // Only include properties that have values.
        if (count == len(keys) - 1 && value != "") {
                valueKey := keys[len(keys)-1]
                if valueKey[len(valueKey)-2:] == "[]" {
                        ref[valueKey[0:len(valueKey)-2]] = strings.Split(value, ",")
                } else if len(valueKey) > 4 && valueKey[len(valueKey)-4:] == "|int" {
                        ref[valueKey[0:len(valueKey)-4]], _ = strconv.Atoi(value)
                } else if value == "true" {
                        ref[valueKey] = true
                } else if value == "false" {
                        ref[valueKey] = false
                } else {
                        ref[valueKey] = value
                }
        }
        return ref
}

func createResource(properties map[string]string) string {
        resource := make(map[string]interface{})
        for key, value := range properties {
                keys := strings.Split(key, ".")
                ref := addPropertyToResource(resource, keys, value, 0)
                resource = ref
        }
        propJson, err := json.Marshal(resource)
        if err != nil {
               log.Fatal("cannot encode to JSON ", err)
        }
        return string(propJson)
}

func main() {
        properties := (map[string]string{
                 "snippet.title": "Sample playlist ",
                 "snippet.description": "This is a sample playlist description.",
                 "snippet.tags[]": "Go code, interactive",
                 "snippet.defaultLanguage": "",
                 "status.privacyStatus": "private",
        })
        res := createResource(properties)

Vorhandene Ressourcen laden

Wenn Sie eine Anfrage zum Aktualisieren einer vorhandenen Ressource testen möchten, können Sie die aktuellen Attributwerte für diese Ressource in das Aktualisierungsformular laden. Wenn du beispielsweise Metadaten zu einem Video aktualisieren möchtest, gib die Video-ID in das Feld „id“ ein und klicke auf die Schaltfläche Ressource laden. Die aktuellen Property-Werte werden in das Formular geladen und Sie können nur die Werte aktualisieren, die Sie ändern möchten.