Using computer vision may provide a good enough result for this use case. An interesting approach would be to segment the book piles and bulk scan the spines. There are projects that already tackled this problem:
https://www.cs.bgu.ac.il/~ben-shahar/Teaching/Computational-...
Won't be as accurate as barcode scanning, but will be definitely less time consuming.