【问题标题】:Vimeo API - Getting video's direct link by quality (C#)Vimeo API - 按质量获取视频的直接链接(C#)
【发布时间】:2018-07-30 21:26:01
【问题描述】:

我有一个单用户应用程序,

在 Vimeo 的操场上,做视频/{id} 时,我得到一个大的 JSON 结果,其中包含:

"files": [
        {
            "quality": "hd",
            "type": "video/mp4",
            "width": 1920,
            "height": 1080,
            "link": "...link...",
            "created_time": "2018-02-15T13:46:25+00:00",
            "fps": 23.980000000000000426325641456060111522674560546875,
            "size": 3113207678,
            "md5": "b6beed65b699df870e481045178accc5",
            "link_secure": "...link..."
        },
        {
            "quality": "sd",
            "type": "video/mp4",
            "width": 640,
            "height": 360,
            "link": "...link...",
            "created_time": "2018-02-15T13:46:05+00:00",
            "fps": 23.980000000000000426325641456060111522674560546875,
            "size": 536864946,
            "md5": "af227a5526af15d2bce6ac951d6cf06b",
            "link_secure": "...link..."
        },
        {
            "quality": "sd",
            "type": "video/mp4",
            "width": 960,
            "height": 540,
            "link": "...link...",
            "created_time": "2018-02-15T13:46:05+00:00",
            "fps": 23.980000000000000426325641456060111522674560546875,
            "size": 1242328160,
            "md5": "1963f908509b14fd7a40dc46bfa6c519",
            "link_secure": "...link..."
        },
        {
            "quality": "hd",
            "type": "video/mp4",
            "width": 1280,
            "height": 720,
            "link": "...link...",
            "created_time": "2018-02-15T13:46:05+00:00",
            "fps": 23.980000000000000426325641456060111522674560546875,
            "size": 1977386604,
            "md5": "af38f067bd39f4f5bb71bad72f925337",
            "link_secure": "...link..."
        },
        {
            "quality": "hls",
            "type": "video/mp4",
            "link": "...link...",
            "created_time": "2018-02-15T13:46:25+00:00",
            "fps": 23.980000000000000426325641456060111522674560546875,
            "size": 3113207678,
            "md5": "b6beed65b699df870e481045178accc5",
            "link_secure": "...link..."
        }

(我编辑了网址)

但是在我的代码中执行相同的调用时,整个“文件”部分都丢失了(整个 json 结果看起来也不同):

这是我的代码,调用:

vc.Request("/videos/255898412", null, "GET");

请求方法:

 public Dictionary<string, object> Request(
            string url,
            Dictionary<string, string> parameters,
            string method,
            bool jsonBody = true)
        { 
            var headers = new WebHeaderCollection()
            {
                { "Authorization", String.Format("Bearer {0}", AccessToken) }
            };
            method = method.ToUpper();
            url = apiRoot + url;
            string body = "";
            string contentType = "application/x-www-form-urlencoded";

            if (parameters != null && parameters.Count > 0)
            {
                if (method == "GET")
                {
                    url += "?" + Helpers.KeyValueToString(parameters);
                }
                else if (method == "POST" || method == "PATCH" || method == "PUT" || method == "DELETE")
                {
                    if (jsonBody)
                    {
                        contentType = "application/json";
                        body = jsonEncode(parameters);
                    }
                    else
                    {
                        body = Helpers.KeyValueToString(parameters);
                    }
                }
            }


            return  JsonConvert.DeserializeObject<Dictionary<string, object>>(Helpers.HTTPFetch(url, method, headers, body, contentType));

        }

我的目标是获得 HLS 直接链接,并在我的播放器中播放它。 我怎样才能实现它?

谢谢

【问题讨论】:

    标签: json vimeo vimeo-api


    【解决方案1】:

    我今天也遇到了同样的问题。

    我的愚蠢解决方案如下。

    • 使用 3.1 版本的 API

    【讨论】:

    • @AaYy 这是 API v3.4 中的一个错误,现已解决。使用 3.4 再次提出请求,如果仍有任何问题,请联系 Vimeo - vimeo.com/help/contact
    • @AaYy 奇数。您可以给 Vimeo 发送电子邮件并引用此 StackOverflow 线程,并在此处回复您的支持票参考号吗?很想弄清楚这个。谢谢! -- vimeo.com/help/contact
    • @TommyPenner 其实我昨天已经做了,没有保存票号
    • @TommyPenner 我在 3.4 中仍然遇到这个问题,即使使用带有 video_files 的令牌。票号#3552635。
    • @franzo 我刚刚回复了您的支持电子邮件。对于找到此答案/评论的任何其他人,请确保您的 API 应用默认为 v3.4,如应用管理页面上所示。如果您使用的是旧版本,或者您的应用默认使用旧版本,请在 Vimeo 开发者网站上创建一个新的 API 应用,默认为 v3.4。
    【解决方案2】:

    存在一个错误,即下载和文件密钥未返回给使用 API v3.4 的开发人员。 Vimeo 已经修复了这个错误(截至 2018 年 2 月 23 日)。

    从 API v3.4 开始,开发者必须使用具有video_files 范围的令牌对请求进行身份验证,才能在视频响应中接收下载和文件密钥。

    如果您使用 OAuth 工作流程生成令牌,则可以通过以下方式生成具有 video_files 范围的令牌:https://developer.vimeo.com/api/authentication#supported-scopes

    希望这些信息对您有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-08
      • 2014-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多