首页 > 解决方案 > YoutubeAPI v3 - 设置缩略图返回已完成状态,但没有在视频上设置缩略图

问题描述

我正在开发一个用于将视频上传到 YouTube 的 .NET Core 2.2 WebAPI 服务。除了上传视频之外,服务还必须将自定义缩略图上传到上传的视频。

我找不到这个特定任务的代码示例,所以我根据上传视频的示例实现了缩略图上传。我尝试过上传大量视频(属于授权帐户),并尝试上传各种大小和形状不同的缩略图,但没有一个能上传到视频中。

using (var youtubeService = await GetYouTubeService())
using (var fileStream = new FileStream(request.ThumbnailFilePath, FileMode.Open))
{
    var thumbnailSetRequest = youtubeService.Thumbnails.Set(request.YoutubeId, fileStream, "image/jpeg");
thumbnailSetRequest.ProgressChanged += ThumbnailSetRequest_ProgressChanged;
    var result = await thumbnailSetRequest.UploadAsync();
    if (result.Status == UploadStatus.Failed)
    {
        Logger.Error($"Unable to upload thumbnail for video (YT id: {request.YoutubeId})");
    }
}

每次我执行此代码时,都不会引发异常,并且返回result.Status的总是设置为 Complete,但在请求的视频上没有设置缩略图。我错过了什么?为什么 API 向我提供上传成功的信息,但显然不是?

标签: c#.net-coreyoutube-data-api

解决方案


看起来这确实是上传缩略图的正确代码,但由于某种原因有时它不起作用。在发布此问题几天后,我在测试应用程序的另一部分并看到这次添加了缩略图时,我已经执行了此代码而没有任何更改。

如果我知道为什么会发生这种情况会非常有用,但由于这是 Google 推荐的帮助渠道,而且他们没有提供任何答案,所以它仍然是一个谜。


推荐阅读