Einfacher, alternativer Downloader für in Go geschriebene Legimi-E-Books.
Im Grunde eine Neufassung des vorherigen Downloaders in Lua.
Es ist völlig inoffiziell, ich bin in keiner Weise mit Legimi verbunden.
Notiz
Dies ist noch in Arbeit, es ist jedoch bereits nutzbar.
Weitere Informationen zur Entstehung finden Sie im Hintergrund.
Laden Sie einfach das Archiv aus dem Abschnitt „Releases“ herunter, entpacken Sie es und machen Sie es ausführbar (falls erforderlich): $ chmod +x legimi-go
. Sie können Ihrer PATH
Variablen natürlich ein Installationsverzeichnis hinzufügen, um es von überall ausführen zu können.
Wenn Sie Go installiert haben, können Sie es alternativ mit dem Befehl go install
installieren:
$ go install github.com/tp86/legimi-go@ < version >
kann ein bestimmtes Versions-Tag von Releases oder latest
sein, um Code vom main
abzurufen. Beachten Sie, dass main
möglicherweise unvollendete Funktionen enthält. Ich gebe jedoch mein Bestes, nur funktionierenden Code festzuschreiben.
Um die Nutzung anzuzeigen, rufen Sie Folgendes auf:
$ legimi-go --help
Alle Befehlszeilenschalter sind optional.
--config path
Pfad zur Konfigurationsdatei. Der Standardwert ist "$HOME/.config/legimi-go/config.ini"
. Die Konfigurationsdatei enthält Ihre Anmeldeinformationen und die Kindle-ID, die vom Legimi-Dienst zugewiesen wurden. Es wird bei der ersten Befehlsausführung automatisch erstellt (mit fehlenden Verzeichnissen), sodass Sie es im Allgemeinen nicht manuell ändern müssen. Wenn Sie Ihren Benutzernamen und Ihr Kennwort nicht in einer Datei speichern möchten, können Sie Anmeldeinformationen in der Befehlszeile angeben (siehe Schalter --login
und --password
).
Tipp
Sie können zahlreiche Konfigurationsdateien erstellen, sodass Sie problemlos zwischen mehreren Konten wechseln können.
--login login
Ihr Legimi-Login. Wenn Sie keine Anmeldung über die Befehlszeile vornehmen, wird diese aus der Konfigurationsdatei gelesen. Wenn es auch in der Konfigurationsdatei fehlt, werden Sie während der Befehlsausführung aufgefordert, es anzugeben. Es wird dann in der Konfigurationsdatei gespeichert, sodass Sie es bei zukünftigen Befehlsausführungen nicht wiederholen müssen. Wenn Sie die Anmeldung über die Befehlszeile vornehmen, wird diese nicht in die Konfigurationsdatei geschrieben.
--password password
Ihr Legimi-Passwort. Es gilt die gleiche Logik wie für die Anmeldung. Beachten Sie, dass Login und Passwort in der Konfigurationsdatei als Klartext gespeichert werden.
--debug
Aktivieren Sie den Debugging-Modus. Im Debugging-Modus werden ausgewählte Informationen über ausgetauschte Anfragen und Antworten an stderr ausgegeben. Derzeit sind die wahrscheinlich nützlichsten Informationen in der Sitzungsantwort enthalten.
Notiz
Sie können Schalter mit einem ( -config
) oder zwei Bindestrichen ( --config
) angeben.
Verfügbare Befehle sind:
list
Listen Sie Bücher auf, die sich derzeit in Ihrem Legimi-Regal befinden.
download
Laden Sie Bücher unter Angabe ihrer ID(s) herunter. Die Buch-ID kann durch Auflisten von Büchern ermittelt werden (erster Wert in der Bucheintragszeile).
version
Legimi-Go-Version drucken.
Die Angabe des Befehls ist obligatorisch, es gibt keinen Standardbefehl.
Beim ersten Befehlsaufruf werden Sie aufgefordert, Anmeldeinformationen (falls nicht über Befehlszeilenschalter angegeben, siehe oben) und die Kindle-Seriennummer anzugeben (Einstellungen -> Geräteoptionen -> Geräteinformationen in Kindle). Die Legimi-Kindle-ID wird automatisch abgefragt und für die zukünftige Verwendung in der Konfigurationsdatei gespeichert.
Listen Sie Bücher in Ihrem Regal auf
$ legimi-go list
Wenn Sie das Skript zum ersten Mal ausführen oder eine Konfigurationsdatei übergeben, für die noch keine Anmeldeinformationen vorhanden sind, werden Sie zur Eingabe von Login und Passwort aufgefordert.
Ausgewählte Bücher herunterladen
$ legimi-go download < book-id >
Das heruntergeladene Buch wird in der Datei
im aktuellen Arbeitsverzeichnis gespeichert.
Tipp
Sie können vor dem Herunterladen cd
in das bereitgestellte documents
von Kindle kopieren, um das Kopieren von Dateien zu vermeiden.
Kopieren Sie die Dateien in das documents
Ihres Kindle
Dies ist optional, wenn Sie im documents
Bücher heruntergeladen haben.
Offensichtlich wird nur ein Teil der Funktionalität der offiziellen Legimi-App unterstützt.
Die meisten Fehlerreaktionen werden noch nicht erkannt/behandelt. Dies sollte sich in Zukunft verbessern.
Das Skript ist nicht dazu gedacht, ein Konto zu erstellen oder ein Gerät zu registrieren, das dem Legimi-Dienst unbekannt ist. Sie sollten hierfür die offizielle App verwenden. Die Geräteregistrierung funktioniert, kann jedoch Probleme verursachen.
Wenn Sie wissen möchten, wie viele Buch-Downloads im Abonnementzeitraum noch übrig sind, können Sie den Schalter -debug
verwenden und im Abschnitt Session response
nach Informationen zu downloads left
suchen. Wenn Sie versuchen, mehr Bücher herunterzuladen, als Sie begrenzen, blockiert der Legimi-Dienst Downloads.
Wenn etwas nicht wie erwartet funktioniert, versuchen Sie, den Schalter -debug
zu verwenden, um weitere Informationen zu erhalten.
Auch die offizielle Legimi-App sollte überprüft werden, da sie ein Referenzpunkt ist. Die Verwendung der offiziellen App kann möglicherweise auch Probleme beheben (#3 (Kommentar)).
Die offizielle Legimi-App unterstützt Linux nicht. Ich wollte in der Lage sein, E-Books unter Linux herunterzuladen, ohne zwischen den Betriebssystemen wechseln zu müssen (oder sogar Windows installiert zu haben).
Die erste Version des Downloaders wurde in Lua erstellt. Es funktionierte gut, erwies sich jedoch manchmal als schwierig zu installieren (Abhängigkeiten wurden in unterschiedlichen Pfaden installiert). Es ist außerdem schwer zu warten und verursacht Probleme bei Aktualisierungen des Legimi-Protokolls. Deshalb habe ich beschlossen, das Skript in Go neu zu schreiben. Ich hoffe, dass es einfacher zu installieren, zu verwenden und zu warten ist.
Ich habe die Logik des Herunterladens von Büchern basierend auf dem Datenverkehr extrahiert, der zwischen der offiziellen Legimi-Anwendung und dem Dienst ausgetauscht wird. Daher fehlen sicherlich Teile und Funktionen. Außerdem werden die meisten Fehlerantworten nicht unterstützt. Weitere fehlende Funktionen finden Sie unter Einschränkungen.