【问题标题】:Vimeo: Get download link from APIVimeo:从 API 获取下载链接
【发布时间】:2016-05-26 16:01:49
【问题描述】:

我有 Vimeo PRO,我正在尝试获取下载链接,以便最终用户可以下载视频源。但是,由于缺乏文档,很难弄清楚这一点。

我正在尝试VimeoDotNet,但我无法进行身份验证,我正在执行以下操作:

var client = new VimeoClientFactory().GetVimeoClient(key, secret)
var downloadLink = client.GetVideo(video_id).download;

但是,对 GetVideo 的调用会引发错误,提示我必须先进行身份验证,但我不知道如何!

我也尝试过另一个 VimeoClient,但它似乎没有实现下载链接部分。

有人可以帮忙吗?或者更好的是,分享一个工作示例。谢谢。

【问题讨论】:

  • client 上是否有可以检查以确保您成功通过身份验证的属性?
  • 不,我认为这不是身份验证。可能是因为我必须先打电话。实际上,另一个 API 有一个 Login 方法,但不是这个。不幸的是,我只有另一个库的 dll,不知道以前的开发人员从哪里下载它。问题是 Vimeo 和库中都缺乏文档或示例。
  • 你至少有源代码,所以你可以看一下工作流程

标签: c# .net vimeo-api


【解决方案1】:

2天后我终于能够做到,我会分享我所做的以防有人需要它。首先,下载这个库:

https://github.com/saeedafshari/VimeoDotNet3

在 Visual Studio 中打开并编译它。它非常简单,因此立即编译。

然后从您的项目中引用该编译的 DLL 并执行以下操作:

var VimeoClient3 = Vimeo.VimeoClient.ReAuthorize(_vimeoAccessToken, 
                   _vimeoAppConsumerKey, _vimeoAppClientSecret);

// videoId is the ID of the video as in the public URL (eg, 123874983)
var result = VimeoClient3.Request("/videos/" + videoId, null, "GET");
if (result == null)
{
    throw new Exception("Video not found.");
}
if (result["download"] == null)
{
    throw new Exception("Download link not available.");
}
foreach (var item in (ArrayList)result["download"])
{
    var downloadLinkInfo = item as Dictionary<string, object>;
    if (downloadLinkInfo == null) continue;

    // For example, get the link for SD quality.
    // As of today, Vimeo was returning an HD quality and a 'mobile' one
    // that is for streaming.
    if (string.Equals((downloadLinkInfo["quality"] as string), "sd", StringComparison.InvariantCultureIgnoreCase))
    {
        return downloadLinkInfo["link"] as string;
    }
}

【讨论】:

  • 或许应该注意,为了获得视频的链接,视频发布者需要有 PRO 会员级别或更高。
猜你喜欢
  • 2018-10-27
  • 2019-09-30
  • 2014-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多