โ๏ธ BeatPrintsยถ
BeatPrints: Quick, stylish posters for your favorite tracks! ๐ทโ๏ธ
Create eye-catching, Pinterest-style music posters effortlessly. BeatPrints integrates with Spotify and LRClib API to help you design custom posters for your favorite tracks or albums. ๐

๐ฆ Installationยถ
You can install BeatPrints via:
# For pip users
pip install BeatPrints
# For poetry users
poetry add BeatPrints
Or if you prefer using just the CLI:
pipx install BeatPrints
This will install the CLI, making it ready for you to use. For more more infomation, check out pipx
๐ Quick Startยถ
๐ฑ Environment Variablesยถ
To get started with BeatPrints, youโll need a .env
file with these
keys:
SPOTIFY_CLIENT_ID = "<your-client-id>"
SPOTIFY_CLIENT_SECRET = "<your-client-secret>"
You can get these from the Spotify Developer Dashboard by creating a new app with Web API as the scope.
๐ Creating your FIRST Posterยถ
Hereโs how you can create your first poster:
import os, dotenv
from BeatPrints import lyrics, poster, spotify
dotenv.load_dotenv()
# Spotify credentials
CLIENT_ID = os.getenv("SPOTIFY_CLIENT_ID")
CLIENT_SECRET = os.getenv("SPOTIFY_CLIENT_SECRET")
# Initialize components
ly = lyrics.Lyrics()
ps = poster.Poster("./")
sp = spotify.Spotify(CLIENT_ID, CLIENT_SECRET)
# Search for the track and fetch metadata
search = sp.get_track("Saturn - SZA", limit=1)
# Pick the first result
metadata = search[0]
# Get lyrics for the track
lyrics = ly.get_lyrics(metadata)
# Use the placeholder for instrumental tracks; otherwise, select specific lines
highlighted_lyrics = (
lyrics if ly.check_instrumental(metadata) else ly.select_lines(lyrics, "5-9")
)
# Generate the track poster
ps.track(metadata, highlighted_lyrics)
๐ฅ CLIยถ
Hereโs a short video showing how to generate posters using the CLI. For more information refer to the documentation here
๐ผ๏ธ Examplesยถ
Track: Saturn by SZA |
Album: Charm by Clairo |
---|---|
๐จ Themesยถ
BeatPrints currently offers you 5 additional themes to use!
Catppuccin
Gruvbox
Nord
Rosepine
Everforest
For more examples, check out the examples directory.
โจ Featuresยถ
Polaroid Filter for Covers: Give your track or album covers a vintage Polaroid look.
Multi-language Support: Supports English, Hindi, Russian, Japanese, Chinese, and Korean.
Custom Cover Images: Personalize posters with your own images.
Theme Customization: Switch between different other themes.
Track & Album Selection: Highlight your favorite track or entire album.
Lyrics Highlighting: Feature impactful lyrics directly on your poster.
๐ก Why BeatPrints?ยถ
I created this project after finding out that people sell these posters on Etsy at high prices, offering only digital downloads instead of shipping actual posters.
I wanted to make it free for everyone to print themselves, as I believe my posters are simpler, cleaner, and prettier.
๐ Licenseยถ
BeatPrints is distributed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License:
Use: Free to share and adapt.
Attribution: Provide credit and a link to the license.
NonCommercial: Not for commercial use.
ShareAlike: Adaptations must follow the same license.