Comments (41)
ps die M48 zu Todesreigen funktioniert, da ist die Kapitelstruktur Korrekt in der Datei abgelegt. Das nur als Zusatzinfo.
Grüße
from booklibconnect.
In dem Export-Verzeichnis werden für jedes Buch neben dem Pseudo-AAX auch Metadaten als json abgelegt. Die Assoziation ist wieder über die ASIN, wie AAX Audio Converter das erwartet. (Dieser Umweg wird später, nach der Integration, nicht mehr nötig sein.) Die Kapitel stehen bekanntlich in content_metadata_<ASIN>.json
. Wie alle JSON sind auch diese verdichtet. Aber mit Neuformatierung (siehe Hinweis zu Visual Studio Code unter #1) werden sie lesbar. Wie viele Kapitel stehen da drin?
Wie kann ich dir die metadaten beider Titel zur Analyse schicken ?
Hochladen müsste gehen, wenn als ZIP verpackt. Ist eh besser für die Lesbarkeit im Thread.
from booklibconnect.
from booklibconnect.
Visual Studio hab ich nicht auf dem Rechner..
Visual Studio und Visual Studo Code sind zwei sehr verschiedene Produkte. Visual Studio ist eine umfangreiche Integrierte Entwicklungsumgebung, während Visual Studio Code im Grundgerüst "nur" ein einfacher Text-Editor ist, mit allerdings sehr flexiblen Erweiterungsmöglichkeiten.
from booklibconnect.
from booklibconnect.
Wenn Du mit die content_meta.json zu dem Problem-Buch schickst, dann am besten auch die originale aus der Audible Win10-App. Dann kann ich vergleichen.
from booklibconnect.
from booklibconnect.
Das müsste dieses sein:
C:\Users\<USER>\AppData\Local\Packages\AudibleInc.AudibleforWindowsPhone_<XXXXXX>\LocalState\filescache
from booklibconnect.
from booklibconnect.
Ich sehe leider bisher noch keinerlei Anhang, weder von vorhin noch jetzt.
from booklibconnect.
from booklibconnect.
Ich vermute, bei Mail schluckt GitHub die Anhänge. Besser direkt in GitHub eingeben.
from booklibconnect.
Hallo
So jetzt nochmal via Github Webseite. Ich hoffe beides kommt durch.
- eine Zip mit den Daten aus Book Lib Connect
Kapiteldaten aus Tests mit Booklibconnect .zip
- Exemplarisch zum Vergleich die Metadaten zu einem der Problembücher aus der Win 10 App als Zip
content_metadata_B0748N58H1.zip
Grüße
from booklibconnect.
from booklibconnect.
Ja, sind jetzt vorhanden, danke.
Und der Unterschied ist auch sofort zu sehen. Das Problembuch hat logische Teile. Und nur die werden im Moment gesehen und ausgegeben. Vermutung: In diesem Fall unterschieden sich das JSON, das der Audible-Server zurück gibt, von dem, was die Win10-App ausspuckt. Ich glaube, wir hatten das Thema mit den logischen Teilen schon mal im Hifi-Forum. Die Win10-App zeigte dann eine Kapitel-Hierarchie mit Einrückungen.
Um es zu analysieren, brauche ich zunächst die Original-Antwort vom Server. Die wird aber im Moment noch nicht ausgegeben, auch nicht unter Log-Level 4. Erster Schritt also: ich muss eine Version basteln, die uns die Server-Antwort in eine tmp-Datei schreibt.
from booklibconnect.
from booklibconnect.
OK, Neue Version 0.1.2 verfügbar.
Dateien stehen im tmp-Verzeichnis: LicenseResponse_<asin>_<date_time>.json
Darin sind die Kapitel, wie sie vom Server kommen.
Enthalten darin ist auch der Lizenzschlüssel für das Buch, daher der Name. Der ist aber wiederum selbst verschlüsselt. Entschlüsseln kann das nur die App auf Deinem Rechner, niemand Dritter, auch ich nicht.
from booklibconnect.
Um damit jetzt etwas anfangen zu können:
Du musst das Problembuch zunächst sowohl aus dem Download- als auch aus dem Export-Verzeichnis löschen, Denn in der Datenbank steht jetzt, das Buch sei heruntergeladen und exportiert. Erst wenn Book Lib Connect es dann aber nicht findet, lässt es sich erneut herunterladen. Dabei wird dann die besagte neue Datei geschrieben..
from booklibconnect.
Okay! Habe upgedatet Download und Exportverzeichnis sind leer. Soll ich das Buch nochmal runterladen und dir dann Rückmelden ob alles funktioniert oder soll ich dir daten aus dem TMp verzeichnis schicken ? Wenn ja wo wird das angelegt ?
Gruß
Henning
from booklibconnect.
Das Temp-Verzeichnis findest Du hier:
C:\Users\<User>\AppData\Local\audiamus\BookLibConnect\tmp
Ja, Du müsstest das Buch nochmal herunterladen. Verändern wird sich noch nichts, ich muss ja erst mal die Antwort vom Server untersuchen, deshalb die dafür wichtige LicenseRespnse-Datei.
from booklibconnect.
Okay suche ich dir raus zippe die Datei und dann kannst du schauen
Grüße
Henning
from booklibconnect.
Hallo !
So da sind die erwünschten Daten von einem exemplarischen problembuch mit logischer eingerückter Struktur.
LicenseResponse_B0748N58H1-2022_01_21-21_33_16.zip
ich hoffe du kannst was damit anfangen und für kommende Versionen die richtigen Schlüsse ziehen um das aktuelle Problem zu lösen.
Viele Grüße
from booklibconnect.
Danke Dir, perfekt.
Der Aufbau der hierarchischen Struktur ist damit klar. Mal schauen wie ich damit umgehe.
from booklibconnect.
from booklibconnect.
Das ist letztlich eine saubere Baumstruktur. Ich könnte sie von vorne herein flachklopfen oder das eben erst beim Export machen, bzw. später integriert in AAX Audio Converter unmittelbar vor der Kapitelerfassung. Der Reiz ist natürlich, den Baum zu erhalten und so für alle mögliche Nutzung gewappnet zu sein. Dass mehr als zwei Ebenen vorkommen, ist zwar unwahrscheinlich, aber denkbar. Spräche daher für einen allgemeinen Ansatz. Bedeutet eine Erweiterung des relationalen Datenmodells mit einem Standard-Design für solche Strukturen und danach etliche Tests. Wird also ein wenig dauern
from booklibconnect.
from booklibconnect.
Ich denke, ich hab's. Neue Version 0.2
Das relationale Datenmodell ist erweitert. Dabei hab ich das Standard-Pattern für Baumstrukturen benutzt, einen selbst-reflexiven Datentyp für Chapter
, d.h. ein Chapter kann einen Vater haben, der ebenfalls ein Chapter ist. (Relationale Datenmodelle scheinen auf den ersten Blick immer sehr umständlich, weil von "unten" nach "oben" verwiesen wird, ist aber das Grundprinzip.) Dieses Pattern bot sich schon deswegen an, weil es in Entity Framework Core einfach zu modellieren ist, dem Object/Relational-Mapper, den man in C# üblicherweise einsetzt. (Kaum jemand schreibt heutzutage noch SQL-Code selbst, das lässt man Frameworks machen.)
Haken war jetzt allerdings, dass ein Chapter nun theoretisch zwei Väter haben kann, ChapterInfo
wie bisher, oder eben neu Chapter
selbst. Und damit ist erst mal Cascade Delete deaktiviert, der Mechanismus, mit dem man in relationalen Datenbanken sehr einfach von "oben" nach "unten" löschen kann, also umgekehrt, wie das Modell selbst aufgebaut ist. Lies sich aber schließlich durch explizite Vorgabe lösen, nachdem man erst mal über SQLite Error 19 verzweifelt 😒.
Im Ergebnis also wird eine hierarchische Kapitelstruktur nun in die lokale Datenbank komplett übernommen:
Erst beim Export wird sie flachgeklopft - und damit müssten nun zur Audible Win10-App äquivalente Kapiteldaten herauskommen:
{
"content_metadata": {
"chapter_info": {
"brandIntroDurationMs": 4180,
"brandOutroDurationMs": 2694,
"chapters": [
{
"length_ms": 22180,
"start_offset_ms": 0,
"start_offset_sec": 0,
"title": "Vorspann",
"chapters": null
},
{
"length_ms": 808073,
"start_offset_ms": 22180,
"start_offset_sec": 22,
"title": "Prolog",
"chapters": null
},
{
"length_ms": 3000,
"start_offset_ms": 830253,
"start_offset_sec": 830,
"title": "1. Teil – S U I Z I D –",
"chapters": null
},
{
"length_ms": 522909,
"start_offset_ms": 833253,
"start_offset_sec": 833,
"title": "1. Kapitel",
"chapters": null
},
{
"length_ms": 637945,
"start_offset_ms": 1356162,
"start_offset_sec": 1356,
"title": "2. Kapitel",
"chapters": null
},
{
"length_ms": 525886,
"start_offset_ms": 1994107,
"start_offset_sec": 1994,
"title": "3. Kapitel",
"chapters": null
},
{
"length_ms": 1312019,
"start_offset_ms": 2519993,
"start_offset_sec": 2519,
"title": "4. Kapitel",
"chapters": null
},
Insgesamt war der tatsächliche Mehraufwand nachher recht gering, wenn man erst mal herausgefunden hatte, wie eine sinnvolle Lösung auszusehen hatte.
from booklibconnect.
from booklibconnect.
Hey Audiamus ,
So ganz funktioniert die Sache leider immer noch nicht, es gibt aber einen Teilerfolg.
Ich habe die neue Version anhand des viel zitierten Problembuches Todesreigen von Andres Gruber getestet. Bei mir wird die Baumstruktur jetzt zwar grundsätzlich erkannt, AAX Audioconverter liest aber nicht alle Kapitel aus, sondern hört zu früh auf. Nach 66 Kapiteln ist mit der Transkodierung in MP3 Sense, Das Buch hat aber leider 78 Kapitel. 12 fehlen einfach.
Die M4B im Downloadordner ist hingegen komplett .
Um dir die Analyse zu ermöglichen schicke ich dir nochmal Metadaten und License key.
Metadata plus License Key Todesreigen 23.1. 22.zip
Wenn ich sonst noch was machen kann um dich zu unterstützen sag bescheid.
Viele Grüße
Henning
from booklibconnect.
Hallo Audiamus,
Ich hab nochmal rum probiert und festgestellt, das bei einem anderen Buch ( Mockingjay von Suzanne Collins) alles korrekt abgebildet wird, obwohl es auch hier einen Baum gibt Nämlich 31 Kapitel unterteilt in drei Teile die zwischendurch auch in kleinen Tracks angesagt werden.
Stellt sich natürlich die Frage, warum das hier klappt, bei Todesreigen aber vor Ende des Buches abgebrochen wird.
Ich sende dir auch hier nochmal Metadaten und License Key zum Vergleich.
(https://github.com/audiamus/BookLibConnect/files/7921700/Metadaten.und.license.key.Mockingjay.zip)
Vielleicht findest du ja das Problem und kannst es mit der nächsten Version lösen.
Grüße
Henning
from booklibconnect.
Hallo Audiamus,
Hier noch ein weiteres Beispiel für ein Buch, dessen Umwandlung von AAX Audioconverter basierend auf der pseudo AAX vorzeitig beendet wird. Assad or wie Burn the Country. Eigentlich besteht das Buch aus 29 Kapiteln AAX Audiokonverter hört
beim Durchlauf mit der von Audiolib erstellten pseudo AAX nach 19 kapiteln auf. Das Buch hat im Gegensatz zu Todesreigen
von Andreas Gruber keine eingerückte Baumstruktur, sondern einfach nur 29 Kapitel mit Namen.
Auch hier nochmal ein Paket Metadaten.
content_metadata Assad or we burn the country .zip
Wenn gewünscht lade ich das Buch auch nochmal mit der Win 10 app herunter und schicke die Metadaten falls du vergleichen musst.
So jetzt lass ich dich auch erstmal in Ruhe. Ich hoffe ich nerve nicht, sondern als Entwickler bist du an Feedback interessiert ob alles funktioniert.
Viele Grüße und einen guten Start in die Woche wünscht
Henning
from booklibconnect.
Erste Analyse: Die content_meta.json
aus der Win10-App und Book Lib Connect sind jetzt mehr oder minder identisch.
Daher ein anderer Verdacht, der sich hier auftut: Die Größe der Audiodatei. Book Lib Connect lädt immer mit der bestmöglichen Audioqualität herunter. Und hier ist nun die Audio-Datei aus Book Lib Connect doppelt so groß wie die aus der Win10-App. Das könnte auf ein Verarbeitungsproblem bei AAX Audio Converter bzw FFmpeg hinweisen. Da hatte sich in der Vergangenheit herausgestellt, dass die 32bit-Version von FFmpeg bei MP3-Konvertierung an Speichergrenzen stößt. Allerdings war die 32bit-Variante deutlich schneller als die 64bit Variante, weswegen AAX Audio Converter vorzugsweise FFmpeg 32bit benutzt. Die Log-Datei von AAX Audio Converter könnte hier Aufschluss bieten, was passiert, mit -Log=4, damit der FFmpeg-Output mit erscheint.
from booklibconnect.
Okay Ich lade Todereigen nochmal via Book Lib Connect herunter und lasse es dann mit Log 4 durch AAX Audioconverter laufen. Die entsprechnde Log datei bekommst du dann.
from booklibconnect.
Der Verdacht mit FFmpeg bestätigt sich bei mir.
Mit dem Export aus Book Lib Connect:
- Lass es einmal mit AAX Audio Converter normal durchlaufen, Logstufe 4.
- AAX Audio Converter neu starten, wieder mit Log 4. Buch aber noch nicht laden.
- FFmpeg austauschen.
Aktuelle Version hier (64bit):
https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-essentials.zip
Auspacken und irgendwohin kopieren.
In AAX Audio Converter in der Grundeinstellungen, 1. Reiter, den Pfad zu FFmpeg mit Bearbeiten ändern, auf das ausgepackte FFmpeg.exe zeigen (im dortigen Unterverzeichnis bin). - Jetzt erst Buch laden und erneut durchlaufen lassen.
- Wenn das Ergebnis nun vollständig ist, sollte das Problem als behoben gelten. Wenn nicht, mir bitte beide Log-Dateien schicken.
from booklibconnect.
Hallo Audiamus,
-
Der Austausch der FFMPG Version hat die Lösung gebracht. Das "Referenz Buch" Todesreigen ist nun vollständig. Wäre also vielleicht sinvoll den AAX Audioconverter Download mit der neuen ffmpeg Version auszustatten.
-
Das einzige was mich jetzt noch leicht irritiert, ist das der AAX Audiokonverter beim Einlesen der Pseudo AAX als Bitrate 127 Kbits, statt der üblichen 128 anzeigt. War heute Nacht bei Mockingjay von Susan Collins auch schon so. Das scheint im Ergebnis aber nichts zu machen, die fertigen MP3s haben laut Mediainfo brav 128 Kbit bei 44100 Hertz in Joint Stereo. Also anscheinend ein folgenloser Anzeigefehler ? Aber der Vollständigkeit halber wollte ich dennoch davon berichten.
Vielen Dank für den super Support und die Entwicklung der beiden sehr nützlichen Tools.
Gruß
Henning
from booklibconnect.
Wunderbar.
Möglicherweise liegt die eigentliche Ursache aber doch woanders. Es könnte sein, dass die in die heruntergeladene Audiodatei eingebetteten Metadaten beim Dechiffrieren durcheinander geraten. Die neuste FFmpeg-Version kann damit umgehen, ältere nicht.
Es läge dann an AAXClean, der Bibliothek, die ich hier verwende. Könntest Du dazu noch einen Versuch machen?
- Lade Dir MediaInfo herunter, wenn Du es nicht eh schon auf Deinem Rechner installiert hast.
- Ändere die Download-Einstellung in Book Lib Connect: Keep encrypted files = yes.
- Lade das 78-Kapitel-Problembuch mit Book Lib Connect erneut herunter.
- Benenne die .aaxc-Datei um:
<Problembuch>_<ASIN>.aaxc
in<Problembuch>_<ASIN.aaxc.mp4
. (Auch .aaxc ist eine .mp4-Datei.) - Öffne
<Problembuch>_<ASIN.aaxc.mp4
und<Problembuch>_<ASIN.mp4b
jeweils mit MediaInfo in der Baum/Tree-Ansicht. Exportiere für beide die MediaInfo-Anzeige als Textdatei (Datei | Export | Text) und schicke sie mir. Damit kann ich mich dann an den Autor von AAXClean wenden.
Edit:
Das einzige was mich jetzt noch leicht irritiert, ist das der AAX Audiokonverter beim Einlesen der Pseudo AAX als Bitrate 127 Kbits, statt der üblichen 128 anzeigt. ... Das scheint im Ergebnis aber nichts zu machen, die fertigen MP3s haben laut Mediainfo brav 128 Kbit bei 44100 Hertz in Joint Stereo.
Ist harmlos. AAX Audio Converter holt sich die Bitrate aus der Analyse von FFmpeg. Und offensichtlich hast Du MediaInfo schon installiert 😃.
from booklibconnect.
Ja in der Tat mediainfo läuft hier schon lange.
Hier die beiden Medianinfo Datein von der AAXC bzw M4B des Problembuch zur Weiterleitung an dne Entwickler von AAXC Clean.
Mediainfo Todesreigen AAXC plus m4b .zip
Viele Grüße
from booklibconnect.
Sehr schön, danke vielmals. In der m4b-Datei beginnen die Kapitel mit "56. Kapitel" statt mit "Vorspann". Das kann ja offensichtlich nicht stimmen. Ich leite es weiter.
from booklibconnect.
Vielleicht gibt es auch schon eine Lösung. Sieht nach einem Integer-Überlauf aus, und ein weiterer Entwickler hat vor einigen Tagen einen Pull-Request dazu eingestellt. Ich probiere das mal aus. Die fertige AAXClean-Bibliothek liegt eigentlich auf NuGet, dort wo fast alles an C#-Bibliotheken zu finden ist, aber man kann sie auch selbst bauen, und ich könnte den Patch bei mir einspielen.
Issue #3 ist ja eigentlich für den ursprünglichen Fehler mit hierarchischer Kapitelstruktur erledigt. Deswegen mache ich hier erst mal zu.
from booklibconnect.
Hat mir ja dann doch keine Ruhe gelassen. In der Tat, der Patch würde funktionieren. Da wir hier aber erst mal einen Bypass gefunden haben, lasse ich es ein paar Tage ruhen. Ggf. nehme ich dann meine Version von AAXClean einschl. Patch, statt der von NuGet.
Der Fehler in AAXClean tritt dann auf, wenn die Audio-Datei sehr viele Frames hat, also entweder bei einem sehr langen Buch oder einem Buch in hoher Audioqualität. Dann gibt es besagten Integer-Überlauf, was dazu führt, dass die letzten Kapitel des Buchs an den Anfang verschoben werden und nach Kapitelzeiten das Buch weit hinten beginnt und im Nirwana endet, an den MediaInfo-Daten schön zu sehen.
Dank noch mal für die Mithilfe. 👍
from booklibconnect.
from booklibconnect.
Related Issues (20)
- BookLibConnect .aax file doesn't support SanDisk MP3 player Channel Mode HOT 4
- Login at Amazon not possible HOT 2
- Downloads not starting HOT 2
- Some books downloaded without cover data in origin aax file now HOT 6
- Cant visualize any download HOT 5
- How to set up amazon.com.br account? HOT 7
- UNIQUE constraint failed: ChapterInfos.Id HOT 7
- Not Syncing over
- BookLibConnect won't launch HOT 5
- App won't sync my library HOT 6
- I can't sync my US library HOT 2
- no path for amazon HOT 1
- Bibliothek wird nach Anlage von Profil nicht geladen. HOT 3
- keine Tags wenn m4b-Datei zu groß ist? HOT 2
- issue downloading audiobook HOT 4
- Audiobook doesn't appear in downloads list HOT 2
- Can't get URL with Amazon BR HOT 3
- Book Lib Connect not reading book in library HOT 1
- failing to create profile due to audible login failure HOT 4
- Greyed out "Run" button HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from booklibconnect.