This quickstart guide explains how to set up a simple, Java
command-line application that makes requests to the YouTube Data API. This
quickstart actually explains how to make two API requests:
- You will use an API key, which identifies your application, to
retrieve information about the GoogleDevelopers YouTube channel.
- You will use an OAuth 2.0 client ID to submit an
authorized
request
that retrieves information about your own YouTube channel.
Prerequisites
To run this quickstart, you'll need:
Step 1: Set up your project and credentials
Create or select a project in the
API Console
. Complete the following tasks in the API Console for your project:
In the
library panel
,
search for the YouTube Data API v3. Click into the listing for that API and
make sure the API is enabled for your project.
In the
credentials
panel
,
create two credentials:
Create an API key
You will use the API key to make API requests that do
not require user authorization. For example, you do not need user
authorization to retrieve information about a public YouTube channel.
Create an OAuth 2.0 client ID
Set the application type to
Other
. You need to use OAuth 2.0
credentials for requests that require user authorization. For example,
you need user authorization to retrieve information about the currently
authenticated user's YouTube channel.
Download the JSON file that contains your OAuth 2.0 credentials. The
file has a name like
client_secret_CLIENTID.json
, where
CLIENTID
is
the client ID for your project.
Step 2: Prepare the project
Complete the following steps to prepare your Gradle project:
In your working directory, run the following commands to create a new
project structure:
$ gradle init --type basic
$ mkdir -p src/main/java src/main/resources
Move the JSON file that you downloaded after creating your OAuth 2.0 client
ID to the
src/main/resources
directory below your working directory, and
rename the file to
client_secret.json
.
Open the
build.gradle
file in your working directory and replace its
contents with the following:
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.23.0'
compile 'com.google.oauth-client:google-oauth-client-jetty:1.23.0'
compile 'com.google.apis:google-api-services-youtube:v3-rev
REVISION
-
CL_VERSION
'
}
In the
build.gradle
file, you need to replace the
REVISION
and
CL_VERSION
variables with two values from
the
client library
documentation
for the YouTube Data API. The screenshot below, which shows the
documentation for the YouTube Analytics API, shows where the two variables
appear on the page.
Step 3: Set up and run the sample
Use the APIs Explorer widget in the side panel to obtain sample code for
retrieving information about the GoogleDevelopers YouTube channel. This request
uses an API key to identify your application, and it does not require user
authorization or any special permissions from the user running the sample.
- Open the documentation for the API's
channels.list
method.
On that page, the "Common use cases" section contains a table that explains
several common ways that the method is used. The first listing in the table
is for listing results by channel ID.
Click the code symbol for the first listing to open and populate the
fullscreen APIs Explorer.
The left side of the fullscreen APIs Explorer shows the following:
Below the
Request parameters
header, there is a list of parameters
that the method supports. The
part
and
id
parameter values should
be set. The
id
parameter value,
UC_x5XG1OV2P6uZZ5FSM9Ttw
, is the
ID for the GoogleDevelopers YouTube channel.
Below the parameters, there is a section named
Credentials
. The
pulldown menu in that section should display the value
API key
. The
APIs Explorer uses demo credentials by default to make it easier to get
started. But you'll use your own API key to run the sample locally.
The right side of the fullscreen APIs Explorer shows tabs with code samples
in different languages. Select the
Java
tab.
Copy the code sample and save it in a file named
src/main/java/ApiExample.java
.
Every sample uses the same class name (
ApiExample
) so that you don't
need to modify the
build.gradle
file to run different samples.
In the sample that you downloaded, find the
YOUR_API_KEY
string and
replace that with the API key that you created in step 1 of this quickstart.
Run the sample from the command line. In your working directory, run:
gradle -q run
The sample should execute the request and print the response to
STDOUT
.
Step 4: Run an authorized request
In this step, you'll modify your code sample so that instead of retrieving
information about the GoogleDevelopers YouTube channel, it retrieves information
about
your
YouTube channel. This request does require user authorization.
Go back to the documentation for the API's
channels.list
method.
In the "Common use cases" section, click the code symbol for the third
listing in the table. That use case is to call the
list
method for "my
channel."
Again, in the left side of the fullscreen APIs Explorer, you will see a
list of parameters followed by the
Credentials
section. However, there
are two changes from the example where you retrieved information about the
GoogleDevelopers channel:
In the parameters section, instead of the
id
parameter value being
set, the
mine
parameter value should be set to
true
. This instructs
the API server to retrieve information about the currently authenticated
user's channel.
In the
Credentials
section, the pulldown menu should select the
option for
Google OAuth 2.0
.
In addition, if you click the
Show scopes
link, the
https://www.googleapis.com/auth/youtube.readonly
scope should be
checked.
As with the previous example, select the
Java
tab,
copy the code sample, and save it to
src/main/java/ApiExample.java
.
Run the sample from the command line. In your working directory, run:
gradle -q run
The sample should attempt to open a new window or tab in your default
browser. If this fails, copy the URL from the terminal and manually open it
in your browser.
If you are not already logged into your Google account, you will be
prompted to log in. If you are logged into multiple Google accounts, you
will be asked to select one account to use for the authorization.
Click the button to grant your application access to the scopes specified in
your code sample.
The sample will proceed automatically, and you may close the browser tab
used for the auth flow.
The API response should again be printed to
STDOUT
.
Further reading