Skip to main content

Create eye-catching, pinterest-style music posters effortlessly.

Project description

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. 🍀

Maintenance GitHub Repo stars Downloads Code Formatter Static Badge


examples

📔 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
Track Example Album Example

🥞 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!

Dark Catppuccin Gruvbox Nord Rosepine Everforest

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

📜 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

beatprints-1.1.8.tar.gz (51.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

beatprints-1.1.8-py3-none-any.whl (52.0 MB view details)

Uploaded Python 3

File details

Details for the file beatprints-1.1.8.tar.gz.

File metadata

  • Download URL: beatprints-1.1.8.tar.gz
  • Upload date:
  • Size: 51.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for beatprints-1.1.8.tar.gz
Algorithm Hash digest
SHA256 d35988daf5c5cd6e2ad40202ed3601de4c6489da4a41a16868ab79c38f0bdb69
MD5 b273e711798c64ec12ce54b749982ad0
BLAKE2b-256 d3cc3f0b39bd4bbcd83e9b22915d3eecf0d1838940b1b7e5a70e6997a9a67129

See more details on using hashes here.

Provenance

The following attestation bundles were made for beatprints-1.1.8.tar.gz:

Publisher: publish-to-pypi.yml on TrueMyst/BeatPrints

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file beatprints-1.1.8-py3-none-any.whl.

File metadata

  • Download URL: beatprints-1.1.8-py3-none-any.whl
  • Upload date:
  • Size: 52.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for beatprints-1.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 08df2b0cef0fe2e6032eea8b7be53d34a6bd97a725b4686fddec5cfb38936e0a
MD5 7fbd868beca715da80a3d9cfad891bf4
BLAKE2b-256 bcb443123b70e369b2fbcf8aa7576c4c196b9e5f669d8c2646f0c0808fc819f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for beatprints-1.1.8-py3-none-any.whl:

Publisher: publish-to-pypi.yml on TrueMyst/BeatPrints

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page