β˜•οΈ BeatPrints ============= .. raw:: html

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

.. image:: https://i.ibb.co.com/y0jKqHK/banner.png :alt: examples πŸ“¦ Installation --------------- You can install BeatPrints via: .. code:: python # For pip users pip install BeatPrints # For poetry users poetry add BeatPrints Or if you prefer using just the CLI: .. code:: python 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: .. code:: python SPOTIFY_CLIENT_ID = "" SPOTIFY_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: .. code:: python 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 `_ .. video:: https://github.com/user-attachments/assets/3efb7028-c533-4bf4-880b-da3a71f8a3db :width: 700 πŸ–ΌοΈ Examples ----------- ======================== ========================== **Track: Saturn by SZA** **Album: Charm by Clairo** ======================== ========================== |Track Example| |Album Example| ======================== ========================== .. |Track Example| image:: https://i.ibb.co.com/q5v8J9R/saturn-by-sza-1e3.png .. |Album Example| image:: https://i.ibb.co.com/TcrKKXV/charm-by-clairo-f8a.png 🎨 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. πŸ“‹οΈ Table --------- .. toctree:: :maxdepth: 1 guidebook/index reference/index misc/index