Example #1
0
        public async Task GetStreamDetails()
        {
            var streamDetails = await sut.GetStreamDetails("monstercat");

            Assert.NotNull(streamDetails);
            Assert.NotNull(streamDetails.description);
        }
Example #2
0
        public async Task <List <VodDetails> > GetVods(VodQuery vodQuery)
        {
            if (string.IsNullOrEmpty(vodQuery.StreamId))
            {
                throw new ArgumentNullException("vodQuery.StreamId");
            }

            int streamid;

            if (!int.TryParse(vodQuery.StreamId, out streamid))
            {
                if (!channelNameIdMap.TryGetValue(vodQuery.StreamId, out streamid))
                {
                    var channel = await mixerClient.GetStreamDetails(vodQuery.StreamId, CancellationToken.None);

                    channelNameIdMap[channel.token] = channel.id;
                    streamid = channel.id;
                }
            }

            var pagedQuery = new MixerPagedQuery()
            {
                Skip = vodQuery.Skip, Take = vodQuery.Take
            };
            var vods = await mixerClient.GetChannelVideos(streamid, pagedQuery);

            var vodDetails = vods.Select(x => new VodDetails()
            {
                Views      = x.viewsTotal.GetValueOrDefault(),
                Length     = TimeSpan.FromSeconds(x.duration),
                Title      = x.name,
                RecordedAt = x.createdAt.GetValueOrDefault(),
                Url        = $"{BaseUrl}{vodQuery.StreamId}?vod={x.id}",
                ApiClient  = this,
            }).ToList();

            return(vodDetails);
        }