.NET Code Samples

  • This content provides a code sample utilizing the Google APIs Client Library for .NET to interact with the YouTube Content ID API.

  • The code demonstrates how to retrieve a list of channels that are managed by a specific content owner through the channels.list method of the YouTube Data API.

  • The sample requires OAuth 2.0 authentication, using NativeApplicationClient to handle credentials and authorization, with specific scopes including YoutubeReadonly and Youtubepartner .

  • The code fetches and displays the titles and IDs of up to 50 channels per page, with support for pagination using the nextPageToken to retrieve additional results.

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 
 ; 
  
 } 
  
 } 
 } 
Design a Mobile Site
View Site in Mobile | Classic
Share by: