Twilio Video API Returns MKV 文件作为字符串响应录制

Twilio Video API Returns MKV File as a String in Response of Recording

我在 Twilio 视频中检索记录时遇到问题 API。

我在后端使用 C# 并已成功获取房间的 Recording sids。

 const string apiKeySid = "SKXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
                const string apiKeySecret = "byt32MXXXXXXXXXXXXXXXXXXXXX";

                TwilioClient.Init(apiKeySid, apiKeySecret);

                string recordingSid = sample.RecordingSid;
                var uri = $"https://video.twilio.com/v1/Recordings/{recordingSid}/Media";
                var response = TwilioClient.GetRestClient().Request(new Request(HttpMethod.Get, uri));

                var mediaLocation =JsonConvert.DeserializeObject<Dictionary<string, string>>(response.Content)["location"];
                using (var webClient = new System.Net.WebClient())
                {
                    string mediaContent = webClient.DownloadString(uri);
                }

这是我从 Twilio 服务器下载录音的代码。

回应

Content: "\u001aEߣ\u0001[=13=][=13=][=13=][=13=][=13=][=13=]\u0014B��matroska[=13=]B��\u0002B��...." A very long text which I think is an mkv file
StatusCode: OK

错误

var mediaLocation =JsonConvert.DeserializeObject<Dictionary<string, string>>(response.Content)["location"];

由于内容中包含乱码,此行之后的代码将无法运行。

我试过的 1)尝试复制内容,在记事本中粘贴然后保存文件,Unicode和ASCII码,将文件格式更改为“.mkv”并尝试运行它。 P.S。不起作用。 2) 尝试从 "https://video.twilio.com/v1/Recordings/{recordingSid}/Media" 下载文件(从我的 C# 代码和在浏览器中手动下载),给出需要身份验证错误 3) 尽我所能将字符串转换为mkv但无济于事。

官方文档怎么说

{
"location": "https://com.twilio.dev-us1.video.recording.s3.amazonaws.com/RTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

} 这不是 API returns,也许他们最近更改了它,但他们应该在他们的文档中更新它。

我需要帮助的地方 如果您以前使用过 Twilio 的视频 API,您能告诉我如何在假设我有录音的房间 SID 和录音 SID 的情况下从 Twilio 服务器检索录音吗?

提前致谢:)

我自己解决了 当我在浏览器中写这个 url https://video.twilio.com/v1/Recordings/{recordingSid}/Media 并写上 Account_Sid 作为用户名和 Account_Secret 作为密码,这样我就可以直接下载文件了。 所以我所做的是,每次我想访问录音时,我都会向此 url 发送一个 GET 请求 https://video.twilio.com/v1/Recordings/{recordingSid}/Media 加上账号sid和账号密码,就可以直接下载录音了。

我将此答案发布给以后遇到同样问题的任何人。