You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Twilio Video API录制文件获取问题求助(C#后端)

解决Twilio Video API获取录制文件的问题

我之前也踩过这个文档和实际行为不符的坑!你碰到的情况是因为Twilio Video的/Recordings/{RecordingSid}/Media端点现在直接返回录制文件的二进制数据,而不是官方文档里描述的包含location字段的JSON响应——这确实是文档更新不及时导致的误解。

正确的获取方式(直接保存二进制文件)

你不需要再尝试解析JSON了,直接把API返回的二进制内容保存为MKV文件即可。修改你的代码如下:

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";

// 发送GET请求获取二进制响应
var response = TwilioClient.GetRestClient().Request(new Request(HttpMethod.Get, uri));

// 校验响应状态并保存文件
if (response.StatusCode == System.Net.HttpStatusCode.OK)
{
    // 将二进制内容写入MKV文件
    File.WriteAllBytes("your-recording.mkv", response.ContentBytes);
    Console.WriteLine("录制文件已成功保存!");
}
else
{
    Console.WriteLine($"请求失败,状态码:{response.StatusCode},响应内容:{response.Content}");
}

为什么你之前的尝试失败?

  • 用WebClient.DownloadString()是错误的:MKV是二进制文件,当作字符串处理会破坏编码,导致文件损坏无法播放;
  • 浏览器直接访问URI需要认证:Twilio的API端点要求Basic Auth(用你的API Key Sid作为用户名,Secret作为密码),所以直接在浏览器打开会提示"Authentication Required";
  • 解析JSON的步骤完全多余:现在端点直接返回文件内容,没有JSON结构可以解析。

额外需求:生成临时可访问的公开URL

如果你需要一个不需要认证就能访问的临时链接(比如分享给他人),可以用Twilio的RecordingResource生成签名URL:

var recording = RecordingResource.Fetch(new RecordingResource.FetchOptions(recordingSid));
// 生成有效期为1小时的签名URL(可根据需求调整ValidUntil)
var signedMediaUrl = recording.GetMediaUrl(new RecordingResource.GetMediaUrlOptions
{
    ValidUntil = DateTime.UtcNow.AddHours(1)
});

// 这个URL可以直接在浏览器或第三方工具中访问
Console.WriteLine("临时访问链接:" + signedMediaUrl);

注意事项

确保你的API Key拥有video:recordings:read的权限,否则会返回权限不足的错误。你可以在Twilio控制台的API Key管理页面检查权限设置。

内容的提问来源于stack exchange,提问作者Umer Khalid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:43:02