Metadata-Version: 2.4
Name: pixoo-spotify
Version: 0.0.4
Summary: Show the currently playing Spotify artwork and track info on a Divoom Pixoo64 pixel display.
Author-email: Yuichi Tateno <hotchpotch@gmail.com>
Maintainer-email: Yuichi Tateno <hotchpotch@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/hotchpotch/pixoo-spotify
Project-URL: Repository, https://github.com/hotchpotch/pixoo-spotify
Project-URL: Documentation, https://github.com/hotchpotch/pixoo-spotify
Project-URL: Issues, https://github.com/hotchpotch/pixoo-spotify/issues
Keywords: pixoo,divoom,spotify,pixel-art,gif,cli
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Multimedia :: Graphics
Classifier: Topic :: Home Automation
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: httpx>=0.28.1
Requires-Dist: langdetect>=1.0.9
Requires-Dist: pillow>=12.1.0
Requires-Dist: platformdirs>=4.5.1
Requires-Dist: pydantic>=2.12.5
Requires-Dist: pydantic-settings>=2.12.0
Requires-Dist: rich>=14.2.0
Requires-Dist: spotipy>=2.25.2
Requires-Dist: tomli>=2.0.1; python_version < "3.11"
Requires-Dist: typer>=0.21.1
Provides-Extra: dev
Requires-Dist: pytest>=9.0.2; extra == "dev"
Requires-Dist: pytest-cov>=7.0.0; extra == "dev"
Requires-Dist: pytest-xdist>=3.8.0; extra == "dev"
Requires-Dist: ruff>=0.14.11; extra == "dev"
Requires-Dist: ty>=0.0.10; extra == "dev"
Requires-Dist: tox-uv>=1.29.0; extra == "dev"
Requires-Dist: tox>=4.34.0; extra == "dev"
Dynamic: license-file

# pixoo_spotify ✨

pixoo_spotify shows the currently playing Spotify artwork and track info on a [Divoom Pixoo64](https://divoom.com/en-jp/products/pixoo-64) 64x64 Pixel Art LED Display 🎵🟦
Because the artwork is rendered at 64x64, it keeps the pixel art vibe crisp and charming 🎨

<div style="display:inline-block; background:#0b0b0b; border:3px solid #000; padding:6px;">
  <div style="background:#1a1a1a; padding:3px;">
    <img src="assets/images/example.gif" alt="pixoo_spotify example" style="display:block; border:1px solid #000; image-rendering:pixelated;">
  </div>
</div>

Divoom’s official app supports Spotify playback, but it does not show the artwork, so this project fills that gap 🚀

## Install 🧰

Install uv first. This gives you the uvx command.
https://docs.astral.sh/uv/getting-started/installation/

## Spotify setup (client ID) 🔐

- Register at https://developer.spotify.com/
- Create an app at https://developer.spotify.com/dashboard
  - Copy the Client ID
  - Set the Redirect URI to http://127.0.0.1:8888/callback

Then authenticate once with your Client ID:

```
uvx pixoo-spotify auth --client-id "CLIENT ID"
```

## Fonts (optional) 🔤

By default, a bundled 8‑pixel font that supports English and Japanese [Misaki font](https://littlelimit.net/misaki.htm) is used 🧩

If you want Latin/CJK/Korean coverage, install additional fonts:

```
uv run pixoo-spotify font-install
```

This downloads pixel fonts from:
https://github.com/TakWolf/fusion-pixel-font

## Run ▶️

```
uvx pixoo-spotify run
```

For detailed command-line options:

```
uvx pixoo-spotify run --help
```

If you run with no options, the app will try to infer the Spotify language from your environment and discover the Pixoo device on your local network. You can also provide all values manually.

## Troubleshooting 🧯

When the Pixoo device accesses the server, it needs permission to reach port 18080 on the machine running pixoo_spotify. If the OS firewall blocks this port, allow or open it.

## License 📄

- Source code: MIT

## Author 🙌

- Yuichi Tateno (@hotchpotch)
