Executando verificação de segurança...
10

Spotify decide fazer algumas mudanças em suas APIs

Há mais ou menos um mês eu estive trabalhando em um projeto que dependia muito da API do Spotify, especificamente a API Audio Features, que traz informações sobre as músicas como tempo, tom, "humor", entre outras análises bem interessantes. O sentido do meu app era essa API em específico e sem ela, ele perde quase que todo o sentido.

Não sei se vocês viram a notícia de que o Spotify tinha acabado com versão pirata.

No dia 27 de Novembro eu estava testando o app pra fazer o lançamento de uma versão alpha, pra depois reunir algumas pessoas e testar ele pra valer quando a API principal começa a retornar 403. Eu fiquei penando por horar pra entender o por que: Gerei o client secret novamente, tentei fazer a requisição fora do app pelo Insomnia, etc.

Até que me deparo com essa notícia:Introducing some changes to our Web API

Simplesmente entre as APIs que foram descontinuadas, está a Audio Features. Meu projeto hoje se encontra em estado de espera, ou "parado".

Isso não só impactou projetos como o meu, mas também TCC de faculdade, tem muita gente que pode reprovar por causa disso pois seus projetos estavam usando as APIs que foram descontinuadas (Forum - Changes to Web API).

E bem, é isso, eu pensei em postar isso aqui pois não vi ninguém falando nada sobre. Estou a procura de APIs alternativas para meu app, se alguém souber...

Carregando publicação patrocinada...
3

Salve Diego,
Sinto muito pela situação que relatou :(

Não sei se vou conseguir te ajudar com isso mas aqui estão algumas ideias (vai que alguma delas funcione ¯_(ツ)_/¯)

  • Versões antigas da API do Spotify: Eu não conheço a fundo a API do Spotify, mas sei que geralmente no path é adicionada a versão da API (https://api.spotify.com/v2/path), você já tentou utilizar alguma versão anterior?
    Se a atualização foi na mesma versão, aí deu ruim mesmo :(

  • Deezer API: Não sei exatamente quais dados você precisa, mas existe a API do Deezer que retorna alguns dados das músicas também como bpm, duration (tempo, tom e 'humor' não encontrei) albuns, playlists, artistas, etc...
    Exemplo do response de uma track: https://api.deezer.com/track/3135556

{
  "id": "3135556",
  "readable": true,
  "title": "Harder, Better, Faster, Stronger",
  "title_short": "Harder, Better, Faster, Stronger",
  "title_version": "",
  "isrc": "GBDUW0000059",
  "link": "https://www.deezer.com/track/3135556",
  "share": "https://www.deezer.com/track/3135556?utm_source=deezer&utm_content=track-3135556&utm_term=0_1733232561&utm_medium=web",
  "duration": "226",
  "track_position": 4,
  "disk_number": 1,
  "rank": "807824",
  "release_date": "1900-01-01",
  "explicit_lyrics": false,
  "explicit_content_lyrics": 0,
  "explicit_content_cover": 0,
  "preview": "https://cdnt-preview.dzcdn.net/api/1/1/c/4/d/0/c4d7dbe3524ba59d2ad06d8cccd2484f.mp3?hdnea=exp=1733233461~acl=/api/1/1/c/4/d/0/c4d7dbe3524ba59d2ad06d8cccd2484f.mp3*~data=user_id=0,application_id=42~hmac=bdb6c2d8dc8b0b2a01506685bac8c77edd889002816c187a1aebbd02c430c6c5",
  "bpm": 0,
  "gain": -12.4,
  "available_countries": [
    "AE",
    "AF",
    "AG",
     ...
    "ZW"
  ],
  "contributors": [
    {
      "id": 27,
      "name": "Daft Punk",
      "link": "https://www.deezer.com/artist/27",
      "share": "https://www.deezer.com/artist/27?utm_source=deezer&utm_content=artist-27&utm_term=0_1733232561&utm_medium=web",
      "picture": "https://api.deezer.com/artist/27/image",
      "picture_small": "https://cdn-images.dzcdn.net/images/artist/f2bc007e9133c946ac3c3907ddc5d2ea/56x56-000000-80-0-0.jpg",
      "picture_medium": "https://cdn-images.dzcdn.net/images/artist/f2bc007e9133c946ac3c3907ddc5d2ea/250x250-000000-80-0-0.jpg",
      "picture_big": "https://cdn-images.dzcdn.net/images/artist/f2bc007e9133c946ac3c3907ddc5d2ea/500x500-000000-80-0-0.jpg",
      "picture_xl": "https://cdn-images.dzcdn.net/images/artist/f2bc007e9133c946ac3c3907ddc5d2ea/1000x1000-000000-80-0-0.jpg",
      "radio": true,
      "tracklist": "https://api.deezer.com/artist/27/top?limit=50",
      "type": "artist",
      "role": "Main"
    }
  ],
  "md5_image": "93b50f6ab0f44d53f8aee5ad207271ee",
  "track_token": "AAAAAWdPB7FnUCDxpGps9rCR9mJQq_Wiclkz0N8zvaB6nhN3JwzsXRcwIMNGgNlHw8e4Qc_D5tiK11P_dSyFHEBmzgZh2QR2Uhl8ESGN6Rrj7hSrsycfAa32S7IaOJDrCcyyHHDPdAebwHOGJ8kTZxCMmyoh8KPwqRaqwGwJlLOR8apxgi85xz2J3_ehwQxyp3xy6br1E9Ydm81kX1Gue1kbhtZme478kiqRGVbTYyxOynRy9OoGJae7YDm0aH00L464OjZNNBS76QQI6qUM4uMm4dsCmQ56WCQDeS0Kvim7O0GvAJ84fa-98Xk_vMxpz0TUd8iqPUCqpTPpOAxnQgju9BOR897NNr4",
  "artist": {
    "id": "27",
    "name": "Daft Punk",
    "link": "https://www.deezer.com/artist/27",
    "share": "https://www.deezer.com/artist/27?utm_source=deezer&utm_content=artist-27&utm_term=0_1733232561&utm_medium=web",
    "picture": "https://api.deezer.com/artist/27/image",
    "picture_small": "https://cdn-images.dzcdn.net/images/artist/f2bc007e9133c946ac3c3907ddc5d2ea/56x56-000000-80-0-0.jpg",
    "picture_medium": "https://cdn-images.dzcdn.net/images/artist/f2bc007e9133c946ac3c3907ddc5d2ea/250x250-000000-80-0-0.jpg",
    "picture_big": "https://cdn-images.dzcdn.net/images/artist/f2bc007e9133c946ac3c3907ddc5d2ea/500x500-000000-80-0-0.jpg",
    "picture_xl": "https://cdn-images.dzcdn.net/images/artist/f2bc007e9133c946ac3c3907ddc5d2ea/1000x1000-000000-80-0-0.jpg",
    "radio": true,
    "tracklist": "https://api.deezer.com/artist/27/top?limit=50",
    "type": "artist"
  },
  "album": {
    "id": "302127",
    "title": "Discovery",
    "link": "https://www.deezer.com/album/302127",
    "cover": "https://api.deezer.com/album/302127/image",
    "cover_small": "https://cdn-images.dzcdn.net/images/cover/93b50f6ab0f44d53f8aee5ad207271ee/56x56-000000-80-0-0.jpg",
    "cover_medium": "https://cdn-images.dzcdn.net/images/cover/93b50f6ab0f44d53f8aee5ad207271ee/250x250-000000-80-0-0.jpg",
    "cover_big": "https://cdn-images.dzcdn.net/images/cover/93b50f6ab0f44d53f8aee5ad207271ee/500x500-000000-80-0-0.jpg",
    "cover_xl": "https://cdn-images.dzcdn.net/images/cover/93b50f6ab0f44d53f8aee5ad207271ee/1000x1000-000000-80-0-0.jpg",
    "md5_image": "93b50f6ab0f44d53f8aee5ad207271ee",
    "release_date": "2001-03-07",
    "tracklist": "https://api.deezer.com/album/302127/tracks",
    "type": "album"
  },
  "type": "track"
}
{
	"song":
	{
		"id":"983pB",
		"title":"Highway to Hell",
		"uri":"https:\/\/getsongbpm.com\/song\/highway-to-hell\/983pB",
		"artist":{
			"id":"qB3",
			"name":"AC\/DC",
			"uri":"https:\/\/getsongbpm.com\/artist\/ac-dc\/qB3",
			"img":"https:\/\/lastfm-img2.akamaized.net\/i\/u\/d3f4e279a056464eb794710d8b4b69b7.png",
			"genres":[
				"heavy metal",
				"rock"
			],
			"from":"AU",
			"mbid":"66c662b6-6e2f-4930-8610-912e24c63ed1"
		},
		"tempo":"112",
		"time_sig":"4\/4",
		"key_of":"F\u266fm",
		"camelot":"11A"
	}
}
  • Outros serviços: talvez tenha outro serviço de API que você possa obter os dados que precisa.
    Link que lista as Top 29 APIs de Música para devs: https://publicapis.dev/category/music

Estou na torcida para que você consiga encontrar uma solução para seu projeto e quando conseguir, compartilhe com as outras pessoas, beleza?

Tamo junto!

2

Isso não só impactou projetos como o meu, mas também TCC de faculdade, tem muita gente que pode reprovar por causa disso pois seus projetos estavam usando as APIs que foram descontinuadas

E assim, as pessoas aprendem a não depender tanto de terceiros para o core de negócios, imagina quando a OpenAI fazer algo similar...

2

isso é aprendizado também para não se responsabilizar por integração de serviços e prazos de terceiros, se vc desenvolveu a integração, tem que estar vinculada a uma versão específica e ter documento de homologação pelo cliente pq se parar de funcionar a culpa não é sua e o cliente estava ciente dos riscos.

teve um cliente que o projeto atrasou 6 meses pq o fornecedor da api simplesmente não autorizava o uso em produção, o cliente quis aplicar multa na gente pelo atraso, mas tinhamos todas evidencias que nossa parte estava 100% funcional nos ambientes de teste em sandbox, aliado a isso após 6 meses ele conseguiu aprovação e em menos de 1 ano a api teve alterações bruscas que inviabilizou a atualização, e sem investimento o cliente fechou as portas por colocar no cerne da aplicação a dependencia de um terceiro.