Instruções
A ferramenta de snippets de código interativos permite testar solicitações de API e gerar exemplos de código específicos para essas solicitações. Para qualquer método, a ferramenta mostra snippets de código para um ou mais casos de uso, e cada caso de uso descreve uma maneira comum de chamar esse método. Por exemplo, é possível chamar o método channels.list para recuperar dados sobre um canal específico ou sobre o canal do usuário atual.
Executar solicitações de API
Para executar solicitações, clique no botão Executar ao lado da lista de parâmetros de solicitação. Se você não tiver autorizado o aplicativo a enviar solicitações de API em seu nome, será solicitado que faça isso. Como precaução extra, se a solicitação realizar uma operação de gravação (inserção, atualização ou exclusão de recursos associados ao seu canal), será necessário confirmar que você quer executar a solicitação antes que ela seja executada.

Alternar snippets de código e exemplos completos
Para cada caso de uso, a ferramenta mostra um snippet de código que identifica o código específico do método que está sendo chamado. Cada snippet identifica o método que está sendo chamado, bem como os valores de parâmetro e propriedade usados na solicitação de API.
Além disso, a ferramenta também mostra um exemplo de código completo que coloca esse snippet de código em um modelo que define funções de boilerplate para autorizar e construir solicitações de API. Use o controle deslizante acima dos exemplos para alternar entre o snippet e o exemplo completo:

Executar exemplos de código completos localmente
Os exemplos de código completos são projetados para serem copiados e executados localmente. Confira os pré-requisitos e as etapas de configuração a seguir para executar os exemplos de código completos:
Pré-requisitos
- Java 1.7 ou mais recente
- Gradle 2.3 ou mais recente
Configurar o projeto e executar exemplos de código
-
Crie um projeto no console do Cloud e configure as credenciais de um aplicativo da Web. Defina os URIs de redirecionamento autorizados conforme necessário.
-
Siga as instruções no Guia de início rápido da API Java para preparar seu projeto, mas substitua o conteúdo do arquivo
build.gradlepadrão pelo código a seguir: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" } -
No diretório de trabalho, salve o arquivo
client_secrets.jsonassociado às suas credenciais emsrc/main/resources/client_secret.json. -
No diretório de trabalho, copie o exemplo de código completo para
src/main/java/ApiExample.java. O nome da classe em cada exemplo éApiExample, para que você não precise modificar o arquivobuild.gradlepara executar exemplos diferentes. -
Execute o exemplo na linha de comando:
gradle -q run
-
A maioria dos exemplos imprime algo em
STDOUT. Você também pode conferir o site do YouTube para ver os efeitos de solicitações que gravam dados, como solicitações que criam playlists ou seções de canais.
-
Crie um projeto no console do Cloud e configure as credenciais de um aplicativo da Web. Defina as origens JavaScript autorizadas para identificar o URL de onde você vai enviar solicitações (por exemplo,
http://localhost). -
Copie o exemplo de código completo para um arquivo local acessível ao seu servidor da Web (por exemplo,
/var/www/html/example.html). -
Encontre a linha no exemplo de código que define o ID do cliente a ser usado na solicitação e substitua o valor pelo ID do cliente das suas credenciais:
gapi.client.init({ 'clientId': 'REPLACE_ME', -
Abra o arquivo no navegador (por exemplo,
http://localhost/example.html). Recomendamos usar um navegador com um console de depuração, como o Google Chrome. -
Autorize a solicitação, se necessário. Se a solicitação for autorizada, o console de depuração vai mostrar a resposta da API à solicitação como um objeto JSON.
Pré-requisitos
- O Node.js precisa estar instalado.
- A ferramenta de gerenciamento de pacotes npm (fornecida com o Node.js).
- A biblioteca de cliente das APIs do Google para Node.js:
npm install googleapis --save
- Acesso à Internet e a um navegador da Web.
- uma Conta do Google.
Configurar o projeto e executar exemplos de código
-
Crie um projeto no console do Cloud e configure as credenciais do OAuth 2.0 no console do Google Cloud. Ao configurar as credenciais, defina o tipo de aplicativo como Outro.
-
Salve o arquivo
client_secret.jsonassociado às suas credenciais em um arquivo local. -
Copie o exemplo de código completo para um arquivo local no mesmo diretório do arquivo
client_secret.jsonou modifique o exemplo para identificar corretamente o local do arquivo. -
Execute o exemplo na linha de comando:
node sample.js
-
A maioria dos exemplos imprime algo em
STDOUTou, para exemplos de aplicativos da Web, na página da Web que você está visualizando. Você também pode conferir o site do YouTube para ver os efeitos de solicitações que gravam dados, como solicitações que criam playlists ou seções de canais.
Pré-requisitos
- Python 2.6 ou mais recente
- A ferramenta de gerenciamento de pacotes pip
- A biblioteca de cliente das APIs do Google para Python:
pip install --upgrade google-api-python-client
- O google-auth, google-auth-oauthlib e google-auth-httplib2 para autorização do usuário.
pip install --upgrade google-auth google-auth-oauthlib google-auth-httplib2
- O framework de aplicativo da Web Python Flask (se você estiver executando os exemplos do Python para aplicativos de servidor da Web).
pip install --upgrade flask
- A biblioteca HTTP de solicitações.
pip install --upgrade requests
Configurar o projeto e executar exemplos de código
-
Crie um projeto no console do Cloud e configure as credenciais do OAuth 2.0 no console do Google Cloud. Ao configurar as credenciais, defina o tipo de aplicativo como Aplicativo da Web para exemplos que usam o framework de aplicativo da Web Python Flask e também defina URIs de redirecionamento autorizados para essas credenciais. Caso contrário, defina o tipo de aplicativo como Outro.
-
Salve o arquivo
client_secret.jsonassociado às suas credenciais em um arquivo local. -
Copie o exemplo de código completo para um arquivo local no mesmo diretório do arquivo
client_secret.jsonou modifique o exemplo para identificar corretamente o local do arquivo. -
Execute o exemplo na linha de comando:
python sample.py
Observação para exemplos de aplicativos de servidor da Web
Se você estiver executando os exemplos do Python para aplicativos de servidor da Web, a execução do script vai iniciar um servidor da Web local. Para executar a solicitação de API, acesse a página da Web veiculada em um navegador. Por exemplo, os exemplos do Python que usam o framework de aplicativo da Web Flask contêm uma linha como esta:
app.run('localhost', 8080, debug=True)
Esse código inicia um servidor da Web local emhttp://localhost:8080. No entanto, o script não tenta executar uma solicitação de API até que você navegue atéhttp://localhost:8080em um navegador. O URL do servidor local também precisa ser definido como um URI de redirecionamento autorizado para suas credenciais de autorização. -
A maioria dos exemplos imprime algo em
STDOUTou, para exemplos de aplicativos da Web, na página da Web que você está visualizando. Você também pode conferir o site do YouTube para ver os efeitos de solicitações que gravam dados, como solicitações que criam playlists ou seções de canais.
Pré-requisitos
- PHP 5.4 ou mais recente com a interface de linha de comando (CLI) e a extensão JSON instalada.
- A ferramenta de gerenciamento de dependências do Composer.
- A biblioteca de cliente das APIs do Google para PHP:
php composer.phar require google/apiclient:^2.0
Configurar o projeto e executar exemplos de código
-
Crie um projeto no console do Cloud e configure as credenciais do OAuth 2.0 no console do Google Cloud. Ao configurar as credenciais, defina o tipo de aplicativo como Outro.
-
Salve o arquivo
client_secret.jsonassociado às suas credenciais em um arquivo local. -
Copie o exemplo de código completo para um arquivo local no mesmo diretório do arquivo
client_secret.jsonou modifique o exemplo para identificar corretamente o local do arquivo. -
Execute o exemplo na linha de comando:
php sample.php
-
A maioria dos exemplos imprime algo em
STDOUTou, para exemplos de aplicativos da Web, na página da Web que você está visualizando. Você também pode conferir o site do YouTube para ver os efeitos de solicitações que gravam dados, como solicitações que criam playlists ou seções de canais.
Pré-requisitos
- Ruby 2.0 ou mais recente
- A biblioteca de cliente das APIs do Google para Ruby:
gem install google-api-client
Configurar o projeto e executar exemplos de código
-
Crie um projeto no console do Cloud e configure as credenciais do OAuth 2.0 no console do Google Cloud. Ao configurar as credenciais, defina o tipo de aplicativo como Outro.
-
Salve o arquivo
client_secret.jsonassociado às suas credenciais em um arquivo local. -
Copie o exemplo de código completo para um arquivo local no mesmo diretório do arquivo
client_secret.jsonou modifique o exemplo para identificar corretamente o local do arquivo. -
Execute o exemplo na linha de comando:
ruby sample.rb
-
A maioria dos exemplos imprime algo em
STDOUTou, para exemplos de aplicativos da Web, na página da Web que você está visualizando. Você também pode conferir o site do YouTube para ver os efeitos de solicitações que gravam dados, como solicitações que criam playlists ou seções de canais.
-
Crie um projeto no console do Cloud e configure as credenciais do OAuth 2.0 no console do Google Cloud. Ao configurar as credenciais, defina o tipo de aplicativo como Outro.
-
Salve o arquivo
client_secret.jsonassociado às suas credenciais em um arquivo local. -
Copie o exemplo de código completo para um arquivo local no mesmo diretório do arquivo
client_secret.jsonou modifique o exemplo para identificar corretamente o local do arquivo. -
Execute o exemplo na linha de comando:
go run sample.go
-
A maioria dos exemplos imprime algo em
STDOUTou, para exemplos de aplicativos da Web, na página da Web que você está visualizando. Você também pode conferir o site do YouTube para ver os efeitos de solicitações que gravam dados, como solicitações que criam playlists ou seções de canais.
Usar funções de boilerplate
Como observado acima, os exemplos de código completos usam código boilerplate para autorizar e construir solicitações de API. Por exemplo, a função build_resource em exemplos do Python usa um dicionário que mapeia as propriedades de recursos para os valores deles a fim de construir um recurso que pode ser inserido ou atualizado. Funções semelhantes são fornecidas para JavaScript, PHP, Ruby, Go e Apps Script.
Por exemplo, as guias abaixo mostram como as funções de boilerplate para criar recursos seriam chamadas para construir um recurso playlist. As funções de boilerplate não precisam saber que tipo de recurso está sendo criado.
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'
}
# 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'}
// 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'));
# 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'})
// 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'
});
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)Carregar recursos atuais
Para testar uma solicitação de atualização de um recurso atual, carregue os valores de propriedade atuais desse recurso no formulário de atualização. Por exemplo, para atualizar os metadados de um vídeo, insira o ID do vídeo no campo de propriedade id e clique no botão Carregar recurso. Os valores de propriedade atuais são carregados no formulário, e você pode atualizar apenas os valores que quer mudar.