ReadSound is a static GitHub Pages app that turns a book into a focused reading soundtrack and can export that soundtrack to Spotify.
- Searches Open Library for a book.
- Extracts the book's subjects plus title-specific hints.
- Builds a small theme/genre profile instead of relying on one generic genre.
- Searches iTunes for music previews and scores tracks against those themes.
- Penalizes weak matches such as unrelated genres, generic covers/remixes, and seasonal tracks that do not fit the book.
- Lets you preview the resulting soundtrack in the browser.
- Uses Spotify OAuth with PKCE so you can create a private Spotify playlist and open it in Spotify.
There is no ReadSound account and no ReadSound backend. Book/music discovery happens in the browser.
Set GitHub Pages to deploy from the main branch and the repository root (/). There is no build step and no server-side code.
Spotify requires a developer app/client ID before ReadSound can create playlists. The Client ID is safe to use in a browser; do not put a Spotify Client Secret into this project.
- Create an app in the Spotify Developer Dashboard.
- Copy its Client ID.
- In the app settings, add the exact Redirect URI shown by ReadSound. For a normal GitHub Pages deployment this will look like
https://YOUR-USERNAME.github.io/YOUR-REPO/. - Open ReadSound and click Connect Spotify.
- Paste the Client ID. Spotify will handle the login/permission screen.
- After a book soundtrack is generated, click Create Spotify playlist.
- ReadSound creates a private playlist, adds the tracks Spotify can match, and gives you an Open playlist in Spotify link.
ReadSound uses Authorization Code with PKCE, which is appropriate for browser applications because the client secret does not need to be shipped to the browser. The requested permissions are limited to private/public playlist modification and basic profile access.
The matcher is intentionally conservative. It combines Open Library subjects with title/author hints, searches several targeted queries, scores theme/genre overlap, and drops low-scoring results. This is still heuristic matching rather than AI, so unusual books may need a rebuild or may produce fewer tracks.
ReadSound uses the Open Library Search API for book data/covers and the iTunes Search API for music discovery and previews. Open Library asks applications to keep requests low-volume, identify themselves when making regular frequent requests, and cache where possible. The app keeps requests user-driven and bounded. citeturn438356search0turn438356search1
Apple documents the iTunes Search API as a web search service and exposes 30-second preview URLs for tracks. Apple also notes a roughly 20-calls-per-minute limit for the Search API, so ReadSound deliberately limits the number of music searches per book. Preview usage is subject to Apple's promotional-content terms. citeturn938565search0turn938565search1turn938565search2
Spotify playlist creation uses the Spotify Web API. OAuth/PKCE happens directly between the browser and Spotify; ReadSound does not receive your Spotify password or client secret.
- No ReadSound account is created.
- The Spotify Client ID is stored locally in your browser.
- Spotify access tokens are kept in the current browser session only.
- Book and music searches are sent directly to Open Library and Apple/iTunes.
- Spotify playlist creation is sent directly to Spotify.
- Chapter-aware soundtrack progression
- Reading timer / session mode
- Better mood weighting and manual genre controls
- Apple Music export
- Optional MusicBrainz/Last.fm enrichment
- Saved local bookshelves and playlists
- PWA/offline shell