如何将 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 视频上传器?的主要内容,如果未能解决你的问题,请参考以下文章