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

问题描述 投票:-3回答:1

答案将是这样的方法:

var vimeoUploadUrl =等待getVimeoUploadUrl(videoFileSizeInBytes,accessToken);

c# .net-core vimeo vimeo-api
1个回答
0
投票

为此,您必须拥有一个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/x-www-form-urlencoded");
                requestMessage.Content = content;
                var response = await httpClient.SendAsync(requestMessage);

                response.EnsureSuccessStatusCode();

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

                var vimeoTicket = (Newtonsoft.Json.Linq.JObject)Newtonsoft.Json.JsonConvert.DeserializeObject(result);

                vimeoUploadUrl = vimeoTicket.SelectToken("upload.upload_link").ToString();


                var videoLinkForUseAfterUploading = vimeoTicket.GetValue("link").ToString();
                Console.WriteLine("videoLinkForUseAfterUploading: " + videoLinkForUseAfterUploading);

                string videoNumber = videoLinkForUseAfterUploading.Substring(videoLinkForUseAfterUploading.LastIndexOf("/") + 1);

                Console.WriteLine("videoNumber: " + videoNumber);

            }

        }
        catch (Exception err)
        {
            var errMessage = err.Message;               
            Console.WriteLine("In getVimeoUploadUrl() error: " + err.Message);
        }

        return vimeoUploadUrl;

    }

我投入了一些您可能想使用的额外数据,这些数据未在方法中使用或返回。

© www.soinside.com 2019 - 2024. All rights reserved.