Vimeo:从 API 下载 link

Vimeo: Get download link from API

我有 Vimeo PRO,我正在尝试下载 link 以便最终用户可以下载视频源。但是,由于缺乏文档,所以很难弄清楚。

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

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

但是,对 GetVideo 的调用会抛出一个错误,提示我必须先进行身份验证,但我不知道该怎么做!

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

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

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;
    }
}