Как я могу получить доступ к обложке трека / альбома из локальной музыки из Spotify API?

Я создаю приложение с использованием Spotify API в качестве учебного проекта для себя. Цель приложения — предоставить удаленное управление через Интернет для Spotify, чтобы я мог управлять запущенным экземпляром Spotify на своем рабочем столе с телефона или планшета. Приложение Spotify общается с моим веб-сервером Python с помощью веб-сокетов, поэтому основные функции удаленного управления работают нормально, но у меня возникает отдельная проблема.

В приложении Spotify, когда оно обнаруживает локальный файл (player.track.local = true), player.track.image возвращает пустую строку . При воспроизведении трека, размещенного на Spotify, player.track.image всегда возвращает URI в виде «spotify: image: …». Я знаю, что приложение Spotify Desktop может видеть обложку альбома, потому что она отображается в проигрывателе слева внизу. Я просто не могу получить к нему доступ для использования в моем приложении.

Есть ли способ получить это искусство (или если это не путь к локальному файлу, поэтому Я могу получить его сам с сервера Python?) Спасибо.

-Jeremy


Вкратце: нет — обложка альбомов локальных файлов не сохраняется в бэкэнде, и клиент не предоставляет локальные данные.


Я подумал, что это так.

Поскольку у меня возникли другие проблемы с новым API (например, запрет на доступ к текущей информации о воспроизведении), я решил придерживаться старого API, и я смог заставить его работать оттуда. . Я воспользовался тем фактом, что плейлисты генерируют изображение обложки из своего содержимого, поэтому я просто сделал следующее:

(Я обновил это, чтобы отразить некоторое упрощение, которое я сделал, потратив некоторое время на изучение массивов сегодня)

  function getLocalArt () {sp.core.library.createPlaylist ("tempPL");  var mosaicURI;  var trackURI = player.track.uri;  sp.core.library.getPlaylistsUri (). forEach (function (p) {if (p.name == "tempPL") {p.add (trackURI); mosaicURI = p.cover; sp.core.library.removePlaylist (  p.uri);}});  вернуть mosaicURI;  }  

Это работает довольно хорошо для моих целей и возвращает строку, которая выглядит следующим образом:

spotify: mosaic: localfileimage% 3AZ% 253A% 255CiTunes% 255CiTunes% 2520Media% 255CMusic% 255CBroken% 2520Social% 2520Scene% 255CEarCande.com% 255CAll% 2520To% 2520All% 2520 (Skeet% 2520Skeet% 2520Remix) .mp3 > Это имеет дополнительное преимущество, так как предоставляет мне полный путь к треку в файловой системе, который я могу передать на свой сервер, чтобы использовать его для извлечения обложек альбомов для отображения на моем веб-пульте. Я понимаю, что использование sp.core запрещено для приложений, распространяемых среди общественности, но это работает для моего небольшого проекта. Спасибо.

Оцените статью
motary.ru
Добавить комментарий