Shelves and quotes
Read a reader's bookshelf from the public RSS feed, collect quotes, and look up reader profiles.
The reader-facing side of Goodreads: a person's shelves, the quotes they and others have saved, and the public profile behind them.
Shelves
goodread shelf 1 --shelf read
shelf reads a reader's bookshelf. By default it uses the public RSS feed,
which is rich (every book, rating, and review on the shelf) and is not
WAF-challenged, so this is a reliable command. --shelf picks which shelf:
goodread shelf 1 --shelf read
goodread shelf 1 --shelf currently-reading
goodread shelf 1 --shelf to-read
goodread shelf 1 --shelf favorites # a custom shelf, by its name
The default shelf is read. Each row carries shelf_id, user_id, book_id,
title, author_name, isbn, num_pages, avg_rating, rating, shelves,
review_id, review_text, cover_url, date_added, and date_read.
The RSS feed returns one page. When you need more than it carries, --html
walks the paginated HTML shelf instead, and --max-pages caps how far it goes:
goodread shelf 1 --shelf read --html --max-pages 3
The HTML mode reads the shelf web pages, so it can meet a WAF challenge where the RSS feed does not. Prefer the default feed unless you specifically need more pages.
Quotes
goodread quote 153394
quote takes a quotes page URL, an author id, or a book id, and returns the
quotes from it:
goodread quote 153394 # an author's quotes
goodread quote https://www.goodreads.com/work/quotes/2792775 # a work's quotes page
Each quote carries quote_id, text, author_id, author_name, book_id,
book_title, likes_count, and tags.
Reader profiles
goodread user 1
user returns a public reader profile: user_id, name, username,
location, joined_date, friends_count, books_read_count, ratings_count,
reviews_count, avg_rating, bio, website, avatar_url, and
favorite_book_ids. From a profile, favorite_book_ids feeds book and the
same user_id feeds shelf:
goodread user 1 --fields user_id,name,books_read_count
goodread shelf 1 --shelf read