⚠️ This project is still in development and not ready for production use.
ShelfSlide is an open-source project that turns your Raspberry Pi and E-Ink display into a stylish digital bookshelf. It allows you to showcase the book covers of your favorite eBooks that you've read or want to show off. ShelfSlide is designed to be simple to set up and highly customizable, allowing you to personalize your digital bookshelf with ease.
I am hugh bookworm and love to read on my eReaders. The one thing I miss is the kind of private library which builds up year after year. The book covers are a great way to remember the books you've read and to show them to others. So I thought why not build a digital bookshelf which can be used to display the book covers of my eBooks.
Well, yes and no. There is a very awesome project called Openframe, which can be used to show digital art on a screen. Unfortunately the do not support e-Ink devices (yet).
- Display book covers of your eBooks on an E-Ink display.
- Automatically download book covers from provided URLs or use simple JPG files.
- Customize the display order and layout of your bookshelf.
- Easily add, remove, or update books using a JSON configuration file.
- Minimal power consumption thanks to E-Ink technology.
- Perfect for creating a digital library or showcasing your literary collection.
⚠️ Copyright Infringement Risk Important Notice for Users⚠️ Using the online functions provided in this software that allow you to download content from external links may pose a significant risk of copyright infringement. It is essential to be aware of and respect copyright laws and regulations before utilizing this feature. Please check the right before using this feature.
Follow these simple steps to set up your ShelfSlide digital bookshelf:
- Raspberry Pi (Model 3 or later recommended)
- E-Ink display compatible with Raspberry Pi (e.g., Waveshare)
- Python 3.x installed on your Raspberry Pi
-
Install the required packages on the Raspberry Pi:
sudo apt-get install python3-pip sudo apt-get install libopenjp2-7
-
Clone the ShelfSlide repository to your Raspberry Pi:
git clone https://github.com/bitSheriff/ShelfSlide.git
-
Navigate to the project directory:
cd ShelfSlide
-
Create virtual environment and active it:
python3 -m venv venv sourve venv/bin/activate
-
Install the required Python packages:
pip install -r requirements.txt
The configuration is done with the file config.yaml
.
books.dir
Directory where the books.json
file is located.
books.git
If set to true
the books.json
file and media/
will be pulled from the git repository.
books.clean
If set to true
the downloaded covers will get removed every time at startup.
slideshow.interval
Interval in seconds between the covers.
slideshow.mode
Mode of the slideshow. Can be random
, asc
or desc
which stands for random, ascending or descending order (decided on the date the book was read).
display.com
Communication interface of the display. Can be spi
or hdmi
. Many EPD (electronic paper display -> e-Ink) displays are connected via SPI, but some are connected via HDMI.
display.height
Height of the display in pixels.
display.width
Width of the display in pixels.
To start the application just execute the python file in the root directory of the project.
python shelfslide.py
If you set the books.simpleMode
to True
, then you can simply add books by storing the cover in the books/media
folder. Now all the images in there will be displayed.
For a more detailed and advanced mode, you can add books (and metadata) to the books.json
.
In there you have to ways to add a cover:
- add a URL of an image, which will later get downloaded
- add a path to the image in the
media/
folder
With this method you have the ability to add a read date which can be used for filtering (only show books read this year) and sorting.
We welcome contributions from the community to improve ShelfSlide. If you'd like to contribute, please follow these guidelines:
- Fork the repository and create a new branch for your feature or bug fix.
- Make your changes and test them thoroughly.
- Ensure your code follows the project's coding style and conventions.
- Submit a pull request with a clear description of your changes and the problem you're solving.
ShelfSlide is open-source software licensed under the MIT License.
ShelfSlide was inspired by the love of books and the desire to create a unique way to display and share your reading list with others. We'd like to thank the open-source community for their support and contributions.
Enjoy showcasing your literary adventures with ShelfSlide! If you have any questions, suggestions, or issues to report, please open an issue on GitHub. Happy reading!