Как добавить локализации YouTube (переводы) в мой C# загрузчик видео YouTube? - PullRequest
1 голос
/ 07 марта 2020

В настоящее время я работаю над программой, которая может загружать видеофайл на YouTube, и хотел добавить в программу локализации (переводы).

Я скопировал пример. 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);

(я подумал, что он должен включать в себя подчеркивание, а не дефис, так как это то, что документы скажем, но попробовал оба варианта, чтобы увидеть (дефис и подчеркивание - это только разница между примерами 1 и 2 и примерами 3 и 4))

Я заметил, что также есть video.Snippet.Localized, но нет Кажется, это не способ добавить код страны к этому, так что я не стал вдаваться в подробности.

Хотелось бы услышать от кого-либо, кто мог бы помочь мне в продвижении этого проекта.

1 Ответ

2 голосов
/ 08 марта 2020

Немного покопавшись, я нашел решение своей проблемы. Я был на правильном пути с примером 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/*");

И тогда вы сделали! Надеюсь, это поможет всем, у кого были те же проблемы, что и у меня.

...