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和账号密码,就可以直接下载录音了。
我将此答案发布给以后遇到同样问题的任何人。
我在 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和账号密码,就可以直接下载录音了。
我将此答案发布给以后遇到同样问题的任何人。