Check this link
Showing posts with label youtube. Show all posts
Showing posts with label youtube. Show all posts
Wednesday, September 11, 2013
Sunday, August 25, 2013
YouTube Data API - Java Code Samples
Check the documentation here
package com.google.api.services.samples.youtube.cmdline.youtube_cmdline_channelbulletin_sample;
import java.io.File;
import java.util.Calendar;
import java.util.List;
import com.google.api.client.auth.oauth2.Credential;
import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp;
import com.google.api.client.extensions.java6.auth.oauth2.FileCredentialStore;
import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver;
import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow;
import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets;
import com.google.api.client.googleapis.json.GoogleJsonResponseException;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.services.youtube.YouTube;
import com.google.api.services.youtube.model.Activity;
import com.google.api.services.youtube.model.ActivityContentDetails;
import com.google.api.services.youtube.model.ActivityContentDetails.Bulletin;
import com.google.api.services.youtube.model.ActivitySnippet;
import com.google.api.services.youtube.model.Channel;
import com.google.api.services.youtube.model.ChannelListResponse;
import com.google.api.services.youtube.model.ResourceId;
import com.google.common.collect.Lists;
/**
* Creates a video bulletin that is posted to the user's channel feed.
*
* @author Jeremy Walker
*/
public class ChannelBulletin {
/** Global instance of the HTTP transport. */
private static final HttpTransport HTTP_TRANSPORT = new NetHttpTransport();
/** Global instance of the JSON factory. */
private static final JsonFactory JSON_FACTORY = new JacksonFactory();
/** Global instance of YouTube object to make all API requests. */
private static YouTube youtube;
/*
* Global instance of the video id we want to post as a bulletin into our channel feed. You will
* probably pull this from a search or your app.
*/
private static String VIDEO_ID = "L-oNKK1CrnU";
/**
* Authorizes the installed application to access user's protected data.
*
* @param scopes list of scopes needed to run upload.
*/
private static Credential authorize(List scopes) throws Exception {
// Load client secrets.
GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(
JSON_FACTORY, ChannelBulletin.class.getResourceAsStream("/client_secrets.json"));
// Checks that the defaults have been replaced (Default = "Enter X here").
if (clientSecrets.getDetails().getClientId().startsWith("Enter")
|| clientSecrets.getDetails().getClientSecret().startsWith("Enter ")) {
System.out.println(
"Enter Client ID and Secret from https://code.google.com/apis/console/?api=youtube"
+ "into youtube-cmdline-channelbulletin-sample/src/main/resources/client_secrets.json");
System.exit(1);
}
// Set up file credential store.
FileCredentialStore credentialStore = new FileCredentialStore(
new File(System.getProperty("user.home"), ".credentials/youtube-api-channelbulletin.json"),
JSON_FACTORY);
// Set up authorization code flow.
GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, scopes).setCredentialStore(credentialStore)
.build();
// Build the local server and bind it to port 8080
LocalServerReceiver localReceiver = new LocalServerReceiver.Builder().setPort(8080).build();
// Authorize.
return new AuthorizationCodeInstalledApp(flow, localReceiver).authorize("user");
}
/**
* Authorizes user, runs Youtube.Channnels.List to get the default channel, and posts a bulletin
* with a video id to the user's default channel.
*
* @param args command line args (not used).
*/
public static void main(String[] args) {
// Scope required to upload to YouTube.
List scopes = Lists.newArrayList("https://www.googleapis.com/auth/youtube");
try {
// Authorization.
Credential credential = authorize(scopes);
// YouTube object used to make all API requests.
youtube = new YouTube.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential).setApplicationName(
"youtube-cmdline-channelbulletin-sample").build();
/*
* Now that the user is authenticated, the app makes a channel list request to get the
* authenticated user's channel. https://developers.google.com/youtube/v3/docs/channels/list
*/
YouTube.Channels.List channelRequest = youtube.channels().list("contentDetails");
channelRequest.setMine("true");
/*
* Limits the results to only the data we need making your app more efficient.
*/
channelRequest.setFields("items/contentDetails");
ChannelListResponse channelResult = channelRequest.execute();
/*
* Gets the list of channels associated with the user.
*/
List channelsList = channelResult.getItems();
if (channelsList != null) {
// Gets user's default channel id (first channel in list).
String channelId = channelsList.get(0).getId();
/*
* We create the snippet to set the channel we will post to and the description that goes
* along with our bulletin.
*/
ActivitySnippet snippet = new ActivitySnippet();
snippet.setChannelId(channelId);
Calendar cal = Calendar.getInstance();
snippet.setDescription("Bulletin test video via YouTube API on " + cal.getTime());
/*
* We set the kind of the ResourceId to video (youtube#video). Please note, you could set
* the type to a playlist (youtube#playlist) and use a playlist id instead of a video id.
*/
ResourceId resource = new ResourceId();
resource.setKind("youtube#video");
resource.setVideoId(VIDEO_ID);
Bulletin bulletin = new Bulletin();
bulletin.setResourceId(resource);
// We construct the ActivityContentDetails now that we have the Bulletin.
ActivityContentDetails contentDetails = new ActivityContentDetails();
contentDetails.setBulletin(bulletin);
/*
* Finally, we construct the activity we will write to YouTube via the API. We set the
* snippet (covers description and channel we are posting to) and the content details
* (covers video id and type).
*/
Activity activity = new Activity();
activity.setSnippet(snippet);
activity.setContentDetails(contentDetails);
/*
* We specify the parts (contentDetails and snippet) we will write to YouTube. Those also
* cover the parts that are returned.
*/
YouTube.Activities.Insert insertActivities =
youtube.activities().insert("contentDetails,snippet", activity);
// This returns the Activity that was added to the user's YouTube channel.
Activity newActivityInserted = insertActivities.execute();
if (newActivityInserted != null) {
System.out.println(
"New Activity inserted of type " + newActivityInserted.getSnippet().getType());
System.out.println(" - Video id "
+ newActivityInserted.getContentDetails().getBulletin().getResourceId().getVideoId());
System.out.println(
" - Description: " + newActivityInserted.getSnippet().getDescription());
System.out.println(" - Posted on " + newActivityInserted.getSnippet().getPublishedAt());
} else {
System.out.println("Activity failed.");
}
} else {
System.out.println("No channels are assigned to this user.");
}
} catch (GoogleJsonResponseException e) {
e.printStackTrace();
System.err.println("There was a service error: " + e.getDetails().getCode() + " : "
+ e.getDetails().getMessage());
} catch (Throwable t) {
t.printStackTrace();
}
}
}
Labels:
google
,
google apps
,
youtube
Wednesday, August 21, 2013
Tuesday, August 20, 2013
Thursday, December 27, 2012
YouTube player for Websites
Check this link – for developers
Labels:
api
,
google
,
google apps
,
youtube
Subscribe to:
Posts
(
Atom
)