All Projects → JeevanJames → Id3

JeevanJames / Id3

Licence: Apache-2.0 License
Library to read, modify and write ID3 & Lyrics3 tags in MP3 files. Provides an extensible framework for retrieving ID3 information from online services.

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to Id3

audio-tag-analyzer
Extracts metadata music metadata found in audio files
Stars: ✭ 18 (-33.33%)
Mutual labels:  tags, mp3, id3, tag
SSCTaglistView
Customizable iOS tag list view, in Swift.
Stars: ✭ 54 (+100%)
Mutual labels:  tags, tagging, tag
tag-picker
Better tags input interaction with JavaScript.
Stars: ✭ 27 (+0%)
Mutual labels:  tags, tagging, tag
dart-tags
ID3 Tag parser written on the pure dart language.
Stars: ✭ 35 (+29.63%)
Mutual labels:  mp3, id3, tag
Music Metadata
Stream and file based music metadata parser for node. Supporting a wide range of audio and tag formats.
Stars: ✭ 455 (+1585.19%)
Mutual labels:  tags, mp3, tag
React Input Tags
React component for tagging inputs.
Stars: ✭ 10 (-62.96%)
Mutual labels:  tags, tagging, tag
Music Metadata Browser
Browser version of music-metadata parser Supporting a wide range of audio and tag formats.
Stars: ✭ 105 (+288.89%)
Mutual labels:  tags, mp3, tag
autotagger
Tag .mp3 and .m4a audio files from iTunes data automatically.
Stars: ✭ 25 (-7.41%)
Mutual labels:  tagging, id3
TonUINO
Alternative TonUINO Firmware
Stars: ✭ 112 (+314.81%)
Mutual labels:  mp3, tag
audio-metadata
A library for reading and, in the future, writing audio metadata. https://audio-metadata.readthedocs.io/
Stars: ✭ 41 (+51.85%)
Mutual labels:  mp3, id3
HexTags
Customize tags & chat colors!
Stars: ✭ 53 (+96.3%)
Mutual labels:  tags, tag
tagify
Tagify produces a set of tags from a given source. Source can be either an HTML page, a Markdown document or a plain text. Supports English, Russian, Chinese, Hindi, Spanish, Arabic, Japanese, German, Hebrew, French and Korean languages.
Stars: ✭ 24 (-11.11%)
Mutual labels:  tags, tagging
IdSharp
.NET ID3 Tagging Library
Stars: ✭ 50 (+85.19%)
Mutual labels:  tagging, id3
TagView
The tag selection library with edit text and list
Stars: ✭ 46 (+70.37%)
Mutual labels:  tags, tag
nipper
🌶 💽 Nipper - Youtube playlist (& video) ripper
Stars: ✭ 23 (-14.81%)
Mutual labels:  tags, mp3
mongoid taggable on
Taggable on custom fields for Mongoid
Stars: ✭ 16 (-40.74%)
Mutual labels:  tagging, tag
material-chip-view
Material Chip view. Can be used as tags for categories, contacts or creating text clouds
Stars: ✭ 1,300 (+4714.81%)
Mutual labels:  tags, tag
additional tags
Redmine Plugin for adding tags functionality to issues and wiki pages.
Stars: ✭ 25 (-7.41%)
Mutual labels:  tags, tagging
mp3tag.js
MP3 tagging library written in pure JavaScript for Node.js and browsers
Stars: ✭ 39 (+44.44%)
Mutual labels:  mp3, id3
meta-audio
A PHP library to read and write metadata tags to audio files (MP3, ID3, APE, etc)
Stars: ✭ 32 (+18.52%)
Mutual labels:  mp3, tagging

ID3.NET

Build status Test status codecov NuGet Version NuGet Downloads

ID3.NET is a set of libraries for reading, modifying and writing ID3 and Lyrics3 tags in MP3 audio files. The core library supports netstandard20 and the full .NET 4.x frameworks.

ID3.NET also provides an extensible metadata discovery framework that can discover specific ID3 frame data (like album art, lyrics, etc.) from various online services such as Amazon, ChartLyrics.com, Discogs and more.

ID3 Support

Currently, ID3.NET supports the two most popular ID3 versions, v1.x and v2.3.

The v1.x support applies to both v1.0 and v1.1, as the difference between the two versions is very small.

While ID3.NET can read v2.3 tags, it does not recognize all v2.3 frames yet. Unrecognized frames are stored in a special UnknownFrame class and do not raise exceptions. Most of the commonly-used frames such as title, album, artist, etc. are implemented and we are actively working on completing the remaining frame support. This will be done in the ID3.NET v0.x version range, culminating in a v1.0 release with full ID3 v2.3 frame support. You can track the progress of frame implementation and see the list of currently supported frames here.

We will start on ID3 v2.2 and v2.4 tag support as soon as the v2.3 codebase is done. Please see the project roadmap for more details.

Examples

Reading ID3 tags

Reads all .mp3 files in a directory and outputs their title, artist and album details to the console.

string[] musicFiles = Directory.GetFiles(@"C:\Music", "*.mp3");
foreach (string musicFile in musicFiles)
{
    using (var mp3 = new Mp3(musicFile))
    {
        Id3Tag tag = mp3.GetTag(Id3TagFamily.Version2X);
        Console.WriteLine("Title: {0}", tag.Title);
        Console.WriteLine("Artist: {0}", tag.Artists);
        Console.WriteLine("Album: {0}", tag.Album);
    }
}

Method to enumerate theough the specified MP3 files and return those from the 1980's.

IEnumerable<string> GetMusicFrom80s(IEnumerable<string> mp3FilePaths)
{
    foreach (var mp3FilePath in mp3FilePaths)
    {
        using (var mp3 = new Mp3(mp3FilePath))
        {
            Id3Tag tag = mp3.GetTag(Id3TagFamily.Version2X);
            if (!tag.Year.HasValue)
                continue;
            if (tag.Year >= 1980 && tag.Year < 1990)
                yield return mp3FilePath;
        }
    }
}

Writing ID3 tags

Method to write a generic copyright message to the ID3 tag, if one does not exist.

void SetCopyright(string mp3FilePath)
{
    using (var mp3 = new Mp3(mp3FilePath, Mp3Permissions.ReadWrite))
    {
        Id3Tag tag = mp3.GetTag(Id3TagFamily.Version2X);
        if (!tag.Copyright.IsAssigned)
        {
            int year = tag.Year.GetValueOrDefault(2000);
            string artists = tag.Artists.ToString();
            tag.Copyright = $"{year} {artists}";
            mp3.WriteTag(tag, WriteConflictAction.Replace);
        }
    }
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].