public (UploadResult Result, Response Response) Upload(Core.Services.UploadRequest request) { try { var client = new VimeoClient(config.VideoSettings.Token); var ticket = client.GetUploadTicketAsync().Result; IBinaryContent file = new BinaryContent(request.Stream, request.ContentType); var uploadRequest = client.UploadEntireFileAsync(file).Result; var verificationResult = client.VerifyUploadFileAsync(uploadRequest).Result; Task.WaitAll(client.UpdateVideoMetadataAsync(uploadRequest.ClipId.Value, new VideoUpdateMetadata { Description = request.Description, Name = request.Title, Privacy = VideoPrivacyEnum.Password, AllowDownloadVideo = false, Password = config.VideoSettings.Password }) ); var albumResult = client.AddToAlbumAsync(4877366, uploadRequest.ClipId.Value).Result; Task.WaitAll(client.CompleteFileUploadAsync(uploadRequest)); var video = client.GetVideoAsync(uploadRequest.ClipId.Value).Result; string thumbnailUrl = null; if (video?.pictures?.sizes != null && video.pictures.sizes.Count > 0) { thumbnailUrl = video.pictures.sizes[0].link; } return(new UploadResult(uploadRequest.ClipId.ToString(), video.StandardVideoLink, thumbnailUrl), Response.CreateSuccessResponse()); }catch (Exception ex) { return(null, Response.CreateResponse(ex)); } }