2016-04-05 9 views
2

私はC#を使用しています、私は正常にYouTube動画をアップロードすることができます。今私はビデオのサムネイルをアップロードしたいです。YouTubeのビデオとサムネイルを同時にアップロードできますか?

private static async Task Upload(FileInfo Vidf) 
    { 
     //2.1 Get credentials 
     UserCredential credentials; 

     //2.1.1 Use https://console.developers.google.com/ to get the json file (Credential section) 
     using (var stream = new FileStream(APIjson, FileMode.Open, FileAccess.Read)) 
     { 
      credentials = await GoogleWebAuthorizationBroker.AuthorizeAsync(
       GoogleClientSecrets.Load(stream).Secrets, 
       new[] { YouTubeService.Scope.YoutubeUpload }, 
       "user", 
       CancellationToken.None); 
     } 

     //2.2 Create a YoutubeService instance using our credentials 
     var youtubeService = new YouTubeService(new BaseClientService.Initializer() 
     { 
      HttpClientInitializer = credentials, 
      ApplicationName = Assembly.GetExecutingAssembly().GetName().Name 
     }); 


     //2.3 Create a video object 
     var video = new Video() 
     { 
      Id = Vidf.Name, 
      Status = new VideoStatus 
      { 
       PrivacyStatus = "private" 
      }, 
      Snippet = new VideoSnippet 
      { 
       Title = "...", 
       Description = "...", 
      } 
     }; 

     var filePath = Vidf.FullName; 
     filesize = Vidf.Length; 
     //2.4 Read and insert the video in youtubeService 
     using (var fileStream = new FileStream(filePath, FileMode.Open)) 
     { 
      var videosInsertRequest = youtubeService.Videos.Insert(video, "snippet,status", fileStream, "video/*"); 
      videosInsertRequest.ProgressChanged += ProgressChanged; 
      videosInsertRequest.ResponseReceived += ResponseReceived; 

      //2.4.1 Wait for the upload process 
      await videosInsertRequest.UploadAsync(); 
     } 


     var tpath = Vidf.FullName.Replace("mp4", "jpg"); 

     using (var tStream = new FileStream(tpath, FileMode.Open)) 
     { 
      var tInsertRequest = youtubeService.Thumbnails.Set(video.Id, tStream, "image/jpeg"); 
      tInsertRequest.ProgressChanged += ProgressChanged; 

      await tInsertRequest.UploadAsync(); 
     } 

    } 

は、私が最初にビデオをアップロードし、ビデオを処理し、完成ユーチューブ待つ必要はありません:私は、デバッグにはエラーを得ませんが、サムネイルはアップロードできませんでしたが、ここに私のコードです。そして、動画IDを取得し、その動画IDとサムネイルを投稿する必要がありResponseReceived機能

static void ResponseReceived(Video video) 
    { 
     VidID = video.Id; 
    } 

のグローバルVAR「VidID」と設定された値を作成するには、このリンクhttps://developers.google.com/youtube/v3/docs/thumbnails/set#examples

+0

このエラーが発生しました。https://picasaweb.google.com/lh/photo/dRjgLlIS1Kyd-cST-h7-jkzD0UGBzob7Vodjzm8Pv-Qだからこの平均は最初にアップロードして、すべてのタスクを完了したYouTubeを待つ必要があります。サムネイルをアップロードします。そうですか? – Sicay

答えて

1

にサンプルコードのようにサムネイルをアップロードします。

関連する問題