Skip to content

☕ BeatPrints, create eye-catching, Pinterest-style music posters effortlessly.

License

Notifications You must be signed in to change notification settings

TrueMyst/BeatPrints

Repository files navigation

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

Maintenance GitHub Repo stars Code Formatter Static Badge

examples

📔 Check out the new documentation here!

📦 Installation

You can install BeatPrints via pip:

pip install BeatPrints

Or, if you use Poetry:

poetry add BeatPrints

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

🚀 Quick Start

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 a track
search = sp.get_track("Saturn - SZA", limit=1)

# Get the track's metadata and lyrics
metadata = search[0]
lyrics = ly.get_lyrics(metadata)
highlighted_lyrics = 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

BeatPrints-cli.mp4

🖼️ Examples

Here are a few posters created with BeatPrints:

Track: Saturn by SZA Album: Charm by Clairo
Track Example Album Example

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 Dark and Light themes.
  • Track & Album Selection: Highlight your favorite track or entire album.
  • Lyrics Highlighting: Feature impactful lyrics directly on your poster.

🤝 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:

  • 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, 2024