Мне нужно обновлять базу данных с содержимым плейлиста.
Я использую 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;