如何获得用于将视频上传到我的Vimeo帐户的视频上传链接?

时间:2019-10-25 05:13:37

标签: c# .net-core vimeo vimeo-api

如何获得视频上传链接,以使用带有C#和.Net Core的Vimeo API将视频上传到我的Vimeo帐户?

答案将是这样的方法:

var vimeoUploadUrl =  await getVimeoUploadUrl(videoFileSizeInBytes, accessToken).ConfigureAwait(false);

1 个答案:

答案 0 :(得分:-1)

要执行此操作,您必须拥有一个Vimeo帐户(此帐户可用于Plus级别或更高级别,不了解其他帐户),已创建了Vimeo应用程序(在Vimeo中),并被授予上传权限,并获得了访问令牌。完成所有操作后,代码如下:

    HttpClient httpClient = new HttpClient();

    public async Task<string> getVimeoUploadUrl(int videoFileSize, string accessToken)
    {
        var vimeoUploadUrl = "";

        string vimeoApiUrl = "https://api.vimeo.com/me/videos"; // Vimeo URL

        try
        {

            string body =
                @"{'upload': {'approach': 'post','size': '" + videoFileSize + "'}}".Replace("'", "\"");

            HttpContent content = new StringContent(body);

            using (var requestMessage = new HttpRequestMessage(HttpMethod.Post, vimeoApiUrl))
            {
                requestMessage.Headers.Authorization =
                    new AuthenticationHeaderValue("Bearer", accessToken);
                requestMessage.Headers.Add("Accept", "application/vnd.vimeo.*+json;version=3.4");
                requestMessage.Headers.Add("ContentType", "application/json");
                requestMessage.Content = content;
                var response = await httpClient.SendAsync(requestMessage).ConfigureAwait(false);

                response.EnsureSuccessStatusCode();

                var result = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

                var myJsonObject = JObject.Parse(result);

                vimeoUploadUrl = myJsonObject.SelectToken("upload.upload_link").ToString();                  
            }

        }
        catch (Exception err)
        {
        // Do your own error handling!   
        }

        return vimeoUploadUrl;

    }