A multi‐source seeder for digital releases

I was having the same issue yesterday but now I’m not. I think it’s an issue with a-tisket not being able to reach the API. I had the same issue a few days ago with Deezer and found out Deezer was out basically everywhere when I checked the server status for Deezer.

2 Likes

I’d be interested in hosting it on a faster server … how do I get in touch with you @marlonob?

4 Likes

You’re probably best off contacting him through MB. I don’t think he reads any of these messages; I managed to get ahold of him via the contact form several months back.

2 Likes

It be nice to have a copy on a different server, just in case. He hasn’t responded to any of my request in over 6 months and I’m worried that eventually this site will go down as he doesn’t seem to have the time or respond to new small fixes. (country lists, etc.)

4 Likes

I’ve found a copy of the zip file containing the a-tisket PHP code on an old laptop. I’ll look into whether it’s practical to set up a mirror on one of my servers over Christmas. I’m not sure how much the code has changed since it was made available so I can’t promise anything.

7 Likes

As promised I’ve set up a mirror based on the code that @marlonob shared some time ago:

It seems to work OK and feels a bit more responsive in my limited testing, but YMMV. I’ve performed a brief code review and found no significant server side security issues, however I think XSS would be fairly trivial if a malicious artist/release/track title was returned from the Deezer/Spotify/iTunes/MB APIs. Given that no confidential information is being submitted or stored by the app I feel this risk is acceptable (obviously I will endeavour to fix these issues as time permits).

At the time of writing I’ve made some minor changes and fixes to the code, which are as follows:

  • Updated the tatsumo submit ISRCs link.
  • Fixed the logo and favicon SVGs (never worked for me).
  • Changed the default search countries to “GB,US,DE”.
  • Changed the behaviour of the “Clear search form” button so that it no longer clears the “Preferred countries” text field.

As previously mentioned, I have no idea how much has changed since the the code was originally shared, so there may be issues / bugs present that have been fixed in the version hosted/run by @marlonob.

Full disclosure regarding data logging

Logs of all HTTP requests are stored for a period of 14 days for the purposes of investigating errors or abuse. The logs contain the following information:

  • IP address
  • User agent
  • Request path
  • Referrer

This information is not shared with anyone and no external analytics are performed. If you do not agree with this information being recorded then please do not use the site.

Please reply to this thread if you have any issues and I will do my best to resolve them.

12 Likes

There were a bunch of new countries added by Apple this year that were added to a-tisket. Not sure if that was before or after your copy.

1 Like

Country lookups via the Deezer API don’t seem to be working :frowning:

3 Likes

I also host a copy of this old version on my private little server (only available inside my local network, sorry) and the major feature that is missing is the detection of all available Deezer territories, it only uses Spotify’s 91 regions. It would be great if @marlonob could share the latest version of his code which includes this feature to avoid reengineering this function.

Edit: @HibiscusKazeneko was faster than me but I would like to add that this feature was also missing in the very first versions which were provided on marlonob’s server. The version of the code that was shared is from 2019-10-23T22:00:00Z and this feature was introduced around 2020-01-07T23:00:00Z:

3 Likes

Thanks for the reports @HibiscusKazeneko and @kellnerd. I’ve had a look at the Deezer API and I can see that country information is only returned by the track API endpoint, e.g.

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

The approach mentioned in the comment from @marlonob seems reasonable, so I’ll look at implementing that. I need to get a development environment set up first so bare with me (fortunately there is no database involved, which simplifies things). I may ask for some people to help with testing.

@tigerman325, can you give me an example of a release that is available in one of the new countries added by Apple this year?

3 Likes

New Apple Countries - https://www.apple.com/newsroom/2020/04/apple-services-now-available-in-more-countries-around-the-world/

New Spotify Countries - https://newsroom.spotify.com/2020-07-14/spotify-is-now-available-in-russia-croatia-ukraine-and-10-other-european-markets/

a-tisket was updated with all the countries here, with the exception of Serbia for iTunes/Apple Music. It was just an oversight by @marlonob, I’ve pointed this out twice since, to no response and no updates. He did update them in late July early August after the Spotify updates.

4 Likes

For some reason I’m still wide awake at 1am so I decided to fix the Deezer country lookup issue. It appears that Deezer has either added some additional countries recently (e.g. Antarctica) or they were just overlooked by @marlonob. You can see there is a slightly larger number of excluded countries displayed when loaded into my hosted version:

In any case, the available countries are identical, and that’s what matters.

5 Likes

Thanks for the info. I’ll look at updating the countries for iTunes and Spotify tomorrow.

1 Like

Deezer actually hasn’t added any countries officially. There are a handful of countries that pop up in the Deezer APIs as release countries that are NOT officially available in Deezer. I wouldn’t add them as available. None of which have any significant or any population (except India, which for some reason is not officially available by Deezer). I would not add these as they are not listed on Deezer’s available list. They just show up on the APIs. They are as follows: American Samoa, Antarctica, Bonaire, Sint Eustatius and Saba, Bouvet Island, Cuba, Curaçao, Guam, Heard Island and McDonald Islands, India, Iran, Netherlands Antilles, Myanmar, North Korea, Northern Mariana Islands, Sint Maarten (Dutch part), South Georgia and the South Sandwich Islands, South Sudan, Sudan, Syria, U.S. Virgin Islands, United States Minor Outlying Islands. I wouldn’t add any of these as the APIs will add them when they are available there, but I wouldn’t want to say a release wasn’t available in country x, when the services isn’t even officially available there. This is the current Deezer list: https://developers.deezer.com/guidelines/countries

3 Likes

Thanks @tigerman325. I’ve updated the Deezer and Spotify country lists.

Unfortunately I can’t seem to find a parseable list for iTunes at the moment, and manually updating the list based on a press release is a chore (I added Serbia just for you though!). If anyone knows where there is a nicely formatted list then let me know!

2 Likes

@atj Do you plan to publish your changes to the code on e.g. GitHub so that we do not run into the same dead end again as soon as you might not have the time to keep a-tisket updated either :innocent:

5 Likes

@kellnerd, I’d be happy to share the code but there are a couple of things that concern me at the moment:

  1. As far as I can tell the code was not released with any license. We need @marlonob to explicitly state that he is happy for the code to be shared publicly and under what conditions.
  2. I’m concerned there could be some security issues lurking in the code, and whilst “security through obscurity” is not a sustainable approach, it does increase the effort required to find/exploit any issues.

I will be adding the code to git, so I could create a private repository on Github and give up to 3 people access to it (AFAIU this is the limit for free accounts). Obviously I would request that you don’t then share the code publicly until we have some clarity on licensing etc. If you’re happy with this then send me your Github username.

8 Likes

I know a bit about security, so if you want to do a code audit before releasing the code, hmu on github

4 Likes

Many thanks for the offer @Maks, I’ve given you access to the repo on GitHub. The code is not the best but it is reasonably readable. At this stage I’m primarily concerned with server side issues such as local file inclusion or RCE via unserialisation in the caching functionality. Client side issues such as XSS are not really a high priority right now.

Alright, I will check the code tomorrow then :slight_smile:

2 Likes