audiamus / BookLibConnect

A standalone Audible downloader and decrypter
GNU General Public License v3.0
701 stars 40 forks source link

Fehler beim AAX Export #34

Closed DaBear78 closed 2 years ago

DaBear78 commented 2 years ago

Mahlzeit ^^

Ich habe gerade erst dein Tool entdeckt und direkt auch mal ausprobiert. Klappt soweit ganz gut, nur mit einer Datei hatte ich Probleme. Bei "Die Märchen von Beedle dem Barden" hat er zwar runtergeladen und entschlüsselt, aber beim Export zu AAX gab es eine Fehlermeldung:

System.IO.IOException: WinFileIO:ReadBytes - Error occurred reading a file. - Das Handle ist ungültig. at core.audiamus.aux.w32.WinFileIO.ReadBlocks(Int32 BytesToRead) at core.audiamus.util.FileEx.Copy(String sourceFileName, String destFileName, Boolean overwrite, IFileCopyCallout callout, Action'1 report, Func'1 cancel) at core.audiamus.util.FileEx.Copy(String sourceFileName, String destFileName, Boolean overwrite, Action'1 report, Func'1 cancel) at core.audiamus.connect.AaxExporter.copyFile(IBookCommon book, SimpleConversionContext context) at core.audiamus.connect.AaxExporter.exportSinglePart(IBookCommon book, SimpleConversionContext context, Action'1 onNewStateCallback, Boolean skipSeries) at core.audiamus.connect.AaxExporter.Export(Book book, SimpleConversionContext context, Action'1 onNewStateCallback) at core.audiamus.connect.app.gui.MainForm.convertAction(Book book, ConversionContext context, Action'1 onNewStateCallback) at core.audiamus.connect.DownloadDecryptJob'1.<>c__DisplayClass19_1.b6() at System.Threading.Tasks.Task.InnerInvoke() at System.Threading.Tasks.Task.<>c.<.cctor>b277_0(Object obj) at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) --- End of stack trace from previous location --- at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread) --- End of stack trace from previous location --- at core.audiamus.connect.DownloadDecryptJob'1.DownloadDecryptAndConvertAsync(IEnumerable'1 selectedConversions, IProgress'1 progress, T context, ConvertDelegate'1 convertAction) at core.audiamus.connect.app.gui.MainForm.btnConvert_Click(Object sender, EventArgs e) at System.Threading.Tasks.Task.<>c.b__140_0(Object state)

Die Datei wird zwar im Export-Ordner erstellt, hat aber 0 Byte. Was mir aufgefallen ist: Bei dieser Datei (und wirklich nur bei dieser) steht da nicht Märchen im Dateinamen, sondern Ma¨rchen. Bei allen anderen getesteten Dateien steht da auch wirklich ein ä an den entsprechenden Stellen.

Brauchst du noch mehr Infos oder schon eine Idee was da schief läuft? ^^

Gruß, DaBear78

audiamus commented 2 years ago

Sähe dann nach einem UTF-8-Problem aus. Kannst Du die Log-Datei hier hochladen, als zip?

DaBear78 commented 2 years ago

Natürlich ;) log.zip

audiamus commented 2 years ago

Danke sehr. Ich werde es untersuchen.

Mögliche Abhilfe im Moment: Die .m4b-Datei von Hand in das Exportverzeichnis kopieren und einfach in .aax umbenennen. Es fehlen zwar vermutlich die .json-Metadaten, aber AAX Audio Converter sollte auch ohne diese laufen.

DaBear78 commented 2 years ago

Hab kopiert und umbenannt: Funktioniert. Danke ;)

audiamus commented 2 years ago

Mit deutschen Umlauten im Dateinamen habe ich es nicht reproduzieren können, weder auf einem deutschen noch einem englischen Windows-System. Aber mit einem kyrillischen Dateinamen dann doch. War in der Tat ein Unicode-Problem bei Aufruf der für diese Kopieraktion zuständigen Win32-Schnittstelle. Sollte in der nächsten Version dann behoben sein.

audiamus commented 2 years ago

Auf Unicode geändert und Fehlererkennung verbessert: Version 0.6.