Feedback and support thread for the Pulsewidth a-tisket instance

I think I found a small bug:

If I want to add My Way by Usher via https://atisket.pulsewidth.org.uk/?spf_id=0fQdoem8dnrl80YcZzQ8f0&preferred_countries=GB%2CUS%2CDE%2CNL it gives the wrong track count for Itunes (26 instead of 10).
I guess it’s because on the iTunes page, there is a ‘other version’ of the album listed with 16 tracks (10 + 16 = 26).

You need to enter the ID of the Apple Music/iTunes release you want in those cases. If you’re going off just a UPC/EAN, the iTunes API will return the combined tracklists of all versions of the release you’re looking for.

AFAIK the source was available at some point, but it has no license applied, so technically most part of it are copyrighted by the original author and not open source. That’s why the source is kept private currently.

2 Likes

Ok, didn’t know the API worked like that.

The first album id 1601580585 is correct for US.
The latter, 1580682281, automatically redirects to the first for US users.
Check the source code of us/album/1580682281 and you’ll see

playParams: {id: "1601580585", kind: "album"}
recordLabel: "KAMITSUBAKI RECORD"
releaseDate: "2021-12-18"
trackCount: 10
upc: "4542114979958"
url: "https://music.apple.com/us/album/kaf-you-kafu-compilation-album/1601580585"

I don’t know if 1580682281 is deperated or only available to certain markets (at least not for JP).

To illustrate this behavior more precisely, I’d like to present you:
cn/album/1633408719

recordLabel: "JVR MUSIC INTERNATIONAL LTD."
releaseDate: "2022-10-01"
trackCount: 12
upc: "4711448408667"
url: "https://music.apple.com/cn/album/.../1633408719"

tw/album/1633408719 & tw/album/1632190508

recordLabel: "JVR MUSIC INTERNATIONAL LTD."
releaseDate: "2022-07-15"
trackCount: 12
upc: "4711448408629"
url: "https://music.apple.com/tw/album/.../1632190508"

This UPC difference is the reason I added disambiguation texts iTunes XX and Sony for them in https://musicbrainz.org/release-group/8770e36c-464b-47ea-9a62-862025d27bf8

2 Likes

Sorry for double posting, but it seems there are several, at least 2, atiskets?

Apparently it adds or make editors add relationships to special purpose artists like Various Artists: Edit #70441290 - MusicBrainz

Could you blacklist some artist MBID and never submit any relationship edits to them?

It’s not possible to add links to SPAs. In that edit you linked, I created a dummy artist so I could add the link and later merged the dummy into the VA MBID. I realize now that this might not have been a good course of action. I do agree that a-tisket should not suggest complementary links for SPAs, to prevent other editors from doing what I did.

4 Likes

a useful feature to add might be to determine if a release has versions with different scripts (track titles or release title). for example, this Apple Music release on the US and Japanese store respectively (note the same ID):

if a release has different scripts in different markets, in theory it should have multiple releases for each, if I’m not mistaken. this feature would help find such releases and which regions apply.


as a sidenote, it seems https://d.ontun.es/ might be broken? I think someone along the line is adding hyphens to the ISRCs, at least for this release. I don’t know where the right place to report this issue is though…

3 Likes

I checked on the spotify api and the hyphens are in the ISRC’s in spotify, I have seen that once or twice before.

1 Like

I usually try to force a specific script by setting JP as the only region and ignoring deezer and spotify at the bottom.

I think this used to work but… Ive seen releases getting the correct JP track names but the wrong release/release group names. Here’s an example: Don’t Force the Vocal to Sing Like This. by t+pazolite & ななひら | a‐tisket: A multi‐source seeder for MusicBrainz

Is it just me or did this use to work? Not mix the languages?

Now I notice that the iTunes page gives me the url with the English title despite it being the Japanese page when I click the link to iTunes on tisket: ‎t+pazolite & ななひらの「ボーカルに無茶させんな - Single」をApple Musicで

1 Like

I use the ToadKing script on JP Apple Music link and it almost always has the Japanese script on the Japanese based releases. I then just copy & paste from there. That is weird that a-tisket is changing the title, but not the tracks. It shouldn’t do either. Also, why not check that iTunes box and get all the countries that the release is actually in and not just JP? You don’t have to add them as release events, but it’s good information for the annotation and leave the release country blank. It’s not a JP only release. It’s worldwide, except for China. As far as the iTunes page showing English title, you probably have translate all Japanese titles on your browser. It shows Japanese script when I look at it. Or if you are talking about the URL itself, that doesn’t matter really, because MB removes the titles of releases from the URLs and they still work.

1 Like

My current method is not to do the worldwide iTunes search because that won’t match the metadata I get from spotify. Just do JP iTunes+spotify will get me the JP metadata as a release and it counts as “worldwide” for spotify and it reflects where you can get the music with these track names etc. Also I exclude deezer cause that’s the wild west when it comes to data and availability…

After that’s done i tend to a 2nd search for the latin script releases.

Should those have the transliterated relationship BTW or is that only for fan-translated pseudo releases? Style / Language / Transliterations - MusicBrainz

Also I found a dark-themed userstyle for a-tisket: userstyles/dark-tisket.user.css at main · kellnerd/userstyles · GitHub Install here: https://github.com/kellnerd/userstyles/raw/main/dark-tisket.user.css

This is why I don’t get down to this level of adding differences on digital releases. Spotify sometimes has the Japanese scripts on JP releases, even here in the US when I look at them. Sometimes they don’t. I don’t set up releases with different scripts as that’s up to your personal local settings and not the release many times. Deezer almost always is correct on dates when the others aren’t, so including them will get you the correct dates, most of the time. Technically, any transliterations that are “official” due to a different link, like having JP in the Apple Music URL as opposed to US are not pseudo-releases, but you can add them as a separate official release, even everything else is the same. I’d keep them identical in the metadata outside of the scripts or language and just add a disambiguation as to “official transliteration” or similar on the US versions of JP releases. I personally look at the ISRCs and use that as what official link I use. If it has JP ISRCs, then the JP Apple Music link is used, and so on. So, for this release I normally only add the JP release.

This is a Worldwide release as a-tisket says it’s Worldwide, except China (Don’t Force the Vocal to Sing Like This. by T+pazolite & Nanahira | a‐tisket: A multi‐source seeder for MusicBrainz). However, a quick look at the Deezer API shows it’s in China. https://api.deezer.com/track/2083618337 - shows CN as available. a-tisket is currently set up to omit any countries that aren’t on the distribution list that Deezer has on their site, so anytime a country comes up omitted I take a quick look at the Deezer API (Marlons’ a-tisket did this for you, but is now dead, unfortunately). Notice that it has to be on one of the tracks for the country list to show up there. Also, Deezer does have JP releases, but just like Apple Music, defaults unless you specify county in URL. For some odd reason, Deezer uses “JA” instead of “JP”, see this release here: https://www.deezer.com/ja/album/389976947. Yes, this is all confusing, which is why I base all my adds on the country of origin, but if one wants to separate out the different scripts into separate releases, you can always add both.

1 Like

yes, the transl(iter)ated relationship should be used for official transliterations too. for example, many classical releases have multilingual track lists such as this one.

3 Likes

Seems to not be finding Deezer countries from the API. When I go to the Deezer API, they show up, but a-tisket isn’t finding them. It finds the release, just not the countries.

https://api.deezer.com/track/78871347

1 Like

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