如何将 YouTube 本地化(翻译)添加到我的 C# YouTube 视频上传器?

Posted

技术标签:

【中文标题】如何将 YouTube 本地化(翻译)添加到我的 C# YouTube 视频上传器?【英文标题】:How do I add YouTube localizations (translations) to my C# YouTube video uploader? 【发布时间】:2020-06-19 17:23:52 【问题描述】:

我目前正在开发一个可以将视频文件上传到 YouTube 的程序,并希望在该程序中添加本地化(翻译)。

我复制了在this 链接中找到的示例.NET 代码。上传视频很顺利,上传本身没有任何问题,但我似乎真的不知道如何为视频添加本地化。

这是我目前拥有的代码:

var video = new Video();
video.Snippet = new VideoSnippet();
video.Snippet.Title = this.Title;
video.Snippet.Description = this.Description;
video.Snippet.Tags = new string[]  "tag1", "tag2" ;
video.Snippet.CategoryId = "22"; // See https://developers.google.com/youtube/v3/docs/videoCategories/list
video.Status = new VideoStatus();
video.Status.PrivacyStatus = "unlisted"; // or "private" or "public"

我尝试了一些方法:

//Example 1.
video.Localizations["de_DE"].Title = "testLocalization Title";
video.Localizations["de_DE"].Description = "testLocalization Description";

// 

//Example 2.
video.Localizations["de-DE"].Title = "testLocalization Title";
video.Localizations["de-DE"].Description = "testLocalization Description";

//

//Example 3.
VideoLocalization germanLocalization = new VideoLocalization();
germanLocalization.Title = "testLocalization title";
germanLocalization.Description = "testLocalization description";

video.Localizations.Add("de_DE", germanLocalization);

//

//Example 4.
VideoLocalization germanLocalization = new VideoLocalization();
germanLocalization.Title = "testLocalization title";
germanLocalization.Description = "testLocalization description";

video.Localizations.Add("de-DE", germanLocalization);

(我认为它应该包含下划线而不是连字符,因为这是 docs 所说的,但尝试了两种方式都只是为了查看(连字符和下划线只是 ex.1 & 2 和 ex.3 之间的区别& 4))

我注意到还有一个video.Snippet.Localized,但似乎没有办法在其中添加国家代码,所以我没有进一步研究。

很想听听任何可以帮助我推进这个项目的人。

【问题讨论】:

【参考方案1】:

经过一段时间的挖掘,我找到了解决问题的方法。 我在示例 3/4 中走在了正确的轨道上。首先,您要创建一个包含本地化语言代码的Dictionary,例如"nl-nl" 和实际的 VideoLocalization 对象。

Dictionary<string, VideoLocalization> localizationDictionary = new Dictionary<string, VideoLocalization>();
VideoLocalization dutch = new VideoLocalization();
dutch.Description = "dutch test description";
dutch.Title = "dutch test titel";

然后,将荷兰语 VideoLocalization 添加到字典中,并将 video.Localizations 设置为刚刚创建的字典。

localizationDictionary.Add("nl-nl", dutch);
video.Localizations = localizationDictionary;

最后,在 InsertRequest 中,将本地化部分添加到 part 参数中。

var videosInsertRequest = youtubeService.Videos.Insert(video, "snippet,status,localizations", fileStream, "video/*");

然后你就完成了!希望这对遇到与我相同的问题的人有所帮助。

【讨论】:

以上是关于如何将 YouTube 本地化(翻译)添加到我的 C# YouTube 视频上传器?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 css 添加到我的其他本地网页? [关闭]

如何将远程分支添加到我的本地仓库?

如何将本地用户添加到我的 docker 容器中?

如何将占位符图像添加到嵌入的 Vimeo 和 Youtube 视频中?

如何将本地化添加到项目

如何使用 UISaveVideoAtPathToSavedPhotosAlbum 保存 youtube 视频?