<h3 align="center">
<img src="https://i.ibb.co/CWY693F/beatprints-logo.png" width="175"/>
</h3>
<h3 align="center">
BeatPrints: Quick, stylish posters for your favorite tracks! π·βοΈ
</h3>
<p align="center">Create eye-catching, Pinterest-style music posters effortlessly. BeatPrints integrates with <b>Spotify</b> and <b>LRClib API</b> to help you design custom posters for your favorite tracks or albums. π</p>
<p align="center">
<a href="https://gitHub.com/TrueMyst/BeatPrints/graphs/commit-activity">
<img src="https://img.shields.io/badge/Maintained%3F-Yes-%23c4b9a6?style=for-the-badge&logo=Undertale&logoColor=%23b5a790&labelColor=%23312123" alt="Maintenance"></a>
<a href="https://github.com/TrueMyst/BeatPrints/stargazers">
<img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/TrueMyst/BeatPrints?style=for-the-badge&logo=Apache%20Spark&logoColor=%23b5a790&labelColor=%23312123&color=%23c4b9a6"></a>
<a href="https://github.com/psf/black">
<img src="https://img.shields.io/badge/Code_Style-black-%23c4b9a6?style=for-the-badge&logo=CodeFactor&logoColor=%23b5a790&labelColor=%23312123" alt="Code Formatter"></a>
<a href="https://creativecommons.org/licenses/by-nc-sa/4.0/">
<img alt="Static Badge" src="https://img.shields.io/badge/License-CC_BY--NC--SA_4.0-%23c4b9a6?style=for-the-badge&logo=Pinboard&logoColor=%23b5a790&labelColor=%23312123"></a>
</p>

<h3 align="center">π Check out the documentation <a href="https://beatprints.readthedocs.io/en/latest/">here!</a></h3>
## π¦ Installation
You can install BeatPrints via:
```bash
# For pip users
pip install BeatPrints
# For poetry users
poetry add BeatPrints
```
Or if you prefer using just the CLI:
```bash
pipx install BeatPrints
```
This will install the CLI, making it ready for you to use.
For more more infomation, check out [pipx](https://github.com/pypa/pipx)
## π Quick Start
### π± Environment Variables
To get started with BeatPrints, youβll need a `.env` file with these keys:
```env
SPOTIFY_CLIENT_ID = "<your-client-id>"
SPOTIFY_CLIENT_SECRET = "<your-client-secret>"
```
You can get these from the [Spotify Developer Dashboard](https://developer.spotify.com/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:
```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 and determine if the track is instrumental
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](https://beatprints.readthedocs.io/en/latest/guidebook/cli.html)
https://github.com/user-attachments/assets/3efb7028-c533-4bf4-880b-da3a71f8a3db
## πΌοΈ Examples
| **Track: Saturn by SZA** | **Album: Charm by Clairo** |
| -------------------------------------------------------------------- | ---------------------------------------------------------------------- |
|  |  |
## π¨ Themes
BeatPrints currently offers you **5 additional themes** to use!
- Catppuccin
- Gruvbox
- Nord
- Rosepine
- Everforest
For more examples, check out the [examples directory](https://github.com/TrueMyst/BeatPrints/tree/main/examples).
## β¨ 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**: Highlight your favourite lyrics directly on your poster.
## π€ Contributors
Thank you to all contributors for making BeatPrints better!
<p align="center">
<a href="https://github.com/TrueMyst/BeatPrints/graphs/contributors">
<img src="https://contrib.rocks/image?repo=TrueMyst/BeatPrints" />
</a>
</p>
## π‘ Why BeatPrints?
I created this project after finding out that people sell these posters on [Etsy](https://www.etsy.com/market/spotify_poster) 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](https://github.com/AnveshakR/poster-generator/) by [@AnveshakR](https://github.com/AnveshakR) for inspiring BeatPrints with amazing ideas!
- Shoutout to [@Magniquick](https://github.com/Magniquick), [@itsnotrin](https://github.com/itsnotrin), [@wenbang24](https://github.com/wenbang24) and [@cherriae](https://github.com/cherriae) for their awesome contributions!
## π 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](https://github.com/TrueMyst/BeatPrints/blob/main/LICENSE).
<p align="center">
Made with π <br>
elysianmyst, 2025
</p>
Raw data
{
"_id": null,
"home_page": "https://github.com/TrueMyst/BeatPrints",
"name": "BeatPrints",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.10",
"maintainer_email": null,
"keywords": "spotify, lyrics, pinterest, lrclibapi",
"author": "elysianmyst",
"author_email": "74355265+TrueMyst@users.noreply.github.com",
"download_url": "https://files.pythonhosted.org/packages/3e/76/9533c10fa83f01ed7d72c61b60b9dfe04baa7e585364d988bb610ef2c9a3/beatprints-1.1.3.tar.gz",
"platform": null,
"description": "<h3 align=\"center\">\n <img src=\"https://i.ibb.co/CWY693F/beatprints-logo.png\" width=\"175\"/>\n</h3>\n<h3 align=\"center\">\n BeatPrints: Quick, stylish posters for your favorite tracks! \ud83c\udfb7\u2615\ufe0f\n</h3>\n\n<p align=\"center\">Create eye-catching, Pinterest-style music posters effortlessly. BeatPrints integrates with <b>Spotify</b> and <b>LRClib API</b> to help you design custom posters for your favorite tracks or albums. \ud83c\udf40</p>\n\n<p align=\"center\">\n <a href=\"https://gitHub.com/TrueMyst/BeatPrints/graphs/commit-activity\">\n <img src=\"https://img.shields.io/badge/Maintained%3F-Yes-%23c4b9a6?style=for-the-badge&logo=Undertale&logoColor=%23b5a790&labelColor=%23312123\" alt=\"Maintenance\"></a>\n <a href=\"https://github.com/TrueMyst/BeatPrints/stargazers\">\n <img alt=\"GitHub Repo stars\" src=\"https://img.shields.io/github/stars/TrueMyst/BeatPrints?style=for-the-badge&logo=Apache%20Spark&logoColor=%23b5a790&labelColor=%23312123&color=%23c4b9a6\"></a>\n <a href=\"https://github.com/psf/black\">\n <img src=\"https://img.shields.io/badge/Code_Style-black-%23c4b9a6?style=for-the-badge&logo=CodeFactor&logoColor=%23b5a790&labelColor=%23312123\" alt=\"Code Formatter\"></a>\n <a href=\"https://creativecommons.org/licenses/by-nc-sa/4.0/\">\n <img alt=\"Static Badge\" src=\"https://img.shields.io/badge/License-CC_BY--NC--SA_4.0-%23c4b9a6?style=for-the-badge&logo=Pinboard&logoColor=%23b5a790&labelColor=%23312123\"></a>\n</p>\n\n\n\n<h3 align=\"center\">\ud83d\udcd4 Check out the documentation <a href=\"https://beatprints.readthedocs.io/en/latest/\">here!</a></h3>\n\n## \ud83d\udce6 Installation\n\nYou can install BeatPrints via:\n\n```bash\n# For pip users\npip install BeatPrints\n\n# For poetry users\npoetry add BeatPrints\n```\n\nOr if you prefer using just the CLI:\n\n```bash\npipx install BeatPrints\n```\n\nThis will install the CLI, making it ready for you to use.\nFor more more infomation, check out [pipx](https://github.com/pypa/pipx)\n\n## \ud83d\ude80 Quick Start\n\n### \ud83c\udf31 Environment Variables\n\nTo get started with BeatPrints, you\u2019ll need a `.env` file with these keys:\n\n```env\nSPOTIFY_CLIENT_ID = \"<your-client-id>\"\nSPOTIFY_CLIENT_SECRET = \"<your-client-secret>\"\n```\n\nYou can get these from the [Spotify Developer Dashboard](https://developer.spotify.com/dashboard/) by creating a new app with **Web API** as the scope.\n\n### \ud83c\udf80 Creating your FIRST Poster\nHere\u2019s how you can create your first poster:\n\n```python\nimport os, dotenv\nfrom BeatPrints import lyrics, poster, spotify\n\ndotenv.load_dotenv()\n\n# Spotify credentials\nCLIENT_ID = os.getenv(\"SPOTIFY_CLIENT_ID\")\nCLIENT_SECRET = os.getenv(\"SPOTIFY_CLIENT_SECRET\")\n\n# Initialize components\nly = lyrics.Lyrics()\nps = poster.Poster(\"./\")\nsp = spotify.Spotify(CLIENT_ID, CLIENT_SECRET)\n\n# Search for the track and fetch metadata\nsearch = sp.get_track(\"Saturn - SZA\", limit=1)\n\n# Pick the first result\nmetadata = search[0]\n\n# Get lyrics and determine if the track is instrumental\nlyrics = ly.get_lyrics(metadata)\n\n# Use the placeholder for instrumental tracks; otherwise, select specific lines\nhighlighted_lyrics = (\n lyrics if ly.check_instrumental(metadata) else ly.select_lines(lyrics, \"5-9\")\n)\n\n# Generate the track poster\nps.track(metadata, highlighted_lyrics)\n```\n\n## \ud83e\udd5e CLI\n\nHere\u2019s a short video showing how to generate posters using the CLI. For more information refer to the documentation [here](https://beatprints.readthedocs.io/en/latest/guidebook/cli.html)\n\nhttps://github.com/user-attachments/assets/3efb7028-c533-4bf4-880b-da3a71f8a3db\n\n## \ud83d\uddbc\ufe0f Examples\n\n| **Track: Saturn by SZA** | **Album: Charm by Clairo** |\n| -------------------------------------------------------------------- | ---------------------------------------------------------------------- |\n|  |  |\n\n\n## \ud83c\udfa8 Themes\nBeatPrints currently offers you **5 additional themes** to use! \n- Catppuccin\n- Gruvbox\n- Nord\n- Rosepine\n- Everforest\n\nFor more examples, check out the [examples directory](https://github.com/TrueMyst/BeatPrints/tree/main/examples).\n\n\n## \u2728 Features\n\n- **Polaroid Filter for Covers**: Give your track or album covers a vintage Polaroid look. \n- **Multi-language Support**: Supports English, Hindi, Russian, Japanese, Chinese, and Korean. \n- **Custom Cover Images**: Personalize posters with your own images. \n- **Theme Customization**: Switch between different other themes.\n- **Track & Album Selection**: Highlight your favorite track or entire album. \n- **Lyrics Highlighting**: Highlight your favourite lyrics directly on your poster.\n\n\n## \ud83e\udd1d Contributors\n\nThank you to all contributors for making BeatPrints better!\n\n<p align=\"center\">\n <a href=\"https://github.com/TrueMyst/BeatPrints/graphs/contributors\">\n <img src=\"https://contrib.rocks/image?repo=TrueMyst/BeatPrints\" />\n </a>\n</p>\n\n\n## \ud83d\udca1 Why BeatPrints?\n\nI created this project after finding out that people sell these posters on [Etsy](https://www.etsy.com/market/spotify_poster) at high prices, offering only digital downloads instead of shipping actual posters. \n\nI wanted to make it free for everyone to print themselves, as I believe my posters are simpler, cleaner, and prettier.\n\n\n## \u2764\ufe0f Special Thanks\n\n- A big thanks to [Spotify Poster Generator](https://github.com/AnveshakR/poster-generator/) by [@AnveshakR](https://github.com/AnveshakR) for inspiring BeatPrints with amazing ideas! \n- Shoutout to [@Magniquick](https://github.com/Magniquick), [@itsnotrin](https://github.com/itsnotrin), [@wenbang24](https://github.com/wenbang24) and [@cherriae](https://github.com/cherriae) for their awesome contributions!\n\n\n## \ud83d\udcdc License\n\nBeatPrints is distributed under the **Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License**:\n\n- **Use**: Free to share and adapt. \n- **Attribution**: Provide credit and a link to the license. \n- **NonCommercial**: Not for commercial use. \n- **ShareAlike**: Adaptations must follow the same license. \n\nRead the full license [here](https://github.com/TrueMyst/BeatPrints/blob/main/LICENSE). \n\n\n<p align=\"center\">\nMade with \ud83d\udc9c <br>\nelysianmyst, 2025\n</p>\n\n",
"bugtrack_url": null,
"license": "CC-BY-NC-4.0",
"summary": "Create eye-catching, pinterest-style music posters effortlessly.",
"version": "1.1.3",
"project_urls": {
"Homepage": "https://github.com/TrueMyst/BeatPrints",
"Repository": "https://github.com/TrueMyst/BeatPrints"
},
"split_keywords": [
"spotify",
" lyrics",
" pinterest",
" lrclibapi"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e5139dd2ea8097217c292e590299f152e6aa2da974f97bed78ec18eb9d10d73a",
"md5": "8b4aeec8f1f5175d0e6dbb2e00401fb7",
"sha256": "02910578d878a3e917db860aa90cc43df2376ae69c2392f08bb21c1fe39c98b0"
},
"downloads": -1,
"filename": "beatprints-1.1.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8b4aeec8f1f5175d0e6dbb2e00401fb7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.10",
"size": 51725266,
"upload_time": "2025-01-10T07:03:04",
"upload_time_iso_8601": "2025-01-10T07:03:04.291491Z",
"url": "https://files.pythonhosted.org/packages/e5/13/9dd2ea8097217c292e590299f152e6aa2da974f97bed78ec18eb9d10d73a/beatprints-1.1.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3e769533c10fa83f01ed7d72c61b60b9dfe04baa7e585364d988bb610ef2c9a3",
"md5": "3d4aacd1a8fa85bc2e2d147620cae449",
"sha256": "a8f9af66cea742aeb6f73a764cd84a5cee82f8426e6400fc36371283fa74d158"
},
"downloads": -1,
"filename": "beatprints-1.1.3.tar.gz",
"has_sig": false,
"md5_digest": "3d4aacd1a8fa85bc2e2d147620cae449",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.10",
"size": 51590989,
"upload_time": "2025-01-10T07:03:12",
"upload_time_iso_8601": "2025-01-10T07:03:12.751425Z",
"url": "https://files.pythonhosted.org/packages/3e/76/9533c10fa83f01ed7d72c61b60b9dfe04baa7e585364d988bb610ef2c9a3/beatprints-1.1.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-10 07:03:12",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "TrueMyst",
"github_project": "BeatPrints",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "beatprints"
}