public async Task ProcessFile(PodcastMetadata podcastMetadata) { await SaveToDisk().ConfigureAwait(false); var tagLibFile = TagLib.File.Create(TempLocalFilePath); Duration = tagLibFile.Properties.Duration; await ReduceFileBitRate().ConfigureAwait(false); CreateUploadBlobReference(); AnnotateFileWithMetadata(podcastMetadata); await UploadFileToCloud().ConfigureAwait(false); }
private void AnnotateFileWithMetadata(PodcastMetadata podcastMetadata) { var masechtaMetadata = StaticData.Gemaras.First(masechta => masechta.Title.Equals(AudioFileName.Masechta, StringComparison.OrdinalIgnoreCase)); var tagLibFile = TagLib.File.Create(TempLocalFilePath); tagLibFile.Tag.Album = $"{podcastMetadata.Title} - {AudioFileName.Masechta}"; tagLibFile.Tag.AlbumArtists = new[] { podcastMetadata.Author }; tagLibFile.Tag.Track = uint.Parse(AudioFileName.Daf) - 1; tagLibFile.Tag.TrackCount = Convert.ToUInt32(masechtaMetadata.DafimInMasechta); tagLibFile.Tag.Title = $"Masechta {AudioFileName.Masechta}, Daf {AudioFileName.Daf}"; tagLibFile.Tag.Year = Convert.ToUInt32(AudioFileName.RecordedOn.Year); tagLibFile.Tag.Disc = Convert.ToUInt32(Array.FindIndex(StaticData.Gemaras, m => m == masechtaMetadata)); tagLibFile.Tag.DiscCount = Convert.ToUInt32(StaticData.Gemaras.Length); tagLibFile.Tag.Genres = new[] { "Daf Yomi" }; tagLibFile.Tag.Comment = AudioFileName.Subtitle; tagLibFile.Tag.Copyright = $"{AudioFileName.RecordedOn.Year} © {podcastMetadata.Author}"; tagLibFile.Save(); }