Calibre Library Management
Complete ebook library management with Calibre.
Configuration
| Property |
Value |
| Calibre |
C:\Program Files\Calibre2\ |
| Library |
C:\Users\julien\OneDrive\Calibre\Calibre Library |
| E-Reader |
Sony PRS-T1 (EPUB, PDF, TXT) |
IMPORTANT: Close Calibre before using CLI commands.
1. Add Books
Add Local File
& 'C:\Program Files\Calibre2\calibredb.exe' add 'PATH\TO\BOOK.epub' --library-path 'C:\Users\julien\OneDrive\Calibre\Calibre Library'
Add with Metadata
calibredb add "book.epub" --title "Title" --authors "Author" --library-path "..."
Add Folder Recursively
calibredb add "C:\Folder" --recurse --library-path "..."
Download from Project Gutenberg
- Search:
WebSearch: "TITLE AUTHOR site:gutenberg.org/ebooks"
- Extract ID from URL (
/ebooks/24850 → 24850)
- Download:
curl -L "https://www.gutenberg.org/ebooks/24850.epub3.images" -o "book.epub"
- Add to Calibre
2. Remove Books
Remove by ID
calibredb remove 123 --permanent --library-path "..."
Remove Multiple
calibredb remove 98,99,100,101 --permanent --library-path "..."
Remove Format Only (keep book)
calibredb remove_format 123 PDF --library-path "..."
Search Then Remove
# Find IDs
calibredb search "author:Zola" --library-path "..."
# Remove
calibredb remove ID1,ID2 --permanent --library-path "..."
3. Convert PDF to EPUB
Basic Conversion
& 'C:\Program Files\Calibre2\ebook-convert.exe' 'input.pdf' 'output.epub'
With Heuristics (better quality)
ebook-convert 'input.pdf' 'output.epub' --enable-heuristics
Add EPUB to Existing Book
calibredb add_format BOOK_ID 'output.epub' --library-path "..."
Find Books Without EPUB
calibredb list --search 'formats:PDF NOT formats:EPUB' --fields id,title,formats --library-path "..."
PDF Types
| Type |
Quality |
Notes |
| Text PDF |
Good |
Direct conversion |
| Scanned/Image |
Poor |
Needs OCR |
| Mixed |
Variable |
Use heuristics |
4. Metadata Management
View Metadata
calibredb show_metadata BOOK_ID --library-path "..."
Set Metadata
calibredb set_metadata BOOK_ID -f 'title:New Title' --library-path "..."
calibredb set_metadata BOOK_ID -f 'authors:Author Name' --library-path "..."
calibredb set_metadata BOOK_ID -f 'languages:fra' --library-path "..."
calibredb set_metadata BOOK_ID -f 'tags:Fiction, Classic' --library-path "..."
Set Cover
calibredb set_metadata BOOK_ID -c 'cover.jpg' --library-path "..."
Extract from File
& 'C:\Program Files\Calibre2\ebook-meta.exe' 'book.epub'
5. Library Analysis
List All Books
calibredb list --library-path "..."
Search by Language
calibredb list --search 'language:eng' --library-path "..."
Find Duplicates
calibredb list --search 'formats:PDF AND formats:EPUB' --fields id,title --library-path "..."
Analysis Scripts
python scripts/analyze/find_empty_books.py # Books with no format
python scripts/analyze/find_books_without_epub.py # PDF-only
python scripts/analyze/find_english_books.py # Filter by language
python scripts/analyze/analyze_library.py # Format statistics
6. Library Cleanup
Workflow
# 1. Close Calibre + OneDrive
Stop-Process -Name calibre,OneDrive -Force -ErrorAction SilentlyContinue
# 2. Analyze
python scripts/analyze/find_empty_books.py
# 3. Remove
calibredb remove ID1,ID2 --permanent --library-path "..."
# 4. Clean orphaned folders
python scripts/force_delete_orphans.py
# 5. Reopen Calibre
Remove PDF When EPUB Exists
# Find books with both formats
calibredb list --search 'formats:PDF AND formats:EPUB' --fields id,title --library-path "..."
# Remove PDF format
calibredb remove_format BOOK_ID PDF --library-path "..."
7. E-Reader Sync
Device: Sony PRS-T1
- Formats: EPUB (preferred), PDF, TXT
Check Connection
Get-PnpDevice | Where-Object { $_.FriendlyName -like "*Sony*" -or $_.FriendlyName -like "*Reader*" }
Transfer Books
Use Calibre GUI (no CLI for device sync):
- Connect e-reader
- Select books in Calibre
- Right-click → "Send to device"
Troubleshooting
| Issue |
Solution |
| Device not detected |
Unplug, wait 5s, replug |
| "No suitable format" |
Convert to EPUB first |
| Transfer fails |
Check device storage |
Scripts Reference
| Script |
Purpose |
scripts/analyze/find_empty_books.py |
Books with no format |
scripts/analyze/find_books_without_epub.py |
PDF-only books |
scripts/analyze/find_english_books.py |
Filter by language |
scripts/manage/remove_books.py |
Batch removal |
scripts/convert/batch_convert.py |
Batch conversion |
scripts/force_delete_orphans.py |
Clean orphaned folders |
Quick Reference
# Add book
calibredb add "book.epub" --library-path "..."
# Remove book
calibredb remove ID --permanent --library-path "..."
# Convert PDF
ebook-convert "input.pdf" "output.epub" --enable-heuristics
# View metadata
calibredb show_metadata ID --library-path "..."
# Set metadata
calibredb set_metadata ID -f 'title:New Title' --library-path "..."
# List all
calibredb list --library-path "..."
# Search
calibredb search "author:Name" --library-path "..."