Неожиданные результаты при получении содержимого плейлиста Spotify

Мне нужно обновлять базу данных с содержимым плейлиста.

Я использую C# Wrapper для API libspotify — http://libspotify-sharp.hallerud.se/

Мой рабочий процесс в настоящее время выглядит следующим образом

Войдите в систему, дождитесь загрузки контейнера плейлиста, при загрузке прослушайте события загрузки плейлиста, когда загружается интересующий меня плейлист, дождитесь загрузки всех дорожек в плейлисте, а затем запишите содержимое в db.

Я полностью очищаю каталог кеша каждый раз при запуске программы.

Я обнаружил, что это работает нормально и, как и ожидалось, большую часть времени, а затем при удалении некоторых дорожек в обычном клиенте Spotify, кажется, что дорожки по-прежнему возвращаются API, даже если их больше нет (я очищаю каталог кеша, так что они должны быть?).

Кто-нибудь знает, что может быть причиной этого?

ОБНОВИТЬ

Я обнаружил, что API, похоже, возвращает информацию, отличную от той, которую можно просмотреть в клиенте. Я запускал консольное приложение с разных компьютеров, и удаленные треки все еще возвращаются. Обычный клиент Spotify не показывает их, также проверен на нескольких компьютерах. В моем приложении я вхожу в систему, жду, пока списки воспроизведения полностью загрузятся, а затем выхожу, это приложение находится в запланированной задаче.

ОБНОВЛЕНИЕ 2

В настоящее время я жду, пока

(playlist.IsLoaded == true && 
playlist.CurrentTracks.All(x => x.IsLoaded && x.Artists.Count() > 0))

с использованием

session.OnMetaDataUpdated += HandleOnMetaUpdated;

а также

playlist.OnMetadataUpdated += PlaylistMetaUpdated;

person Tom    schedule 27.03.2012    source источник


Ответы (1)


Если серверная часть плейлиста работает медленно, может пройти некоторое время, прежде чем изменения, сделанные в клиенте, попадут в серверную часть Spotify. Только после того, как они окажутся в бэкэнде, изменения перейдут к другим клиентам.

person iKenndac    schedule 27.03.2012
comment
Немного обновил свой вопрос. Когда вы говорите о бэкэнде, вы имеете в виду обычный клиент Windows? Некоторые треки я удалил в пятницу, и они все еще возвращаются через 3 дня. Меня интересует, как устранить неполадки дальше. - person Tom; 27.03.2012
comment
Нет, под бэкендом я подразумеваю серверы Spotify. Вы можете перепроверить, установив клиент Spotify на новый компьютер и посмотреть, что он отображает для ваших плейлистов. Кроме того, имейте в виду, что изменения плейлиста отправляются в libSpotify как дельты, поэтому вы можете просматривать список до того, как будет получена дельта Удалить эти треки. В sp_playlistcontainer есть API для проверки происходящего. - person iKenndac; 28.03.2012
comment
Клиент Spotify показывает список воспроизведения с треками, удаленными на нескольких компьютерах, в то время как консольное приложение показывает, что они все еще существуют на нескольких компьютерах. Какие вызовы API мне нужно использовать? Снова обновил вопрос, указав именно то, что я сейчас использую для проверки. - person Tom; 28.03.2012
comment
В настоящее время я жду, пока (playlist.IsLoaded == true && playlist.CurrentTracks.All(x => x.IsLoaded && x.Artists.Count() › 0)) с использованием session.OnMetaDataUpdated += HandleOnMetaUpdated; и playlist.OnMetadataUpdated += PlaylistMetaUpdated; - person Tom; 28.03.2012
comment
Разобрался... с приложением все в порядке, клиент скрывал треки, так как они не воспроизводились в моем регионе. Спасибо за вашу помощь! - person Tom; 28.03.2012