如何将 YouTube 本地化(翻译)添加到我的 C# YouTube 视频上传器?
How do I add YouTube localizations (translations) to my C# YouTube video uploader?
我目前正在开发一个可以将视频文件上传到 YouTube 的程序,并希望向该程序添加本地化(翻译)。
我已经复制了在 this link 中给出的示例 .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 就是这么说的,但是尝试了两种方式只是为了看看(连字符和下划线只是前 1 和 2 之间的区别以及示例 3 和 4))
我注意到还有一个 video.Snippet.Localized
,但似乎没有办法向其添加国家/地区代码,因此我没有进一步研究。
很想听听任何可以帮助我推进这个项目的人。
经过更长时间的研究,我找到了解决问题的办法。
我在示例 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 的程序,并希望向该程序添加本地化(翻译)。
我已经复制了在 this link 中给出的示例 .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 就是这么说的,但是尝试了两种方式只是为了看看(连字符和下划线只是前 1 和 2 之间的区别以及示例 3 和 4))
我注意到还有一个 video.Snippet.Localized
,但似乎没有办法向其添加国家/地区代码,因此我没有进一步研究。
很想听听任何可以帮助我推进这个项目的人。
经过更长时间的研究,我找到了解决问题的办法。
我在示例 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/*");
然后你就大功告成了!希望这可以帮助遇到与我相同问题的任何人。