Awesome
AAXClean.Codecs
Converts and filters aac audio from AAXClean.
Now Cross-Platform!
Nuget
Include the AAXClean.Codecs NuGet package to your project.
Usage:
using AAXClean.Codecs
var audible_key = "aa0b0c0d0e0f1a1b1c1d1e1f2a2b2c2d";
var audible_iv = "ce2f3a3b3c3d3e3f4a4b4c4d4e4f5a5b";
aaxcFile.SetDecryptionKey(audible_key, audible_iv);
Convert to Mp3:
await aaxcFile.ConvertToMp3Async(File.Open(@"C:\Decrypted book.mp3", FileMode.OpenOrCreate, FileAccess.ReadWrite));
Note that the output stream must be Readable, Writable and Seekable for the mp3 Xing header to be written. See NAudio.Lame #24
Detect Silence
await aaxcFile.DetectSilenceAsync(-30, TimeSpan.FromSeconds(0.25));
Conversion Usage:
var mp4File = new Mp4File(File.OpenRead(@"C:\Decrypted book.m4b"));
await mp4File.ConvertToMp3Async(File.OpenWrite(@"C:\Decrypted book.mp3"));
Multipart Conversion Example:
Note that the input stream needs to be seekable to call GetChapterInfo()
var chapters = aaxcFile.GetChaptersFromMetadata();
await aaxcFile.ConvertToMultiMp4aAsync(chapters, NewSplit);
private static void NewSplit(NewSplitCallback newSplitCallback)
{
string dir = @"C:\book split\";
string fileName = newSplitCallback.Chapter.Title.Replace(":", "") + ".m4b";
newSplitCallback.OutputFile = File.OpenWrite(Path.Combine(dir, fileName));
}