Prerequisites for this code sample:
- Java 1.6
- Apache Maven (http://maven.apache.org)
Before running the sample, client_secrets.json must be populated with a
client ID and client secret. You can create an ID/secret pair at:
https://code.google.com/apis/console
To build this code sample from the command line, type:
mvn compile
To run a code sample from the command line, enter the following:
mvn exec:java -Dexec.mainClass="FULL_CLASS_NAME"
For samples that require arguments, also specify -Dexec.args, e.g.:
mvn exec:java -Dexec.mainClass="FULL_CLASS_NAME" -Dexec.args="arg1 arg2"
For more instructions about how to set up Maven and/or your IDE to run
YouTube API samples, see this video:
http://youtu.be/pb_t5_ShQOM
## Samples in this directory:
### [Authorize a request](/java/src/main/java/com/google/api/services/samples/youtube/cmdline/Auth.java)
Description: This sample demonstrates how to use OAuth 2.0 to authorize an application to access resources on a user's behalf.
### [Add a channel subscription](/java/src/main/java/com/google/api/services/samples/youtube/cmdline/data/AddSubscription.java)
Method: youtube.subscriptions.insert
Description: This sample calls the API's subscriptions.insert method to add a subscription to a specified
channel.
### [Add a featured video](/java/src/main/java/com/google/api/services/samples/youtube/cmdline/data/InvideoProgramming.java)
Method: youtube.channels.update
Description: This sample calls the API's channels.update method to set invideoPromotion
properties for the channel.
### [Create a playlist](/java/src/main/java/com/google/api/services/samples/youtube/cmdline/data/PlaylistUpdates.java)
Method: youtube.playlists.insert
Description: This sample calls the API's playlists.insert method to create a private playlist owned by the
channel authorizing the request.
### [Create and manage comments](/java/src/main/java/com/google/api/services/samples/youtube/cmdline/data/CommentHandling.java)
Method: youtube.commentThreads.list, youtube.comments.insert, youtube.comments.list, youtube.comments.update,
youtube.comments.setModerationStatus, youtube.comments.markAsSpam, youtube.comments.delete
Description: This sample demonstrates how to use the following API methods to create and manage comments:
commentThreads.list method with the videoId parameter set to retrieve comments
for a video.comments.insert method with the parentId parameter set to reply to an existing
comment.comments.list method with the parentId parameter to retrieve the comments in the
thread.comments.update method with comment in the request body to update a comment.comments.setModerationStatus method to set the moderation status of the comment, the
comments.markAsSpam method to mark the comment as spam, and the comments.delete method to
delete the comment, using the id parameter to identify the comment.commentThreads.insert method once with the channelId parameter to create a
channel comment and once with the videoId parameter to create a video comment.commentThreads.list method once with the channelId parameter to retrieve
channel comments and once with the videoId parameter to retrieve video comments.commentThreads.update method once to update a video comment and then again to update a
channel comment. In each case, the request body contains the comment resource being updated.captions.insert method with the isDraft parameter set to true
to upload a caption track in draft status.captions.list method with the videoId parameter to retrieve video caption
tracks.captions.update method with the caption in the request body to update a caption track.captions.download method to download the caption track.captions.delete method to delete the caption track, using the id parameter to
identify the caption track.activities.insert method to post a bulletin to the channel
associated with the request.
### [Retrieve my uploads](/java/src/main/java/com/google/api/services/samples/youtube/cmdline/data/MyUploads.java)
Method: youtube.playlistItems.listplaylistItems.list method to retrieve a list of videos uploaded
to the channel associated with the request. The code also calls the channels.list method with the
mine parameter set to true to retrieve the playlist ID that identifies the channel's uploaded
videos.
### [Search by keyword](/java/src/main/java/com/google/api/services/samples/youtube/cmdline/data/Search.java)
Method: youtube.search.listsearch.list method to retrieve search results associated with
a particular keyword.
### [Search by location](/java/src/main/java/com/google/api/services/samples/youtube/cmdline/data/GeolocationSearch.java)
Method: youtube.search.list, youtube.videos.listsearch.list method with the type, q, location, and
locationRadius parameters to retrieve search results matching the provided keyword within the radius centered
at a particular location. Using the video IDs from the search result, the sample calls the API's videos.list
method to retrieve location details of each video.
### [Set and retrieve localized channel metadata](/java/src/main/java/com/google/api/services/samples/youtube/cmdline/data/ChannelLocalizations.java)
Method: youtube.channels.update, youtube.channels.listchannels.update method to update the default language of a channel's metadata and to add a
localized version of this metadata in a selected language. Note that to set the default language for a channel resource,
you actually need to update the brandingSettings.channel.defaultLanguage property.channels.list method with the hl parameter set to a specific language to
retrieve localized metadata in that language.channels.list method and includes localizations in the part
parameter value to retrieve all of the localized metadata for that channel.channelSections.update method to update the default language of a channel section's
metadata and to add a localized version of this metadata in a selected language.channelSections.list method with the hl parameter set to a specific language
to retrieve localized metadata in that language.channelSections.list method and includes localizations in the
part parameter value to retrieve all of the localized metadata for that channel section.playlists.update method to update the default language of a playlist's metadata and to add
a localized version of this metadata in a selected language.playlists.list method with the hl parameter set to a specific language to
retrieve localized metadata in that language.playlists.list method and includes localizations in the part
parameter value to retrieve all of the localized metadata for that playlist.videos.update method to update the default language of a video's metadata and to add
a localized version of this metadata in a selected language.videos.list method with the hl parameter set to a specific language to
retrieve localized metadata in that language.videos.list method and includes localizations in the part
parameter value to retrieve all of the localized metadata for that video.videos.update method to update a video owned by the channel
authorizing the request.
### [Upload a custom video thumbnail image](/java/src/main/java/com/google/api/services/samples/youtube/cmdline/data/UploadThumbnail.java)
Method: youtube.thumbnails.setthumbnails.set method to upload an image and set it as the
thumbnail image for a video. The request must be authorized by the channel that owns the video.
### [Upload a video](/java/src/main/java/com/google/api/services/samples/youtube/cmdline/data/UploadVideo.java)
Method: youtube.videos.insertvideos.insert method to upload a video to the channel associated
with the request.
### [Retrieve top 10 videos by viewcount](/java/src/main/java/com/google/api/services/samples/youtube/cmdline/analytics/YouTubeAnalyticsReports.java)
Method: youtubeAnalytics.reports.queryreports.query method to retrieve YouTube Analytics data.
By default, the report retrieves the top 10 videos based on viewcounts, and it returns several metrics for those
videos, sorting the results in reverse order by viewcount. By setting command line parameters, you can use the
same code to retrieve other reports as well.
### [Create a reporting job](/java/src/main/java/com/google/api/services/samples/youtube/cmdline/reporting/CreateReportingJob.java)
Method: youtubeReporting.reportTypes.list, youtubeReporting.jobs.createreportTypes.list method
to retrieve a list of available report types. It then calls the jobs.create method to create a new reporting
job.
### [Retrieve reports](/java/src/main/java/com/google/api/services/samples/youtube/cmdline/reporting/RetrieveReports.java)
Method: youtubeReporting.jobs.list, youtubeReporting.reports.listjobs.list method to retrieve reporting jobs. It then calls the reports.list method with the
jobId parameter set to a specific job ID to retrieve reports created by that job. Finally, the sample
prints out the download URL for each report.
### [Create a broadcast and stream](/java/src/main/java/com/google/api/services/samples/youtube/cmdline/live/CreateBroadcast.java)
Method: youtube.liveBroadcasts.bind,youtube.liveBroadcasts.insert,youtube.liveStreams.insertliveBroadcasts.insert and liveStreams.insert
methods to create a broadcast and a stream. Then, it calls the liveBroadcasts.bind method to bind
the stream to the broadcast.
### [Retrieve a channel's broadcasts](/java/src/main/java/com/google/api/services/samples/youtube/cmdline/live/ListBroadcasts.java)
Method: youtube.liveBroadcasts.listliveBroadcasts.list method to retrieve a list of broadcasts for
the channel associated with the request. By default, the request retrieves all broadcasts for the channel, but you can
also specify a value for the --broadcast-status option to only retrieve broadcasts with a particular status.
### [Retrieve a channel's live video streams](/java/src/main/java/com/google/api/services/samples/youtube/cmdline/live/ListStreams.java)
Method: youtube.liveStreams.listliveStreams.list method to retrieve a list of video stream settings
that a channel can use to broadcast live events on YouTube.
### [Get a live chat id](/java/src/main/java/com/google/api/services/samples/youtube/cmdline/live/GetLiveChatId.java)
Methods: youtube.videos.list, youtube.liveBroadcasts.listvideoId parameter
or the live broadcast for the authorized user's channel. The liveChatId is required for other samples
that interact with live chat.
### [Insert a live chat message](/java/src/main/java/com/google/api/services/samples/youtube/cmdline/live/InsertLiveChatMessage.java)
Method: youtube.liveChatMessages.insert