Coder Social home page Coder Social logo

Comments (41)

alurio avatar alurio commented on June 12, 2024

ps die M48 zu Todesreigen funktioniert, da ist die Kapitelstruktur Korrekt in der Datei abgelegt. Das nur als Zusatzinfo.

Grüße

from booklibconnect.

audiamus avatar audiamus commented on June 12, 2024

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.

alurio avatar alurio commented on June 12, 2024

from booklibconnect.

audiamus avatar audiamus commented on June 12, 2024

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.

alurio avatar alurio commented on June 12, 2024

from booklibconnect.

audiamus avatar audiamus commented on June 12, 2024

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.

alurio avatar alurio commented on June 12, 2024

from booklibconnect.

audiamus avatar audiamus commented on June 12, 2024

Das müsste dieses sein:
C:\Users\<USER>\AppData\Local\Packages\AudibleInc.AudibleforWindowsPhone_<XXXXXX>\LocalState\filescache

from booklibconnect.

alurio avatar alurio commented on June 12, 2024

from booklibconnect.

audiamus avatar audiamus commented on June 12, 2024

Ich sehe leider bisher noch keinerlei Anhang, weder von vorhin noch jetzt.

from booklibconnect.

alurio avatar alurio commented on June 12, 2024

from booklibconnect.

audiamus avatar audiamus commented on June 12, 2024

Ich vermute, bei Mail schluckt GitHub die Anhänge. Besser direkt in GitHub eingeben.

from booklibconnect.

alurio avatar alurio commented on June 12, 2024

Hallo

So jetzt nochmal via Github Webseite. Ich hoffe beides kommt durch.

  1. eine Zip mit den Daten aus Book Lib Connect

Kapiteldaten aus Tests mit Booklibconnect .zip

  1. 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.

alurio avatar alurio commented on June 12, 2024

from booklibconnect.

audiamus avatar audiamus commented on June 12, 2024

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.

alurio avatar alurio commented on June 12, 2024

from booklibconnect.

audiamus avatar audiamus commented on June 12, 2024

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.

audiamus avatar audiamus commented on June 12, 2024

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.

alurio avatar alurio commented on June 12, 2024

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.

audiamus avatar audiamus commented on June 12, 2024

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.

alurio avatar alurio commented on June 12, 2024

Okay suche ich dir raus zippe die Datei und dann kannst du schauen

Grüße

Henning

from booklibconnect.

alurio avatar alurio commented on June 12, 2024

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.

audiamus avatar audiamus commented on June 12, 2024

Danke Dir, perfekt.

Der Aufbau der hierarchischen Struktur ist damit klar. Mal schauen wie ich damit umgehe.

from booklibconnect.

alurio avatar alurio commented on June 12, 2024

from booklibconnect.

audiamus avatar audiamus commented on June 12, 2024

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.

alurio avatar alurio commented on June 12, 2024

from booklibconnect.

audiamus avatar audiamus commented on June 12, 2024

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:

chapters

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.

alurio avatar alurio commented on June 12, 2024

from booklibconnect.

alurio avatar alurio commented on June 12, 2024

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.

alurio avatar alurio commented on June 12, 2024

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.

alurio avatar alurio commented on June 12, 2024

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.

audiamus avatar audiamus commented on June 12, 2024

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.

alurio avatar alurio commented on June 12, 2024

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.

audiamus avatar audiamus commented on June 12, 2024

Der Verdacht mit FFmpeg bestätigt sich bei mir.

Mit dem Export aus Book Lib Connect:

  1. Lass es einmal mit AAX Audio Converter normal durchlaufen, Logstufe 4.
  2. AAX Audio Converter neu starten, wieder mit Log 4. Buch aber noch nicht laden.
  3. 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).
  4. Jetzt erst Buch laden und erneut durchlaufen lassen.
  5. Wenn das Ergebnis nun vollständig ist, sollte das Problem als behoben gelten. Wenn nicht, mir bitte beide Log-Dateien schicken.

from booklibconnect.

alurio avatar alurio commented on June 12, 2024

Hallo Audiamus,

  1. 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.

  2. 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.

audiamus avatar audiamus commented on June 12, 2024

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?

  1. Lade Dir MediaInfo herunter, wenn Du es nicht eh schon auf Deinem Rechner installiert hast.
  2. Ändere die Download-Einstellung in Book Lib Connect: Keep encrypted files = yes.
  3. Lade das 78-Kapitel-Problembuch mit Book Lib Connect erneut herunter.
  4. Benenne die .aaxc-Datei um: <Problembuch>_<ASIN>.aaxc in <Problembuch>_<ASIN.aaxc.mp4. (Auch .aaxc ist eine .mp4-Datei.)
  5. Ö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.

alurio avatar alurio commented on June 12, 2024

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.

audiamus avatar audiamus commented on June 12, 2024

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.

audiamus avatar audiamus commented on June 12, 2024

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.

audiamus avatar audiamus commented on June 12, 2024

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.

alurio avatar alurio commented on June 12, 2024

from booklibconnect.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.