Ejemplo n.º 1
0
        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));
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Returns a VideoInfo object with video info.
        /// </summary>
        /// <param name="client">The VimeoClient to use.</param>
        /// <param name="videoId">The Vimeo Id of the video.</param>
        /// <param name="width">The closest width of the image url to return. Default is 1920px.</param>
        public VideoInfo GetVideoInfo(VimeoClient client, long videoId, int width = 1920)
        {
            var videoInfo = new VideoInfo();

            var task = Task.Run(async() =>
            {
                var video         = await client.GetVideoAsync(videoId);
                videoInfo.vimeoId = videoId;
                videoInfo.name    = video.name;
                if (!string.IsNullOrWhiteSpace(video.description))
                {
                    videoInfo.description = string.Format("<p>{0}</p>", video.description.Replace("\n", "<br>"));
                }
                else
                {
                    videoInfo.description = "";
                }
                videoInfo.duration = video.duration;
                videoInfo.hdLink   = video.HighDefinitionVideoSecureLink;
                videoInfo.sdLink   = video.StandardVideoSecureLink;
                videoInfo.hlsLink  = video.StreamingVideoSecureLink;

                //
                // for 0.8.x vimeo dot net structure
                //
                var pictures = video.pictures.ToList();
                var picSizes = pictures.FirstOrDefault(p => p.active == true).sizes.ToList();

                //
                // for > 0.8.x vimeo dot net structure
                //
                //var picSizes = video.pictures.sizes.ToList();

                if (picSizes.Count > 0)
                {
                    videoInfo.imageUrl = picSizes.Aggregate((x, y) => Math.Abs(x.width - width) < Math.Abs(y.width - width) ? x : y).link;
                }
            });

            task.Wait();

            return(videoInfo);
        }
Ejemplo n.º 3
0
        public (Metadata Metadata, Response Response) GetMetaData(TrainingMaterial trainingMaterial)
        {
            long clipId = 0;
            var  client = new VimeoClient(config.VideoSettings.Token);

            if (!long.TryParse(trainingMaterial.ExternalId, out clipId))
            {
                return(null, Response.CreateResponse(new IllegalOperationException("The training material id could not be converted into the desired format (string to long)")));
            }

            try {
                var video = client.GetVideoAsync(clipId).Result;
                if (video == null || video.id != clipId)
                {
                    return(null, Response.CreateResponse(new EntityNotFoundException("The desired video could not be retrieved from the host service (Vimeo)")));
                }

                return(new Metadata {
                    Status = video.status, Thumbnail = (video.pictures?.sizes?.Count > 0 ? video.pictures.sizes[0].link : string.Empty), Url = video.StandardVideoLink
                }, Response.CreateSuccessResponse());
            } catch (Exception ex) {
                return(null, Response.CreateResponse(ex));
            }
        }