private static string GetId3v2TagTitle(TagLib.Id3v2.Frame frame) { if (frame == null || frame.FrameId == null) { return(null); } string tagName = frame.FrameId.ToString(); // TODO: Handle NXXX if (tagName == "TXXX") // Non-native (user-defined) tag. { var regex = new Regex("\\[.*\\]"); var firstMatch = regex.Match(frame.ToString()).Value; //if (firstMatch.Length < 2) // There is no value between the brackets // return null; tagName = firstMatch.Substring(1, firstMatch.Length - 2); // Trim the single pair of brackets surrounding title } bool success = Id3TagMap.TryGetValue(tagName, out string tag); return(success ? tag : tagName); }
private static string GetID3v2TagValue(TagLib.Id3v2.Frame frame) { // TODO: Handle NXXX if (frame.FrameId == "TXXX") // Non-native (user-defined) tag. { var regex = new Regex("\\] .*"); var firstMatch = regex.Match(frame.ToString()).Value; var fieldValue = firstMatch.Substring(2); // Trim the leading bracket & space before value return(fieldValue); } return(frame.ToString()); }