■ YouTubeService 클래스를 사용해 본인이 업로드한 동영상 리스트를 구하는 방법을 보여준다.
▶ Program.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
using System; using System.IO; using System.Threading; using Google.Apis.Auth.OAuth2; using Google.Apis.Services; using Google.Apis.Util.Store; using Google.Apis.YouTube.v3; using Google.Apis.YouTube.v3.Data; namespace TestProject { /// <summary> /// 프로그램 /// </summary> class Program { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region 프로그램 시작하기 - Main() /// <summary> /// 프로그램 시작하기 /// </summary> private static void Main() { #region 구글 OAuth2 인증을 한다. string clientSecretsFilePath = @"E:\client_secret.json"; // 클라이언트 시크릿 파일 경로를 설정한다. UserCredential credential; using(FileStream stream = new FileStream(clientSecretsFilePath, FileMode.Open, FileAccess.Read)) { credential = GoogleWebAuthorizationBroker.AuthorizeAsync ( GoogleClientSecrets.FromStream(stream).Secrets, new[] { YouTubeService.Scope.Youtube }, "user", CancellationToken.None, new FileDataStore("TestProject") ).GetAwaiter().GetResult(); } #endregion #region 유튜브 서비스를 설정한다. YouTubeService service = new YouTubeService ( new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = "TestProject" } ); #endregion #region 채널 요청을 설정한다. ChannelsResource.ListRequest channelRequest = service.Channels.List("ContentDetails"); channelRequest.Mine = true; #endregion ChannelListResponse channelResponse = channelRequest.Execute(); int i = 0; foreach(Channel channel in channelResponse.Items) { string playListID = channel.ContentDetails.RelatedPlaylists.Uploads; string nextPageToken = string.Empty; do { #region 재생 목록 요청을 설정한다. PlaylistItemsResource.ListRequest playlistRequest = service.PlaylistItems.List("Snippet"); playlistRequest.PlaylistId = playListID; playlistRequest.MaxResults = 50; playlistRequest.PageToken = nextPageToken; #endregion PlaylistItemListResponse playlistResponse = playlistRequest.Execute(); foreach(PlaylistItem item in playlistResponse.Items) { Console.WriteLine(++i); Console.WriteLine($"비디오 ID : {item.Snippet.ResourceId.VideoId}"); Console.WriteLine($"제목 : {item.Snippet.Title}"); Console.WriteLine(); } nextPageToken = playlistResponse.NextPageToken; } while(nextPageToken != null); } } #endregion } } |