LyricsTag

LyricsTag class

Represents Lyrics3 v2.00 metadata. Please find more information at http://id3.org/Lyrics3v2.

public sealed class LyricsTag : CustomPackage

Constructors

Name Description
LyricsTag() Initializes a new instance of the LyricsTag class.

Properties

Name Description
AdditionalInfo { get; set; } Gets or sets the additional information. This value is represented by the INF field.
Album { get; set; } Gets or sets the album name. This value is represented by the EAL field.
Artist { get; set; } Gets or sets the artist name. This value is represented by the EAR field.
Author { get; set; } Gets or sets the author. This value is represented by the AUT field.
Count { get; } Gets the number of metadata properties.
Item { get; } Gets the MetadataProperty with the specified name.
Keys { get; } Gets a collection of the metadata property names.
Lyrics { get; set; } Gets or sets the lyrics. This value is represented by the LYR field.
MetadataType { get; } Gets the metadata type.
PropertyDescriptors { get; } Gets a collection of descriptors that contain information about properties accessible through the GroupDocs.Metadata search engine.
Track { get; set; } Gets or sets the track title. This value is represented by the ETT field.

Methods

Name Description
virtual AddProperties(Func<MetadataProperty, bool>, PropertyValue) Adds known metadata properties satisfying the specified predicate. The operation is recursive so it affects all nested packages as well.
Contains(string) Determines whether the package contains a metadata property with the specified name.
virtual FindProperties(Func<MetadataProperty, bool>) Finds the metadata properties satisfying the specified predicate. The search is recursive so it affects all nested packages as well.
Get(string) Gets the value of the field with the specified id.
GetEnumerator() Returns an enumerator that iterates through the collection.
Remove(string) Removes the field with the specified id.
virtual RemoveProperties(Func<MetadataProperty, bool>) Removes metadata properties satisfying the specified predicate.
virtual Sanitize() Removes writable metadata properties from the package. The operation is recursive so it affects all nested packages as well.
Set(LyricsField) Adds or replaces the specified Lyrics3 field.
virtual SetProperties(Func<MetadataProperty, bool>, PropertyValue) Sets known metadata properties satisfying the specified predicate. The operation is recursive so it affects all nested packages as well. This method is a combination of AddProperties and UpdateProperties. If an existing property satisfies the predicate its value is updated. If there is a known property missing in the package that satisfies the predicate it is added to the package.
ToList() Creates a list from the package.
virtual UpdateProperties(Func<MetadataProperty, bool>, PropertyValue) Updates known metadata properties satisfying the specified predicate. The operation is recursive so it affects all nested packages as well.

Remarks

Lyrics3 v2.00 uses fields to represent information. The data in a field can consist of ASCII characters in the range 01 to 254 according to the standard. As the ASCII character map is only defined from 00 to 128 ISO-8859-1 might be assumed. Numerical fields are 5 or 6 characters long, depending on location, and are padded with zeroes.

Learn more

Examples

This code sample shows how to read the Lyrics tag from an MP3 file.

using (Metadata metadata = new Metadata(Constants.MP3WithLyrics))
{
    var root = metadata.GetRootPackage<MP3RootPackage>();

    if (root.Lyrics3V2 != null)
    {
        Console.WriteLine(root.Lyrics3V2.Lyrics);
        Console.WriteLine(root.Lyrics3V2.Album);
        Console.WriteLine(root.Lyrics3V2.Artist);
        Console.WriteLine(root.Lyrics3V2.Track);

        // ...

        // Alternatively, you can loop through a full list of tag fields
        foreach (var field in root.Lyrics3V2.ToList())
        {
            Console.WriteLine("{0} = {1}", field.ID, field.Data);
        }
    }
}

See Also