YouTube上传文件给我ArgumentNullException(C#)

时间:2014-04-18 14:41:14

标签: c# .net youtube-api google-api youtube-data-api

我正在使用Google“Client Library for .NET”进行YouTube服务 当我尝试上传视频时,我的[Videos.Insert]请求中出现了错误。(System.ArgumentNullException)。

ArgumentNullException: Value cannot be null. Parameter name: baseUri

堆栈:

в Microsoft.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   в Microsoft.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
   в Microsoft.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   в Microsoft.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
   в Google.Apis.Upload.ResumableUpload`1.<UploadCoreAsync>d__e.MoveNext() в c:\code\google.com\google-api-dotnet-client\default\Tools\Google.Apis.Release\bin\Debug\output\default\Src\GoogleApis\Apis\[Media]\Upload\ResumableUpload.cs:строка 459

我的代码:

X509Certificate2 certificate = new X509Certificate2(@"test.p12", "notasecret", X509KeyStorageFlags.Exportable);

    ServiceAccountCredential credential = new ServiceAccountCredential(
        new ServiceAccountCredential.Initializer("test@developer.gserviceaccount.com")
        {
            Scopes = new[] { YouTubeService.Scope.YoutubeUpload, YouTubeService.Scope.Youtube, YouTubeService.Scope.YoutubeReadonly }
        }.FromCertificate(certificate));

    if (credential.RequestAccessTokenAsync(CancellationToken.None).Result)
    {
        String AuthenticationKey = credential.Token.AccessToken;
    }

        var youtubeService = new YouTubeService(new BaseClientService.Initializer()
          {
              ApplicationName = "test",

              HttpClientInitializer = credential
          });

          var video = new Video();
          video.Snippet = new VideoSnippet();
          video.Snippet.Title = "Test Video";
          video.Snippet.Description = "Test Vide Description";
          video.Snippet.Tags = new string[] { "test" };
          video.Snippet.CategoryId = "22";


          video.Status = new VideoStatus();
          video.Status.PrivacyStatus = "private"; 
          var filePath = @"test.mp4"; 

          using (var fileStream = new FileStream(filePath, FileMode.Open))
          {

            var videosInsertRequest = youtubeService.Videos.Insert(video, "snippet,status", fileStream, "video/*");
            var uploadResult = videosInsertRequest.Upload();
            uploadResult = uploadResult;
          }

任何人都可以提供帮助吗?

2 个答案:

答案 0 :(得分:1)

我也遇到了同样的问题,fiddler将响应显示如下。

{  &#34;错误&#34;:{   &#34;代码&#34;:500,   &#34; message&#34;:null  } }

答案 1 :(得分:0)

这不是你的代码问题,我们都得到同样的错误。问题在这里提出:https://code.google.com/p/gdata-issues/issues/detail?id=6352