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

使用C#调用YouTube API上传视频时遇Metadata过大BadRequest错误

解决YouTube API上传时"Metadata part is too large"的Bad Request错误

你遇到的这个错误大概率是元数据部分的构造方式不符合YouTube API的要求,而非API端的问题。下面我来拆解问题并给出具体的修复方案:

核心问题分析

  1. 元数据未指定正确的参数名称:YouTube API明确要求,在多部分表单上传时,元数据部分必须命名为"metadata"。你目前只是直接添加了StringContent,没有指定这个关键名称,这会导致API无法正确解析元数据,甚至误判元数据的大小。
  2. 元数据字段可能超出长度限制:虽然可能性稍低,但YouTube API对元数据字段有明确长度限制,比如描述最多5000字符、标签总长度(含分隔符)最多500字符、标题最多100字符,你可以先排查这些字段是否超标。

修复步骤

步骤1:为元数据指定API要求的名称

在将StringContent添加到MultipartFormDataContent时,必须显式指定名称为"metadata",这是API识别元数据的必要条件。

步骤2:检查元数据字段长度

  • 确认description字符数不超过5000
  • 确认所有tags的总字符数(包括逗号)不超过500
  • 确认title字符数不超过100

修正后的完整代码

// 构造用于向YouTube上传文件的HttpClient
var client = new HttpClient {
    BaseAddress = new Uri("https://www.googleapis.com/"),
    Timeout = Timeout.InfiniteTimeSpan, // 更简洁的无限超时写法
    MaxResponseContentBufferSize = 2147483647
};
client.DefaultRequestHeaders.Add("Authorization", $"Bearer {accessToken}");

var requestContent = new MultipartFormDataContent();

// 1. 添加视频文件内容,指定字段名为"video"(API要求)并带上文件名
var fileContent = new StreamContent(formFile.OpenReadStream());
fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse(formFile.ContentType); // 明确指定文件MIME类型
requestContent.Add(fileContent, "video", formFile.FileName);

// 2. 添加元数据内容,必须指定字段名为"metadata"
var propertiesJson = JsonConvert.SerializeObject(properties);
var stringContent = new StringContent(propertiesJson, Encoding.UTF8, "application/json");
requestContent.Add(stringContent, "metadata");

var result = await client.PostAsync("upload/youtube/v3/videos?part=snippet,status", requestContent);

// 返回内容处理:修复了原代码未await ReadAsStringAsync()的bug
if (!result.IsSuccessStatusCode) {
    var content = await result.Content.ReadAsStringAsync();
    return BadRequest(new { content, reasonPhrase = result.ReasonPhrase });
}

额外注意点

  • 原代码中result.Content.ReadAsStringAsync()没有添加await,会导致返回的是Task对象而非实际错误内容,这个隐藏bug已经在修正代码中修复。
  • 给文件内容指定MIME类型能帮助API更准确地识别视频格式,避免潜在的解析问题。

内容的提问来源于stack exchange,提问作者Florian Delvo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:29:04