Djam36
@Djam36

Spotify — получение текущего трека без постоянных запросов к API?

Привет, пытаюсь освоить GO да и в целом укрепить знания в программирование, хочу сделать возможность получение текущего проигрываемого трека из Spotify. Делается у них это по запросу
https://api.spotify.com/v1/me/player/currently-playing

Он возвращает JSON где есть необходимая информация, меня интересует Artist.
Т.е нужно каждый раз слать GET к API что бы получить инфу о том какой трек играет, для меня это выглядит как минимум глупо и мне кажется есть более какой-то элегантный способ получения этой информации, т.е например пользователь сменил трек, мы полезли за JSON.. вот вопрос как это сделать не понятно, я нашел например софтину на просторах Github называется она Snip, она примерно по такому принципу работает, посмотрев исходные коды, я так понял там идет работа с самим процессом SPOTIFY на компе...
Может есть у кого мысли как можно это реализовать? Буду весьма благодарен за наставления на путь истинный!
  • Вопрос задан
  • 353 просмотра
Пригласить эксперта
Ответы на вопрос 2
VlastV
@VlastV
Ведущий разработчик – практик
Spotify не поддерживает stream данных, т.е. получить событие о смене трека вы не можете используя API.
По этому, если использовать API вам ничего не остается, как с какой-то периодичностью допустимой для Sprotify опрашивать ресурс currently-playing.

Snip работает с приложением, и считывает данные с него, это не работа с API, и программирование совсем другого уровня.
Ответ написан
myrkoxx
@myrkoxx
developer
В json-response есть поле "progress_ms" - которое отображает сколько времени трека уже прошло, также в поле item есть "duration_ms" - которое отображает длину трека. Далее математика 1‐го класса:
"duration_ms" - "progress_ms" = время через которое трек сам переключиться
Можно отправлять запрос через ето время. Да, если пользователь сам переключит раньше этого вы не узнаете, но это лучше чем спамить запросами каждых N секунд.

https://developer.spotify.com/documentation/web-ap...
https://developer.spotify.com/documentation/web-ap...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы