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

如何通过C#调用YouTube API实现视频定时发布功能?

报错原因与修复方案

你遇到的invalidPublishAt错误由两类常见问题导致:

  • 传入PublishAt的DateTime对象的Kind属性不是Utc,或时间不符合API规则
  • 未提前将视频的status.privacyStatus设置为private,YouTube仅支持对私有视频设置定时发布时间

你现有代码中冗余的格式转字符串再解析操作,会导致得到的DateTime对象Kind为Unspecified,API序列化时无法识别为合法的UTC时间,因此触发报错。

修复后的代码参考:

// 将时间选择器选中的时间转换为UTC时间,保证Kind属性为Utc
DateTime scheduledUtcTime = TimeZoneInfo.ConvertTimeToUtc(datepicker.Value);

// 必须先设置隐私状态为私有
newVideo.Status.PrivacyStatus = "private";
// 赋值定时发布时间
newVideo.Status.PublishAt = scheduledUtcTime;

newVideo = await youtubeService.Videos.Update(newVideo, "Id,snippet,status").ExecuteAsync();

额外注意事项:

  • 定时发布时间必须晚于当前UTC时间至少15分钟,否则仍会触发相同报错
  • 测试时可以直接用DateTime.UtcNow.AddMinutes(20)生成符合要求的UTC时间,验证逻辑正常后再对接时间选择器的输入

内容的提问来源于stack exchange,提问作者Duy Nguyen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 07:57:02