~williamvds/website

ca84149f8a3fe7e05cc51192e000e6d729f58c70 — williamvds a month ago 83facd1 master
Add grayjay-bandcamp-plugin
A content/blog/grayjay-bandcamp-plugin/index.md => content/blog/grayjay-bandcamp-plugin/index.md +52 -0
@@ 0,0 1,52 @@
+++
title = "A Bandcamp plugin for Grayjay"
description = """
A brief announcement of a plugin for accessing Bandcamp on the Grayjay app.
"""
slug="a-grayjay-bandcamp-plugin"
date = 2024-05-08
+++

[Grayjay](https://grayjay.app) is a media app which supports multiple platforms,
similar to [NewPipe](https://github.com/TeamNewPipe/NewPipe/releases). I've
recently been trying it out in place of NewPipe, probably after one too many
times where a Youtube update broke it.

Note that Grayjay currently has some weird ["temporary"
license](https://gitlab.futo.org/videostreaming/grayjay/-/blob/b4fddbe26a92a414e3627b5434e9f235eddf129f/LICENSE),
so treat it as "source-available" software at best. It doesn't qualify as Free
and Open Source, as of writing.

A platform I've sorely missed support for is [Bandcamp](https://bandcamp.com),
where I buy most of my music. Thankfully Grayjay has a fairly straightforward
plugin system, where you implement their API (in Javascript, blergh).

So I did that.

[Here it is](https://git.sr.ht/~williamvds/bandcamp-grayjay-plugin).

And here's a QR code for installing it.

![QR code for the plugin](./qr.png)

Or if Grayjay finally supports adding plugins by URL, give it this:

<https://git.sr.ht/~williamvds/bandcamp-grayjay-plugin/blob/master/BandcampConfig.json>

Don't worry, it'll only update when the version in the config file is
incremented.

## Status

Currently pretty jank, but does the job.

The home page shows the most recent "notable albums" as on the Bandcamp
homepage.

Known issues:

- Album size and track length isn't always provided
- Accessing band pages with custom domains isn't supported
- Tracks that can't be streamed aren't displayed at all
- It needs "unrestricted" internet access, because Grayjay doesn't support
    wildcard subdomain access (band pages are like <http://band.bandcamp.com>)

A content/blog/grayjay-bandcamp-plugin/qr.png => content/blog/grayjay-bandcamp-plugin/qr.png +0 -0