Go で書かれた Legimi 電子ブックのシンプルな代替ダウンローダー。
基本的には、以前のダウンローダーを Lua で書き直したものです。
完全に非公式であり、私はLegimiとは一切関係がありません。
注記
まだ開発中ですが、すでに使用可能です。
それがどのように生まれたかについての詳細は、「バックグラウンド」でご覧いただけます。
「リリース」セクションからアーカイブをダウンロードし、解凍して (必要に応じて) 実行可能にします: $ chmod +x legimi-go
。もちろん、インストール ディレクトリをPATH
変数に追加すると、どこからでも実行できるようになります。
あるいは、Go がインストールされている場合は、 go install
コマンドを使用してインストールできます。
$ go install github.com/tp86/legimi-go@ < version >
は、リリースの特定のバージョン タグ、またはmain
ブランチからコードを取得するためのlatest
バージョン タグを指定できます。 main
ブランチには未完成の機能が含まれている可能性があることに注意してください。ただし、動作するコードのみをコミットするように最善を尽くしています。
使用状況を表示するには、次を呼び出します。
$ legimi-go --help
すべてのコマンド ライン スイッチはオプションです。
--config path
構成ファイルへのパス。デフォルト値は"$HOME/.config/legimi-go/config.ini"
です。設定ファイルには、Legimi サービスによって割り当てられた資格情報と Kindle ID が含まれています。最初のコマンド実行時に (ディレクトリが欠落している状態で) 自動的に作成されるため、通常は手動で変更する必要はありません。ログインとパスワードをファイルに保存したくない場合は、コマンド ラインで資格情報を指定できます ( --login
と--password
スイッチを参照)。
ヒント
複数のアカウントを簡単に切り替えることができるように、多数の構成ファイルを作成できます。
--login login
Legimi のログイン。コマンドラインからログインを指定しない場合、設定ファイルからログインが読み取られます。構成ファイルにも欠落している場合は、コマンドの実行時に指定するように求められます。これは構成ファイルに保存されるため、今後のコマンド実行中に繰り返す必要はありません。コマンドラインからログインを指定した場合、設定ファイルには書き込まれません。
--password password
Legimi のパスワード。ログインの場合と同じロジックが適用されます。ログインとパスワードは構成ファイルにプレーンテキストとして保存されることに注意してください。
--debug
デバッグモードを有効にします。デバッグ モードでは、交換された要求と応答に関する選択された情報が標準エラー出力に出力されます。現在、おそらく最も有用な情報はセッション応答に含まれています。
注記
スイッチには 1 つのダッシュ ( -config
) または 2 つのダッシュ ( --config
) を付けることができます。
使用可能なコマンドは次のとおりです。
list
現在 Legimi の本棚にある書籍をリストします。
download
ID を指定して書籍をダウンロードします。書籍 ID は書籍をリストすることで取得できます (書籍エントリ行の最初の値)。
version
Legimi-go バージョンを印刷します。
コマンドの指定は必須であり、デフォルトのコマンドはありません。
最初のコマンド呼び出しでは、資格情報 (コマンド ライン スイッチ経由で指定しない場合は、上記を参照) と Kindle シリアル番号 (Kindle の [設定] -> [デバイス オプション] -> [デバイス情報]) を入力するよう求められます。 Legimi Kindle ID は自動的に照会され、将来の使用に備えて構成ファイルに保存されます。
本棚の本をリストアップする
$ legimi-go list
初めてスクリプトを実行する場合、または資格情報がまだない構成ファイルを渡す場合は、ログインとパスワードの入力を求められます。
選択した書籍をダウンロードする
$ legimi-go download < book-id >
ダウンロードしたブックは、現在の作業ディレクトリの
ファイルに保存されます。
ヒント
ファイルのコピーを避けるために、ダウンロードする前にマウントされた Kindle のdocuments
ディレクトリにcd
することができます。
ファイルを Kindle のdocuments
ディレクトリにコピーします
documents
ディレクトリ内でブックをダウンロードした場合、これはオプションです。
明らかに、公式 Legimi アプリの機能のサブセットのみがサポートされています。
ほとんどのエラー応答はまだ認識/処理されていません。これは将来改善されるはずです。
スクリプトは、アカウントを作成したり、Legimi サービスに未知のデバイスを登録したりすることを目的としたものではありません。これには公式アプリを使用する必要があります。デバイスの登録は機能しますが、問題が発生する可能性があります。
サブスクリプション期間内に書籍のダウンロードがどれだけ残っているかを知りたい場合は、 -debug
スイッチを使用して、 Session response
セクションでdownloads left
情報を探します。制限を超える書籍をダウンロードしようとすると、Legimi サービスはダウンロードをブロックします。
何かが期待どおりに動作しない場合は、 -debug
スイッチを使用して詳細情報を取得してみてください。
公式Legimiアプリも参考になるので要チェックです。公式アプリを使用すると、問題が解決される可能性があります (#3 (コメント))。
Legimi 公式アプリは Linux をサポートしていません。 OS を切り替える必要なく (または Windows をインストールしていなくても) Linux から電子書籍をダウンロードできるようにしたいと考えていました。
ダウンローダーの最初のバージョンは Lua で作成されました。正常に動作しましたが、インストールが難しいことが判明しました (依存関係が別のパスにインストールされる)。また、保守が難しく、Legimi プロトコルのアップデートで問題が発生します。そこで、スクリプトをGoで書き直すことにしました。インストール、使用、メンテナンスがより簡単になることを願っています。
Legimi 公式アプリとサービス間でやり取りされるトラフィックに基づいて、書籍をダウンロードするロジックを抽出しました。そのため、不足している部分や機能が確かにあります。また、ほとんどのエラー応答はサポートされていません。不足している機能の詳細については、「制限事項」を参照してください。