2015-12-07 22 views

答えて

10

私はこの方法で行っている、それは私がこのライン

channelsListRequest.ForUsername = "kkrofficial"; //kkrofficial is kkr channel name. 

このリンクをたどっであなたのチャンネル名を指定してNugetパケットマネージャ

using Google.Apis.Services; 
using Google.Apis.YouTube.v3; 

public ActionResult GetVideo(YouTubeData objYouTubeData) 
{ 
    try 
    { 
     var yt = new YouTubeService(new BaseClientService.Initializer() { ApiKey = "Your API Key" }); 
     var channelsListRequest = yt.Channels.List("contentDetails"); 
     channelsListRequest.ForUsername = "kkrofficial"; 
     var channelsListResponse = channelsListRequest.Execute(); 
     foreach (var channel in channelsListResponse.Items) 
     { 
      // of videos uploaded to the authenticated user's channel. 
      var uploadsListId = channel.ContentDetails.RelatedPlaylists.Uploads; 
      var nextPageToken = ""; 
      while (nextPageToken != null) 
      { 
       var playlistItemsListRequest = yt.PlaylistItems.List("snippet"); 
       playlistItemsListRequest.PlaylistId = uploadsListId; 
       playlistItemsListRequest.MaxResults = 50; 
       playlistItemsListRequest.PageToken = nextPageToken; 
       // Retrieve the list of videos uploaded to the authenticated user's channel. 
       var playlistItemsListResponse = playlistItemsListRequest.Execute(); 
       foreach (var playlistItem in playlistItemsListResponse.Items) 
       { 
        // Print information about each video. 
        //Console.WriteLine("Video Title= {0}, Video ID ={1}", playlistItem.Snippet.Title, playlistItem.Snippet.ResourceId.VideoId); 
        var qry = (from s in ObjEdbContext.ObjTubeDatas where s.Title == playlistItem.Snippet.Title select s).FirstOrDefault(); 
        if (qry == null) 
        { 
         objYouTubeData.VideoId = "https://www.youtube.com/embed/" + playlistItem.Snippet.ResourceId.VideoId; 
         objYouTubeData.Title = playlistItem.Snippet.Title; 
         objYouTubeData.Descriptions = playlistItem.Snippet.Description; 
         objYouTubeData.ImageUrl = playlistItem.Snippet.Thumbnails.High.Url; 
         objYouTubeData.IsValid = true; 
         ObjEdbContext.ObjTubeDatas.Add(objYouTubeData); 
         ObjEdbContext.SaveChanges(); 
         ModelState.Clear(); 

        } 
       } 
       nextPageToken = playlistItemsListResponse.NextPageToken; 
      } 
     } 
    } 
    catch (Exception e) 
    { 
     ViewBag.ErrorMessage = "Some exception occured" + e; 
     return RedirectToAction("GetYouTube"); 
    } 

    return RedirectToAction("GetYouTube"); 
} 

からYouTubeのAPI V3を使用している 私のために働きました https://developers.google.com/youtube/v3/code_samples/dotnet#retrieve_my_uploads

+0

にあなたを取得する必要がありますか?私はこれを持っていますか? – Cieja

+0

APIを作成しましたが、アプリケーションにエラーメッセージ「Access Not Configured」が表示されます。 API(YouTubeデータAPI)はプロジェクトでは有効になっていません。 Google Developers Consoleを使用して設定を更新してください。 [403] – Cieja

+0

ClientServiceRequest.csは必要ありません... Nuget Packet managerのYoutube API v3は、そのセットをインストールします –

3

APIキーを使用して、すべてのチャンネルの動画を照会することができます(自分のものではなくても:))

 public Task<List<SearchResult>> GetVideosFromChannelAsync(string ytChannelId) 
    { 

     return Task.Run(() => 
     { 
      List<SearchResult> res = new List<SearchResult>(); 

      string nextpagetoken = " "; 

      while (nextpagetoken != null) 
      { 
       var searchListRequest = _youtubeService.Search.List("snippet"); 
       searchListRequest.MaxResults = 50; 
       searchListRequest.ChannelId = ytChannelId; 
       searchListRequest.PageToken = nextpagetoken; 
       searchListRequest.Type  = "video"; 

       // Call the search.list method to retrieve results matching the specified query term. 
       var searchListResponse = searchListRequest.Execute(); 

       // Process the video responses 
       res.AddRange(searchListResponse.Items); 

       nextpagetoken = searchListResponse.NextPageToken; 

      } 

      return res; 

     }); 
    } 

このメソッドは何ClientServiceRequest.csについてのトラック

関連する問題