Я создаю приложение с использованием 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
запрещено для приложений, распространяемых среди общественности, но это работает для моего небольшого проекта. Спасибо.