Feedback and support thread for the Pulsewidth a-tisket instance

By looking through the source code of this JS Tidal API library I found out how to use the TIdal API without authentication. The gist of it:

Get album

get_album() {
	# The countryCode parameter is required
	curl "https://api.tidal.com/v1/albums/$1?countryCode=$2" \
		-H x-tidal-token:gsFXkJqGrUNoYMQPZe4k3WKwijnrp8iGSwn3bApe
}
get_album 62053271 AU
{
	"id": 62053271,
	"title": "You",
	"duration": 1758,
	"streamReady": true,
	"streamStartDate": "2016-06-24T00:00:00.000+0000",
	"allowStreaming": true,
	"premiumStreamingOnly": false,
	"numberOfTracks": 8,
	"numberOfVideos": 0,
	"numberOfVolumes": 1,
	"releaseDate": "2016-06-24",
	"copyright": "2016 Young Culture",
	"type": "ALBUM",
	"version": null,
	"url": "http://www.tidal.com/album/62053271",
	"cover": "ab127c0a-5b92-4fab-8f18-4f2db6ff7bb7",
	"vibrantColor": "#FFFFFF",
	"videoCover": null,
	"explicit": false,
	"upc": "190394605940",
	"popularity": 0,
	"audioQuality": "LOSSLESS",
	"audioModes": [
		"STEREO"
	],
	"artist": {
		"id": 7923949,
		"name": "Young Culture",
		"type": "MAIN",
		"picture": null
	},
	"artists": [
		{
			"id": 7923949,
			"name": "Young Culture",
			"type": "MAIN",
			"picture": null
		}
	]
}

Get album tracks

get_album_tracks() {
	# Again the countryCode parameter is required
	curl "https://api.tidal.com/v1/albums/$1/tracks?countryCode=$2" \
		-H x-tidal-token:gsFXkJqGrUNoYMQPZe4k3WKwijnrp8iGSwn3bApe
}
get_album_tracks 62053272 AU
{
    "limit": 8,
    "offset": 0,
    "totalNumberOfItems": 8,
    "items": [
        {
            "id": 62053272,
            "title": "Home to Me",
            "duration": 187,
            "replayGain": -12.28,
            "peak": 0.974456,
            "allowStreaming": true,
            "streamReady": true,
            "streamStartDate": "2016-06-24T00:00:00.000+0000",
            "premiumStreamingOnly": false,
            "trackNumber": 1,
            "volumeNumber": 1,
            "version": null,
            "popularity": 0,
            "copyright": "2016 Young Culture",
            "url": "http://www.tidal.com/track/62053272",
            "isrc": "USDY41658853",
            "editable": false,
            "explicit": false,
            "audioQuality": "LOSSLESS",
            "audioModes": [
                "STEREO"
            ],
            "artist": {
                "id": 7923949,
                "name": "Young Culture",
                "type": "MAIN",
                "picture": null
            },
            "artists": [
                {
                    "id": 7923949,
                    "name": "Young Culture",
                    "type": "MAIN",
                    "picture": null
                }
            ],
            "album": {
                "id": 62053271,
                "title": "You",
                "cover": "ab127c0a-5b92-4fab-8f18-4f2db6ff7bb7",
                "vibrantColor": "#FFFFFF",
                "videoCover": null
            },
            "mixes": {}
        },
        {
            "id": 62053273,
            "title": "Ready for You",
            "duration": 236,
            "replayGain": -12.28,
            "peak": 0.974426,
            "allowStreaming": true,
            "streamReady": true,
            "streamStartDate": "2016-06-24T00:00:00.000+0000",
            "premiumStreamingOnly": false,
            "trackNumber": 2,
            "volumeNumber": 1,
            "version": null,
            "popularity": 0,
            "copyright": "2016 Young Culture",
            "url": "http://www.tidal.com/track/62053273",
            "isrc": "USDY41658854",
            "editable": false,
            "explicit": false,
            "audioQuality": "LOSSLESS",
            "audioModes": [
                "STEREO"
            ],
            "artist": {
                "id": 7923949,
                "name": "Young Culture",
                "type": "MAIN",
                "picture": null
            },
            "artists": [
                {
                    "id": 7923949,
                    "name": "Young Culture",
                    "type": "MAIN",
                    "picture": null
                }
            ],
            "album": {
                "id": 62053271,
                "title": "You",
                "cover": "ab127c0a-5b92-4fab-8f18-4f2db6ff7bb7",
                "vibrantColor": "#FFFFFF",
                "videoCover": null
            },
            "mixes": {}
        },
        {
            "id": 62053274,
            "title": "Bedroom Floor (feat. Derek DiScanio)",
            "duration": 221,
            "replayGain": -12.28,
            "peak": 0.974456,
            "allowStreaming": true,
            "streamReady": true,
            "streamStartDate": "2016-06-24T00:00:00.000+0000",
            "premiumStreamingOnly": false,
            "trackNumber": 3,
            "volumeNumber": 1,
            "version": null,
            "popularity": 0,
            "copyright": "2016 Young Culture",
            "url": "http://www.tidal.com/track/62053274",
            "isrc": "USDY41658855",
            "editable": false,
            "explicit": false,
            "audioQuality": "LOSSLESS",
            "audioModes": [
                "STEREO"
            ],
            "artist": {
                "id": 7923949,
                "name": "Young Culture",
                "type": "MAIN",
                "picture": null
            },
            "artists": [
                {
                    "id": 7923949,
                    "name": "Young Culture",
                    "type": "MAIN",
                    "picture": null
                }
            ],
            "album": {
                "id": 62053271,
                "title": "You",
                "cover": "ab127c0a-5b92-4fab-8f18-4f2db6ff7bb7",
                "vibrantColor": "#FFFFFF",
                "videoCover": null
            },
            "mixes": {}
        },
        {
            "id": 62053275,
            "title": "By Your Side",
            "duration": 204,
            "replayGain": -12.28,
            "peak": 0.974426,
            "allowStreaming": true,
            "streamReady": true,
            "streamStartDate": "2016-06-24T00:00:00.000+0000",
            "premiumStreamingOnly": false,
            "trackNumber": 4,
            "volumeNumber": 1,
            "version": null,
            "popularity": 0,
            "copyright": "2016 Young Culture",
            "url": "http://www.tidal.com/track/62053275",
            "isrc": "USDY41658856",
            "editable": false,
            "explicit": false,
            "audioQuality": "LOSSLESS",
            "audioModes": [
                "STEREO"
            ],
            "artist": {
                "id": 7923949,
                "name": "Young Culture",
                "type": "MAIN",
                "picture": null
            },
            "artists": [
                {
                    "id": 7923949,
                    "name": "Young Culture",
                    "type": "MAIN",
                    "picture": null
                }
            ],
            "album": {
                "id": 62053271,
                "title": "You",
                "cover": "ab127c0a-5b92-4fab-8f18-4f2db6ff7bb7",
                "vibrantColor": "#FFFFFF",
                "videoCover": null
            },
            "mixes": {}
        },
        {
            "id": 62053276,
            "title": "Stupid Kid",
            "duration": 222,
            "replayGain": -12.28,
            "peak": 0.974456,
            "allowStreaming": true,
            "streamReady": true,
            "streamStartDate": "2016-06-24T00:00:00.000+0000",
            "premiumStreamingOnly": false,
            "trackNumber": 5,
            "volumeNumber": 1,
            "version": null,
            "popularity": 0,
            "copyright": "2016 Young Culture",
            "url": "http://www.tidal.com/track/62053276",
            "isrc": "USDY41658857",
            "editable": false,
            "explicit": false,
            "audioQuality": "LOSSLESS",
            "audioModes": [
                "STEREO"
            ],
            "artist": {
                "id": 7923949,
                "name": "Young Culture",
                "type": "MAIN",
                "picture": null
            },
            "artists": [
                {
                    "id": 7923949,
                    "name": "Young Culture",
                    "type": "MAIN",
                    "picture": null
                }
            ],
            "album": {
                "id": 62053271,
                "title": "You",
                "cover": "ab127c0a-5b92-4fab-8f18-4f2db6ff7bb7",
                "vibrantColor": "#FFFFFF",
                "videoCover": null
            },
            "mixes": {}
        },
        {
            "id": 62053277,
            "title": "Seattle",
            "duration": 208,
            "replayGain": -12.28,
            "peak": 0.974456,
            "allowStreaming": true,
            "streamReady": true,
            "streamStartDate": "2016-06-24T00:00:00.000+0000",
            "premiumStreamingOnly": false,
            "trackNumber": 6,
            "volumeNumber": 1,
            "version": null,
            "popularity": 0,
            "copyright": "2016 Young Culture",
            "url": "http://www.tidal.com/track/62053277",
            "isrc": "USDY41658858",
            "editable": false,
            "explicit": false,
            "audioQuality": "LOSSLESS",
            "audioModes": [
                "STEREO"
            ],
            "artist": {
                "id": 7923949,
                "name": "Young Culture",
                "type": "MAIN",
                "picture": null
            },
            "artists": [
                {
                    "id": 7923949,
                    "name": "Young Culture",
                    "type": "MAIN",
                    "picture": null
                }
            ],
            "album": {
                "id": 62053271,
                "title": "You",
                "cover": "ab127c0a-5b92-4fab-8f18-4f2db6ff7bb7",
                "vibrantColor": "#FFFFFF",
                "videoCover": null
            },
            "mixes": {}
        },
        {
            "id": 62053278,
            "title": "Fidelity",
            "duration": 203,
            "replayGain": -12.28,
            "peak": 0.974456,
            "allowStreaming": true,
            "streamReady": true,
            "streamStartDate": "2016-06-24T00:00:00.000+0000",
            "premiumStreamingOnly": false,
            "trackNumber": 7,
            "volumeNumber": 1,
            "version": null,
            "popularity": 0,
            "copyright": "2016 Young Culture",
            "url": "http://www.tidal.com/track/62053278",
            "isrc": "USDY41658859",
            "editable": false,
            "explicit": false,
            "audioQuality": "LOSSLESS",
            "audioModes": [
                "STEREO"
            ],
            "artist": {
                "id": 7923949,
                "name": "Young Culture",
                "type": "MAIN",
                "picture": null
            },
            "artists": [
                {
                    "id": 7923949,
                    "name": "Young Culture",
                    "type": "MAIN",
                    "picture": null
                }
            ],
            "album": {
                "id": 62053271,
                "title": "You",
                "cover": "ab127c0a-5b92-4fab-8f18-4f2db6ff7bb7",
                "vibrantColor": "#FFFFFF",
                "videoCover": null
            },
            "mixes": {}
        },
        {
            "id": 62053279,
            "title": "Every Night",
            "duration": 277,
            "replayGain": -12.28,
            "peak": 0.974456,
            "allowStreaming": true,
            "streamReady": true,
            "streamStartDate": "2016-06-24T00:00:00.000+0000",
            "premiumStreamingOnly": false,
            "trackNumber": 8,
            "volumeNumber": 1,
            "version": null,
            "popularity": 0,
            "copyright": "2016 Young Culture",
            "url": "http://www.tidal.com/track/62053279",
            "isrc": "USDY41658860",
            "editable": false,
            "explicit": false,
            "audioQuality": "LOSSLESS",
            "audioModes": [
                "STEREO"
            ],
            "artist": {
                "id": 7923949,
                "name": "Young Culture",
                "type": "MAIN",
                "picture": null
            },
            "artists": [
                {
                    "id": 7923949,
                    "name": "Young Culture",
                    "type": "MAIN",
                    "picture": null
                }
            ],
            "album": {
                "id": 62053271,
                "title": "You",
                "cover": "ab127c0a-5b92-4fab-8f18-4f2db6ff7bb7",
                "vibrantColor": "#FFFFFF",
                "videoCover": null
            },
            "mixes": {}
        }
    ]
}

I’m not sure if there’s a way to search by UPC, but maybe support for seeding releases with a Tidal link/id could be doable as the API returns useful info like the UPC and ISRCs. It’s a bit of a shame a-tisket is closed source because I wouldn’t mind helping out implement things like these.

I’m still pretty new to MB so if there’s a tool that can already seed releases via Tidal please let me know!

6 Likes

The closest we have is Xythium’s TIDAL importer, which doesn’t have a mechanism for adding releases to MB.

3 Likes

Huh, cool. I was going to say that the X-Tidal-Token header makes it seem like authentication is still needed, but it sounds from https://github.com/spencercharest/tidal-api/issues/12 like the token that you mentioned has been working since May 2020 (if not earlier), so it’s probably reasonably safe to depend on it.

Does Tidal carry much in the way of material that can’t be seeded from somewhere else? If so, I’d be willing to add support for seeding releases from there using yambs. (I don’t do much/any streaming, so I haven’t used Tidal since they shut their store down last year.)

2 Likes

Yes. They have exclusive versions of albums in Master Quality Audio (MQA) that can’t be streamed elsewhere.

3 Likes

Makes sense. Pulling data from Tidal is pretty easy, so I’ll check in basic support soon (as tracked here). People seem to have strong opinions about how streaming data should be represented in MusicBrainz (particularly around release countries), so I’m open to adding more features if people ask for them. :slight_smile:

4 Likes

yambs.erat.org should understand Tidal album URLs now. Please file bugs, suggestions, etc. at https://github.com/derat/yambs/issues, and apologies for the thread hijack.

5 Likes

If you could pull countries, that’d be great. I still think this info should go in the annotation, but not the release country lists.

4 Likes

The command-line program (but not the web server) will query all countries when -country XW is passed now, and it’ll add a brief annotation listing the countries where the full tracklist is available if there are 10 or fewer of them: Support multi-country Tidal lookups · Issue #18 · derat/yambs · GitHub

2 Likes

I know atisket is in ‘holding mode’, but sneaky feature request:

Can it auto-set Apple Music links to ‘streaming’? Everything I’ve ever added this would save me the same two clicks. (On rare occasions a user may have to change it)

Yes, it can… and that’s what it already does by default ever since the URL format was changed from iTunes to Apple Music links :smile:
You only have to add “purchase for download” manually if the Apple Music page says “Also available in the iTunes store”, but I guess only few people actually do this.

4 Likes

Oh man, my brain is sludge, apparently! A sludgy mess! This was revisiting some work I was doing during the holidays, adding heaps of stuff with atisket.

I now realise that I actually wanted it to set the artist Apple relationship to ‘streaming’ automatically… thanks @kellnerd

It does this too, if you click through from the complementary links page.

3 Likes

giphy

6 Likes

Currently getting “No Spotify data: Server has invalid Spotify API key.” Not sure if this resolves it’s self on it’s own or something you have to fix.

2 Likes

That issue seems to be resolved now :tada:

2 Likes

You’re right! Seems to be working. Back to working on adding I guess!

1 Like

I’m getting error 500 when searching for releases now, been going for a few hours.

EDIT: wait, no. it’s just one release that points to a spotify URL that doesn’t go anywhere. (yet)

Example, try searching for this url: http://open.spotify.com/album/asdaffsasafasffafaffas
all you get is a blank page.

The site isnt broken but searching for something that doesn’t exist can lead to some confusing results.

1 Like

That looks like someone drumming on the keyboard with their left hand… doubt that is a real URL

1 Like

You’re right, it’s not. It does fit the criteria of a spotify URL format though, it has the right amount of alpha numeric characters and that’s why I used it as an example.

The actual url is an album that’s not released yet but it will be soon so it will be less useful as an example after that happens. here it is: http://open.spotify.com/album/2Wwhe7cVW1IZzU09jwJECh

both links leads to the same “page not found”-page on spotify and produces the same blank screen on a-tisket. (but that will change)

I pasted in the URL without checking if the link led anywhere and i thought the website was broken until i realized my mistake.

2 Likes

Has anyone else that Spotify has stopped providing UPCs to a-tisket? For every release I’ve seeded today, I’ve had to go into Xythium’s TIDAL importer, look up the release there and copy and paste the UPC I find there into a-tisket to get more comprehensive results.