BeatPrints


NameBeatPrints JSON
Version 1.1.3 PyPI version JSON
download
home_pagehttps://github.com/TrueMyst/BeatPrints
SummaryCreate eye-catching, pinterest-style music posters effortlessly.
upload_time2025-01-10 07:03:12
maintainerNone
docs_urlNone
authorelysianmyst
requires_python<4.0,>=3.10
licenseCC-BY-NC-4.0
keywords spotify lyrics pinterest lrclibapi
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <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>

![examples](https://i.ibb.co.com/y0jKqHK/banner.png)

<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**                                             |
| -------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| ![Track Example](https://i.ibb.co.com/q5v8J9R/saturn-by-sza-1e3.png) | ![Album Example](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](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![examples](https://i.ibb.co.com/y0jKqHK/banner.png)\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| ![Track Example](https://i.ibb.co.com/q5v8J9R/saturn-by-sza-1e3.png) | ![Album Example](https://i.ibb.co.com/TcrKKXV/charm-by-clairo-f8a.png) |\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"
}
        
Elapsed time: 0.72902s