Metadata-Version: 2.4
Name: bctui
Version: 0.1.2
Summary: A simple text-based Bandcamp music player
Author-email: "Simon J. Larsen" <simonhffh@gmail.com>
Maintainer-email: "Simon J. Larsen" <simonhffh@gmail.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/SimonLarsen/bctui
Project-URL: Repository, https://github.com/SimonLarsen/bctui
Project-URL: Bug Tracker, https://github.com/SimonLarsen/bctui/issues
Keywords: bandcamp,music,subsonic
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: textual>=8.2.7
Requires-Dist: httpx>=0.28.1
Requires-Dist: pyxdg>=0.28
Requires-Dist: mpv>=1.0.8
Dynamic: license-file

bctui
=====

A simple text-based Bandcamp music player that allows you to stream your music collection.

bctui is built on the new (in beta) [OpenSubsonic API](https://blog.bandcamp.com/2026/07/16/discover-improvements-and-subsonic-implementation/) and uses libmpv for streaming and playback.
The TUI is implemented in Python using [Textual](https://textual.textualize.io).

![screenshot](https://github.com/user-attachments/assets/c60ea7ec-4094-4ec9-bbb2-395f0ca378b2)

## Installation

First make sure `libmpv` is installed. On Debian-based systems you can install it with:
```sh
sudo apt install libmpv2
```

Then clone the repository and install the package, e.g.:

```sh
git clone https://github.com/SimonLarsen/bctui.git
cd bctui
uv run bctui
```

## Configuration

### Setting bandcamp credentials

Create a new configuration file in `$XDG_CONFIG_HOME/bctui/bctui.json` and add your Bandcamp Subsonic username and password:

```sh
mkdir -p ~/.config/bctui
cat <<EOF> ~/.config/bctui/bctui.json
{
    "username": "XXXXXXXX",
    "password": "XXXXXXXX"
}
EOF
```

You can obtain your credentials under [Settings > Fan > Subsonic](https://bandcamp.com/settings?pane=fan#subsonic).

### Themes

You can change the default application theme by setting `theme` to a valid [Textual theme](https://textual.textualize.io/guide/design) name:

```sh
{
    ...
    "theme": "catppuccin-mocha"
}
```
