调用channel9 api获取视频的最佳方法是什么?

时间:2017-01-31 13:40:13

标签: msdn

假设我有通往channel9电影的网址;

Ex:Syncfusion Xamarin Products

我想在我的网站上显示这部电影,并为它显示一些信息。持续时间。

我所知道的就是,我可以通过电话

获取电影列表

https://channel9.msdn.com/Series/Office-365-Tips--Tricks/01-Wprowadzenie并跳过+25以显示接下来的25个结果。

我现在的实施方式如下:

  1. 从api获取前25个元素

  2. 迭代他们

  3. 将我的网址与elementFromApi [i] .url进行比较 它的工作,但我不喜欢这个解决方案,它是非常优雅和缓慢的地狱。我对api一无所知所以我不知道如何重构这个^。

  4. 也许有人可以帮助我。

    PS。我需要来自api的信息,嵌入iframe与给定的url不是这里的解决方案:) PS2。对不起我的英语不好。

1 个答案:

答案 0 :(得分:1)

我通过我的客户得到了这个要求,我最终使用RSS做到了!在您的用例中,网址为https://channel9.msdn.com/Series/Office-365-Tips--Tricks/01-Wprowadzenie - 我们只需使用链接https://s.ch9.ms/Series/Office-365-Tips--Tricks/rss/mp4即可阅读RSS - 在PowerShell中,我们可以使用下面的代码探索内容

$Sessions = Invoke-Restmethod -Uri 'https://s.ch9.ms/Series/Office-365-Tips--Tricks/rss/mp4' -UseDefaultCredentials
foreach($Session in $Sessions) {
    $Duration = [timespan]::FromSeconds($Session.duration)
    [pscustomobject]@{
        Title = $Session.title
        Duration = ("{0:0}:{1:00}:{2:00}" -f ($Duration.Hours , $Duration.Minutes , $Duration.Seconds))
        Creator = $Session.creator
        "URl(MP3)" = $Session.group.content.url[0]
        "URl(MP4)" = $Session.group.content.url[1]
        "URl(webm)" = $Session.group.content.url[2]
        "URl(MP4High)" = $Session.group.content.url[3]
    }
}

注意:代码需要即兴创作! 使用C#可以实现同样的目标 - 但我不是经过认证的开发人员 - 所以,我使用PowerShell来满足客户要求。