Online Tool Store Online Tool Store
📚 Productivity

· 4 min read

How to Move a Reading List Between Apps

Manesh Jayawardhana

CIO & Co-founder

Manesh Jayawardhana is the CIO and Co-Founder of Ceyentra Technologies, where he has spent over nine years leading the design and delivery of software solutions for clients across the globe, spanning web, mobile, AI, and capital market systems. He has grown Online Tool Store's engineering team from the ground up while steering the company's technical direction. His writing draws on this breadth of experience building and shipping software across a wide range of industries and markets. View on LinkedIn

Share

How to Move a Reading List Between Apps

Eleven years of reading records live in a note called “books.txt”. Every line is a book, roughly in the format Author - Title (Year), and about forty of the eight hundred lines are in some other format entirely.

Getting that into a proper library app means parsing it, and the interesting question is what happens to the forty.

Parsing is pattern matching, not comprehension

A parser looks for a structure. Author - Title (Year) splits on the dash and extracts the parenthesised number.

That works until a line contains a dash somewhere else:

  • Ursula Le Guin - The Left Hand of Darkness (1969) — fine
  • Jean-Paul Sartre - Nausea (1938) — the hyphen in the name is not the separator
  • Anon - The Saga of Grettir - a new translation (2005) — two dashes
  • Moby-Dick — no author, and a hyphen in the title

The first is what the pattern expects. The other three are why a parser that silently guesses produces a library with fields in the wrong columns.

The right behaviour is to flag them. Forty lines to fix by hand is a job; eight hundred entries with forty silently wrong is a corrupted library you discover a year later.

Choose the format for the destination

CSV for spreadsheets and most library apps’ import functions. Nearly everything reads it, and column order can usually be mapped on import.

Markdown table for putting the list in a document or a wiki. Readable as text, which CSV is not.

BibTeX for reference managers and LaTeX. Entries generated from a plain list will have author, title, year and a generated key, and will be missing publisher, edition and ISBN — enough to import and identify, not enough to cite.

JSON for anything you are going to process programmatically.

DestinationFormatCompleteness
SpreadsheetCSVFull for what was in the source
Wiki or documentMarkdownFull
Reference managerBibTeXSkeleton — needs enriching
ScriptJSONFull

Enriching afterwards

A list of author, title and year identifies a book. It does not describe an edition.

Most library and reference apps can look up an ISBN or search by title and author to fill in publisher, page count, cover and subject headings. Importing the skeleton and letting the app enrich it is far less work than assembling complete records by hand.

That also resolves ambiguity — two books with the same title and year become distinguishable once the lookup adds a publisher.

Keep your own annotations

The part of a reading list worth most is rarely the titles.

Ratings, dates read, and one-line notes about why a book mattered are what you cannot reconstruct. A migration that carries the titles and drops those has moved the least valuable half.

If your source list holds them in any consistent position — after a dash, in brackets, on the following line — they can be parsed into their own columns and imported alongside. If it does not, extracting them is manual work, and it is worth doing before the list grows further.

Most library apps have fields for a rating and a private note. Mapping your annotations into those at import is far easier than adding them back one book at a time afterwards.

Common mistakes to avoid

  • Using a parser that guesses on malformed lines instead of flagging them.
  • Importing without checking the flagged lines, which are the ones most likely to be wrong.
  • Expecting BibTeX generated from a plain list to be citation-ready.
  • Losing your own annotations — ratings, dates read, notes — because the parser only looked for author, title and year.
  • Deleting the original file after import, before verifying the count matches.

How to do it with Reading List Exporter

The Reading List Exporter parses in the browser and reports what it could not read.

  1. Paste the list; consistency in format matters more than which format.
  2. Choose the output for where it is going.
  3. Fix the flagged lines by hand — they are usually titles containing the separator.
  4. Check the output count matches the input before deleting anything.

Other productivity tools are in the tools directory.

Frequently asked questions

What format should my input be in?

Any consistent one. Author - Title (Year) parses cleanly. The problems come from mixed formats within one list, and from titles or names containing the separator character.

Will the BibTeX work in LaTeX?

It produces valid entries with generated keys, missing publisher and edition fields. Import it into a reference manager and let that enrich the records from an ISBN or title lookup.

Is my list uploaded anywhere?

No. Parsing runs in the browser, so the list stays on your device.

Final thought

Read the flagged lines before importing. Forty lines to fix by hand is an afternoon; forty silently mis-parsed entries is a library you stop trusting.

Try the free Reading List Exporter

#reading-list-export#book-list-csv#bibtex-conversion#library-migration#online-tools#free-tools