BeatPrints: Quick, stylish posters for your favorite tracks and albums! 🎷☕️
Create eye-catching, pinterest-style music posters effortlessly.
BeatPrints integrates with Deezer and LRClib API to help you design custom posters for your favorite tracks or albums. 🍀
📔 Check out the documentation here!
📦 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 information, check out pipx
🚀 Quick Start
Here's how you can create your first track / album poster.
🎵 Track
from BeatPrints import deez, lyrics, poster
# Initialize components
dz = deez.Deezer()
ps = poster.Poster("./") # Save the poster in the current directory
# Search for the track and fetch metadata
search = dz.search(query="Apples - Rocco", stype="track", limit=1)
# Grab the Track ID from the first result
id = search[0]["id"]
# Fetch full track metadata
metadata = dz.get_track(id)
# Get lyrics and check if the track is instrumental
lrc = lyrics.Lyrics(metadata).get_lyrics()
# Use a placeholder for instrumentals; otherwise pick specific lines
lyrics = (
"It's an instrumental track :>"
if lrc.check_instrumental(metadata)
else lrc.select_lines("11-14")
)
# Generate and save the poster
ps.track(metadata=metadata, lyrics=lyrics, accent=False, theme="Light")
💿 Album
from BeatPrints import poster, deez
# Initialize components
dz = deez.Deezer()
ps = poster.Poster("./") # Save the poster in the current directory
# Search for the album and fetch metadata
search = dz.search(query="Charm - Clairo", stype="album", limit=1)
# Grab the Album ID from the first result
id = search[0]["id"]
# Fetch full album metadata
metadata = dz.get_album(id)
# Generate and save the poster
ps.album(metadata=metadata, indexing=False, accent=True, theme="Light")
Here's what the posters look like:
| Track: Apples by Rocco | Album: Charm by Clairo |
|---|---|
🥞 CLI
Here's a short video showing how to generate posters using the CLI. For more information refer to the documentation here
https://github.com/user-attachments/assets/3efb7028-c533-4bf4-880b-da3a71f8a3db
🎨 Themes
BeatPrints currently offers you 6 additional themes to use!
For more examples, check out the examples directory.
✨ Features
| Feature | Description | |
|---|---|---|
| 📷 | Polaroid filter for covers | Give your track or album covers a vintage Polaroid aesthetic. |
| 🌐 | Multi-language support | Supports with Latin, Hindi, Bengali, Russian, Japanese, Chinese, and Korean. |
| 🖼️ | Custom cover art | Use your own images instead of the default track or album artwork. |
| 🎨 | Theme customization | Switch between multiple built-in themes to match your style. |
🤝 Contributors
Thank you to all contributors for making BeatPrints better!
💡 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.
❤️ Special Thanks
- A big thanks to Spotify Poster Generator by @AnveshakR for inspiring BeatPrints with amazing ideas!
- Shoutout to @Magniquick, @itsnotrin, @wenbang24 and @cherriae for their awesome contributions!
📜 License
BeatPrints is distributed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License:
| Term | Details |
|---|---|
| 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. |
Read the full license here.
Made with 💜
elysianmyst, 2026
Metadata
Release files for BeatPrints 1.1.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| beatprints-1.1.9.tar.gz | 51.8 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| beatprints-1.1.9-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 103.8 MB
Release files / beatprints-1.1.9.tar.gz
| Download URL | beatprints-1.1.9.tar.gz |
|---|---|
| Size | 51.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
327d3855598ce23db56d575f5cda20d0bda6d84874fc5be7e6a575f1661254c9
|
|
BLAKE2b-256 checksum How to use checksums |
200fa7232ce54ed1eca9e94745f1052b2a1c56f5aad9e60a2beeaac84d298998
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 17, 2026.
Transparency logRelease files / beatprints-1.1.9-py3-none-any.whl
| Download URL | beatprints-1.1.9-py3-none-any.whl |
|---|---|
| Size | 52.0 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b454c5956933037c87e2cbc3c18c9b8de31076fbf964069caa27bd51c03c2a5a
|
|
BLAKE2b-256 checksum How to use checksums |
97899b0db0b8c300f618d334395ce8bd57fcdf5e6b299397f37e57a9ed69ae92
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 17, 2026.
Transparency log