βοΈ BeatPrints
==============
.. raw:: html
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. π
.. image:: https://i.imgur.com/PDcc2Qp.jpeg
:alt: examples
.. centered:: π Check out the `documentation `_!
π¦ Installation
---------------
You can install BeatPrints via:
.. code-block:: bash
# For pip users
pip install BeatPrints
# For poetry users
poetry add BeatPrints
Or if you prefer using just the CLI:
.. code-block:: bash
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
~~~~~~~~~
.. code-block:: python
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
~~~~~~~~~
.. code-block:: python
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:
.. list-table::
:widths: 50 50
:header-rows: 1
* - **Track: Apples by Rocco**
- **Album: Charm by Clairo**
* - .. image:: https://i.imgur.com/09ExFbx.jpeg
:alt: Track Example
- .. image:: https://i.imgur.com/MUkQAb6.jpeg
:alt: Album Example
π₯ CLI
------
Here's a short video showing how to generate posters using the CLI.
For more information refer to the `documentation `_.
.. video:: https://github.com/user-attachments/assets/3efb7028-c533-4bf4-880b-da3a71f8a3db
:width: 700
π¨ Themes
---------
BeatPrints currently offers you **6 additional themes** to use!
.. raw:: html
For more examples, check out the `examples directory `_.
β¨ Features
-----------
.. list-table::
:widths: 5 30 65
:header-rows: 1
* -
- Feature
- Description
* - π·
- **Polaroid filter for covers**
- Give your track or album covers a vintage Polaroid aesthetic.
* - π
- **Multi-language support**
- Supports 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!
.. raw:: html
π‘ 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**:
.. list-table::
:widths: 25 75
:header-rows: 1
* - 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 `_.
.. centered:: Made with π
.. centered:: elysianmyst, 2026
ποΈ Table
---------
.. toctree::
:maxdepth: 1
guidebook/index
reference/index
misc/index