TagLib# alternatives and similar packages
Based on the "Media" category.
Alternatively, view TagLib# alternatives based on common mentions on social networks and blogs.
-
CSCore
An advanced audio library, written in C#. Provides tons of features. From playing/recording audio to decoding/encoding audio streams/files to processing audio data in realtime (e.g. applying custom effects during playback, create visualizations,...). The possibilities are nearly unlimited. -
Xabe.FFmpeg
.NET Standard wrapper for FFmpeg. It allows to process media without know how FFmpeg works, and can be used to pass customized arguments to FFmpeg from dotnet core application.
CodeRabbit: AI Code Reviews for Developers

* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of TagLib# or a related project?
README
TagLib
(aka Taglib-sharp) is a .NET platform-independent library (tested on Windows/Linux) for reading and writing metadata in media files, including video, audio, and photo formats. This is a convenient one-stop-shop to present or tag all your media collection, regardless of which format/container these might use. You can read/write the standard or more common tags/properties of a media, or you can also create and retrieve your own custom tags.
It supports the following formats (by file-extensions):
- Video: mkv, ogv, avi, wmv, asf, mp4 (m4p, m4v), mpeg (mpg, mpe, mpv, mpg, m2v)
- Audio: aa, aax, aac, aiff, ape, dsf, flac, m4a, m4b, m4p, mp3, mpc, mpp, ogg, oga, wav, wma, wv, webm
- Images: bmp, gif, jpeg, pbm, pgm, ppm, pnm, pcx, png, tiff, dng, svg
It is API stable, with only API additions (not changes or removals) occuring in the 2.0 series.
Examples
Read/write metadata from a video
var tfile = TagLib.File.Create(@"C:\My video.avi");
string title = tfile.Tag.Title;
TimeSpan duration = tfile.Properties.Duration;
Console.WriteLine("Title: {0}, duration: {1}", title, duration);
// change title in the file
tfile.Tag.Title = "my new title";
tfile.Save();
Read/write metadata from a Audio file
var tfile = TagLib.File.Create(@"C:\My audio.mp3");
string title = tfile.Tag.Title;
TimeSpan duration = tfile.Properties.Duration;
Console.WriteLine("Title: {0}, duration: {1}", title, duration);
// change title in the file
tfile.Tag.Title = "my new title";
tfile.Save();
Read/write metadata from an Image
var tfile = TagLib.File.Create(@"C:\My picture.jpg");
string title = tfile.Tag.Title;
var tag = tfile.Tag as TagLib.Image.CombinedImageTag;
DateTime? snapshot = tag.DateTime;
Console.WriteLine("Title: {0}, snapshot taken on {1}", title, snapshot);
// change title in the file
tfile.Tag.Title = "my new title";
tfile.Save();
Read/write custom tags from a specific format
var tfile = TagLib.File.Create(@"C:\My song.flac");
var custom = (TagLib.Ogg.XiphComment) tfile.GetTag(TagLib.TagTypes.Xiph);
// Read
string [] myfields = custom.GetField("MY_TAG");
Console.WriteLine("First MY_TAG entry: {0}", myfields[0]);
// Write
custom.SetField("MY_TAG", new string[] { "value1", "value2" });
custom.RemoveField("OTHER_FIELD");
rgFile.Save();
Website
TagLib# is available on GitHub: https://github.com/mono/taglib-sharp
- Bugs: Create an issue
- Chat: Join us at Gitter
- Git: Get the source at <git://github.com/mono/taglib-sharp.git>
Installation From NuGet
TagLib# is available on NuGet: https://www.nuget.org/packages/TagLibSharp
Install from package manager:
PM> Install-Package TagLibSharp -Version 2.2.0
Building and Running
Command Line (Linux)
To Build From Git:
git clone https://github.com/mono/taglib-sharp.git
cd taglib-sharp
./autogen.sh && make
To Build From Tarball:
./configure && make
To Test:
make test
Mono Develop (Linux)
You can build from MonoDevelop using taglib-sharp.sln
Visual Studio (Windows):
You can open it in Visual Studio by using taglib-sharp.sln
Running regression by using Nunit 3 Test Adapter:
- Ensure NuGet packages have been restored
- In Visual Studio, go to menu: Tools > Extensions and Updates > Online (In Visual Studio 2019, use Extensions > Manage Extensions)
- Search: Nunit 3 Test Adapter
- Download and install it
- Open from menu: Test > Windows > Test Explorer (In Visual Studio 2019, use Test > Test Explorer)
- You can run your tests from this panel (not using the "Start" button)
- You can debug your tests from this panel:
- Double click on a test. Set some breakpoints in the test in the editor panel.
- right-click on the same test, select "Debug Selected tests".
To test some scenarios and take advantage of the debugger:
- Make the "debug" project the Startup project (Right-click on the project, select: "Set as StartUp Project")
- Just modify the "Program.cs"
- Set some breakpoints and hit the "Start" button
They also use TagLib
Non exhaustive list of projects that use TagLib#:
And you, what do you use TagLib# for ? Reply here
Contributions
TagLib# is free/open source software, released under the LGPL. We welcome contributions! Please try to match our coding style, and include unit tests with any patches. Patches can be submitted by issuing a Pull Request (Git).