Create a SQLite database containing data from your Pocket account.
pip install pocket-to-sqliteYou will need to first obtain a valid OAuth token for your Pocket account. You can do this by running the auth command and following the prompts:
pocket-to-sqlite authWhich looks like this:
Visit this page and sign in with your Pocket account:
https://getpocket.com/auth/author...
Once you have signed in there, hit <enter> to continue
Authentication tokens written to auth.json
Now you can fetch all of your items from Pocket like this:
pocket-to-sqlite fetch pocket.dbThe first time you run this command it will fetch all of your items, and display a progress bar while it does it.
On subsequent runs it will only fetch new items.
You can force it to fetch everything from the beginning again using --all. Use --silent to disable the progress bar.
You can export your Pocket bookmarks to Karakeep using the export command.
First, add your Karakeep credentials to the auth.json file created by the auth command:
{
"pocket_consumer_key": "...",
"pocket_access_token": "...",
"karakeep_token": "your-karakeep-api-token",
"karakeep_base_url": "https://your-karakeep-instance.com"
}Then export your bookmarks:
pocket-to-sqlite export pocket.dbFilter by status:
# Export only unread items
pocket-to-sqlite export pocket.db --filter-status 0
# Export only archived items
pocket-to-sqlite export pocket.db --filter-status 1
# Export only deleted items
pocket-to-sqlite export pocket.db --filter-status 2Filter by favorites:
pocket-to-sqlite export pocket.db --filter-favoriteBatching and resuming:
# Export first 100 items
pocket-to-sqlite export pocket.db --limit 100
# Resume from item 500
pocket-to-sqlite export pocket.db --offset 500 --limit 100Preview before exporting:
# Dry-run to see what would be exported
pocket-to-sqlite export pocket.db --dry-run --limit 10Other options:
# Use custom auth file
pocket-to-sqlite export pocket.db --auth /path/to/auth.json
# Suppress progress output
pocket-to-sqlite export pocket.db --silent
# Enable debug logging
pocket-to-sqlite export pocket.db --debugThe export command includes retry logic for network timeouts and rate limiting, progress tracking, and comprehensive error handling.
The SQLite database produced by this tool is designed to be browsed using Datasette. Use the datasette-render-timestamps plugin to improve the display of the timestamp values.