This guide explains how to configure external API integrations for Listo's enrichment features.
Listo supports several external APIs to enrich your recommendations with metadata, images, and additional information. Some APIs require API keys, while others are free to use without authentication.
- Google Books API - Book and graphic novel metadata
- Used for: Books, Graphic Novels
- No setup required!
-
TMDB (The Movie Database) - Movie and TV show metadata
- Used for: Movies, TV Shows
- Provides: Posters, descriptions, genres, ratings, release dates
-
YouTube Data API - Video metadata
- Used for: YouTube videos
- Provides: Thumbnails, descriptions, view counts, durations
-
Spotify Web API - Music metadata
- Used for: Artists, Songs, Genres
- Provides: Album art, artist info, Spotify links, popularity scores
-
OMDb API - Additional movie/show ratings (optional)
- Used for: Movies, TV Shows (Rotten Tomatoes ratings)
- Provides: Rotten Tomatoes scores, additional metadata
- Note: Requires TMDB API to be configured first
Get your API key:
- Visit TMDB
- Create a free account
- Go to Settings → API
- Request an API key (choose "Developer" option)
- Fill out the application form (personal use is fine)
- Copy your API key
Add to your project:
# Create or edit .env file in the project root
echo "TMDB_API_KEY=your_api_key_here" >> .envGet your API key:
- Visit Google Cloud Console
- Create a new project (or select an existing one)
- Enable the YouTube Data API v3
- Go to "APIs & Services" → "Library"
- Search for "YouTube Data API v3"
- Click "Enable"
- Create credentials
- Go to "APIs & Services" → "Credentials"
- Click "Create Credentials" → "API Key"
- Copy your API key
- (Optional but recommended) Restrict the API key
- Click on the key you just created
- Under "API restrictions", select "Restrict key"
- Select only "YouTube Data API v3"
- Save
Add to your project:
# Add to .env file
echo "YOUTUBE_API_KEY=your_api_key_here" >> .envGet your credentials:
- Visit Spotify Developer Dashboard
- Log in with your Spotify account
- Click "Create app"
- Fill out the application form:
- App name: "Listo" (or your preferred name)
- App description: "Personal recommendation tracker"
- Redirect URI: Not needed for this integration
- Select "Web API" as API to use
- Accept the terms and click "Create"
- Copy your Client ID and Client Secret
Add to your project:
# Add to .env file
echo "SPOTIFY_CLIENT_ID=your_client_id_here" >> .env
echo "SPOTIFY_CLIENT_SECRET=your_client_secret_here" >> .envGet your API key:
- Visit OMDb API
- Choose the free tier (1,000 requests per day)
- Enter your email address
- Verify your email
- Copy your API key from the verification email
Add to your project:
# Add to .env file
echo "OMDB_API_KEY=your_api_key_here" >> .envWhat this enables:
- Rotten Tomatoes scores on movie and TV show cards
- Additional metadata from IMDb/OMDb
- Works alongside TMDB (both APIs needed)
Create a .env file in your project root with the following structure:
# TMDB (The Movie Database)
# Get your key at: https://www.themoviedb.org/settings/api
TMDB_API_KEY=your_tmdb_api_key_here
# YouTube Data API
# Get your key at: https://console.cloud.google.com/
YOUTUBE_API_KEY=your_youtube_api_key_here
# Spotify Web API
# Get your credentials at: https://developer.spotify.com/dashboard
SPOTIFY_CLIENT_ID=your_client_id_here
SPOTIFY_CLIENT_SECRET=your_client_secret_here
# OMDb API (Optional - for Rotten Tomatoes ratings)
# Get your key at: https://www.omdbapi.com/apikey.aspx
OMDB_API_KEY=your_omdb_api_key_hereFor production deployment, you'll need to add these environment variables to your Cloudflare Pages project:
- Go to your Cloudflare dashboard
- Navigate to Pages → Your project → Settings → Environment variables
- Add each API key/credential:
- Variable name:
TMDB_API_KEY - Value: Your TMDB API key
- Variable name:
YOUTUBE_API_KEY - Value: Your YouTube API key
- Variable name:
SPOTIFY_CLIENT_ID - Value: Your Spotify Client ID
- Variable name:
SPOTIFY_CLIENT_SECRET - Value: Your Spotify Client Secret
- Variable name:
OMDB_API_KEY(optional) - Value: Your OMDb API key
- Variable name:
- Save and redeploy
| Feature | Without API Key | With API Key |
|---|---|---|
| Movies/Shows autocomplete | ❌ Manual entry only | ✅ Search TMDB database |
| Rotten Tomatoes ratings | ❌ Not available | ✅ With OMDb API key |
| YouTube autocomplete | ❌ Manual entry only | ✅ Search videos |
| Music autocomplete | ❌ Manual entry only | ✅ Search Spotify |
| Books autocomplete | ✅ Works perfectly! | ✅ Works perfectly! |
| Add recommendations | ✅ All categories work | ✅ All categories work |
| Local storage | ✅ Full functionality | ✅ Full functionality |
| Sync to cloud | ✅ Full functionality | ✅ Full functionality |
- Check that your API key is correctly set in
.env - Verify the key is active in your TMDB account
- Restart your development server after adding the key
- YouTube API has daily quota limits (free tier: 10,000 units/day)
- Each search costs ~100 units
- Reset at midnight Pacific Time
- Consider upgrading your Google Cloud project if needed
- Ensure
.envfile is in the project root (same level aspackage.json) - Restart your development server:
npm run dev - Check that
.envis listed in.gitignore(do not commit API keys!)
-
Never commit API keys to version control
.envfile should be in.gitignore- Use environment variables for deployment
-
Restrict API keys
- TMDB: Restrict by domain in production
- YouTube: Restrict to only YouTube Data API v3
-
Monitor usage
- Check your API quotas regularly
- Set up billing alerts if using paid tiers
-
Rotate keys if exposed
- If you accidentally commit a key, revoke it immediately
- Generate a new key and update your configuration
All the APIs used in Listo have generous free tiers:
- TMDB: Free (no limits for personal use)
- OMDb: Free up to 1,000 requests/day
- YouTube Data API: Free up to 10,000 units/day
- Spotify Web API: Free (no limits for personal use with Client Credentials flow)
- Google Books: Free (no API key required)
For typical personal use, you should never need to pay for these APIs.
If you run into issues setting up API keys:
- Check the troubleshooting section above
- Review the server logs for specific error messages
- Verify your API keys are active in the respective service dashboards
- File an issue on the GitHub repository with details about your problem
Note: The app will work perfectly fine without API keys - you just won't get autocomplete suggestions for movies, shows, and YouTube videos. You can still manually enter all recommendation types!