The following code samples, which use the Google APIs Client Library for .NET, are available for the YouTube Content ID API.
Retrieve a content owner's managed channels
The following code sample calls the YouTube Data API's channels.list
method to retrieve a list of channels managed by the content owner making the API request.
using System; using System.Collections; using System.Collections.Generic; using System.Reflection; /* * External dependencies, OAuth 2.0 support, and core client libraries are at: * https://developers.google.com/api-client-library/dotnet/apis/ * Also see the Samples.zip file for the Google.Apis.Samples.Helper classes at: * https://github.com/youtube/api-samples/tree/master/dotnet */ using DotNetOpenAuth.OAuth2; using Google.Apis.Authentication; using Google.Apis.Authentication.OAuth2; using Google.Apis.Authentication.OAuth2.DotNetOpenAuth; using Google.Apis.Samples.Helper; using Google.Apis.Services; using Google.Apis.Util; using Google.Apis.Youtube.v3; using Google.Apis.Youtube.v3.Data; namespace dotnet { class papi_my_managed_channels { static void Main(string[] args) { CommandLine.EnableExceptionHandling(); CommandLine.DisplayGoogleSampleHeader("YouTube Partner API: My Managed Channels"); var credentials = PromptingClientCredentials.EnsureFullClientCredentials(); var provider = new NativeApplicationClient(GoogleAuthenticationServer.Description) { ClientIdentifier = credentials.ClientId, ClientSecret = credentials.ClientSecret }; var auth = new OAuth2Authenticator<NativeApplicationClient>(provider, GetAuthorization); var youtube = new YoutubeService(new BaseClientService.Initializer() { Authenticator = auth }); var contentOwnerId = CommandLine.RequestUserInput<string>("Content Owner ID"); var nextPageToken = ""; while (nextPageToken != null) { var channelsListRequest = youtube.Channels.List("snippet"); channelsListRequest.MaxResults = 50; channelsListRequest.ManagedByMe = true; channelsListRequest.OnBehalfOfContentOwner = contentOwnerId; channelsListRequest.PageToken = nextPageToken; var channelsListResponse = channelsListRequest.Fetch(); foreach (var channelItem in channelsListResponse.Items) { CommandLine.WriteLine(String.Format("{0} ({1})", channelItem.Snippet.Title, channelItem.Id)); } nextPageToken = channelsListResponse.NextPageToken; } CommandLine.PressAnyKeyToExit(); } private static IAuthorizationState GetAuthorization(NativeApplicationClient client) { var storage = MethodBase.GetCurrentMethod().DeclaringType.ToString(); var key = "storage_key"; IAuthorizationState state = AuthorizationMgr.GetCachedRefreshToken(storage, key); if (state != null) { client.RefreshToken(state); } else { state = AuthorizationMgr.RequestNativeAuthorization(client, YoutubeService.Scopes.YoutubeReadonly.GetStringValue(), YoutubeService.Scopes.Youtubepartner.GetStringValue()); AuthorizationMgr.SetCachedRefreshToken(storage, key, state); } return state; } } }