mirror of
https://github.com/rmcrackan/Libation.git
synced 2026-03-25 10:21:11 -04:00
150 lines
3.8 KiB
Markdown
150 lines
3.8 KiB
Markdown
# Command Line Interface
|
|
|
|
Libationcli.exe allows limited access to Libation's functionalities as a CLI.
|
|
|
|
Warnings about relying solely on on the CLI:
|
|
|
|
- CLI will not perform any upgrades.
|
|
- It will show that there is an upgrade, but that will likely scroll by too fast to notice.
|
|
- It will not perform all post-upgrade migrations. Some migrations are only be possible by launching GUI.
|
|
|
|
## Progress Bar
|
|
|
|
The **liberate** and **convert** commands show a progress bar in the terminal while downloading or converting (e.g. `[##########----------] 2.5 min remaining`). The progress bar is only shown when the CLI is run interactively with output not redirected.
|
|
|
|
To **turn off the progress bar** (for scripting, logging, or cleaner output), redirect standard output and/or standard error. The progress bar is automatically disabled when either stream is redirected.
|
|
|
|
```console
|
|
libationcli liberate > log.txt 2>&1
|
|
libationcli convert 2> errors.txt
|
|
```
|
|
|
|
Redirecting also avoids progress-bar control characters in log files.
|
|
|
|
## Help
|
|
|
|
```console
|
|
libationcli --help
|
|
```
|
|
|
|
## Verb-Specific Help
|
|
|
|
```console
|
|
libationcli scan --help
|
|
```
|
|
|
|
## Scan All Libraries
|
|
|
|
```console
|
|
libationcli scan
|
|
```
|
|
|
|
## Scan Only Libraries for Specific Accounts
|
|
|
|
```console
|
|
libationcli scan nickname1 nickname2
|
|
```
|
|
|
|
## Convert All m4b Files to mp3
|
|
|
|
```console
|
|
libationcli convert
|
|
```
|
|
|
|
## Liberate All Books and Pdfs
|
|
|
|
```console
|
|
libationcli liberate
|
|
```
|
|
|
|
## Liberate Pdfs Only
|
|
|
|
```console
|
|
libationcli liberate --pdf
|
|
libationcli liberate -p
|
|
```
|
|
|
|
## Force Book(s) to Re-Liberate
|
|
|
|
```console
|
|
libationcli liberate --force
|
|
libationcli liberate -f
|
|
```
|
|
|
|
## Liberate using a license file from the `get-license` command
|
|
|
|
```console
|
|
libationcli liberate --license /path/to/license.lic
|
|
libationcli liberate --license - < /path/to/license.lic
|
|
```
|
|
|
|
## List Libation Settings
|
|
|
|
```console
|
|
libationcli get-setting
|
|
libationcli get-setting -b
|
|
libationcli get-setting FileDownloadQuality
|
|
```
|
|
|
|
## Override Libation Settings for the Command
|
|
|
|
```console
|
|
libationcli liberate B017V4IM1G -override FileDownloadQuality=Normal
|
|
libationcli liberate B017V4IM1G -o FileDownloadQuality=normal -o UseWidevine=true Request_xHE_AAC=true -f
|
|
```
|
|
|
|
## Copy the Local SQLite Database to Postgres
|
|
|
|
```console
|
|
libationcli copydb --connectionString "my postgres connection string"
|
|
libationcli copydb -c "my postgres connection string"
|
|
```
|
|
|
|
## Export Library to File
|
|
|
|
```console
|
|
libationcli export --path "C:\foo\bar\my.json" --json
|
|
libationcli export -p "C:\foo\bar\my.json" -j
|
|
libationcli export -p "C:\foo\bar\my.csv" --csv
|
|
libationcli export -p "C:\foo\bar\my.csv" -c
|
|
libationcli export -p "C:\foo\bar\my.xlsx" --xlsx
|
|
libationcli export -p "C:\foo\bar\my.xlsx" -x
|
|
```
|
|
|
|
## Set Download Status
|
|
|
|
Set download statuses throughout library based on whether each book's audio file can be found.
|
|
Must include at least one flag: --downloaded , --not-downloaded.
|
|
Downloaded: If the audio file can be found, set download status to 'Downloaded'.
|
|
Not Downloaded: If the audio file cannot be found, set download status to 'Not Downloaded'
|
|
UI: Visible Books \> Set 'Downloaded' status automatically. Visible books. Prompts before saving changes
|
|
CLI: Full library. No prompt
|
|
|
|
```console
|
|
libationcli set-status -d
|
|
libationcli set-status -n
|
|
libationcli set-status -d -n
|
|
```
|
|
|
|
## Get a Content License Without Downloading
|
|
|
|
```console
|
|
libationcli get-license B017V4IM1G
|
|
```
|
|
|
|
## Example Powershell Script to Download Four Different Versions of the Same Book
|
|
|
|
```powershell
|
|
$asin="B017V4IM1G"
|
|
|
|
$xHE_AAC=@('true', 'false')
|
|
$Qualities=@('Normal', 'High')
|
|
foreach($q in $Qualities){
|
|
foreach($x in $xHE_AAC){
|
|
$license = ./libationcli get-license $asin --override FileDownloadQuality=$q --override Request_xHE_AAC=$x
|
|
echo $($license | ConvertFrom-Json).ContentMetadata.content_reference
|
|
echo $license | ./libationcli liberate --force --license -
|
|
}
|
|
}
|
|
```
|