Viperinius / jellyfin-plugin-spotify-import

Import playlists from Spotify in Jellyfin
GNU General Public License v3.0
29 stars 2 forks source link

Plugin not importing tracks, error. #1

Closed luki28 closed 1 year ago

luki28 commented 1 year ago

Hello, I have been trying to use your plugin, but I cant seem to get it to work. I set up the authorization as per your instructions and added a playlist ID.

image

When I run the scheduled task manually it fails. It does create the playlist with title and image, but no tracks are added:

image

Here is the corresponding part of the log:

[2023-04-15 11:04:17.910 +02:00] [INF] [68] Emby.Server.Implementations.HttpServer.WebSocketManager: WS "192.168.2.75" closed
[2023-04-15 11:04:20.574 +02:00] [INF] [55] Emby.Server.Implementations.HttpServer.WebSocketManager: WS "192.168.2.75" request
[2023-04-15 11:05:13.157 +02:00] [INF] [84] Emby.Server.Implementations.ScheduledTasks.TaskManager: Executing "Import Spotify playlists"
[2023-04-15 11:05:13.157 +02:00] [INF] [84] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyPlaylistProvider: Starting to query 1 playlists from "Spotify"
[2023-04-15 11:05:13.159 +02:00] [INF] [84] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: "GET" playlists/3FxYX8AaDH02XsLBGeqnc8 ["additional_types=track,episode"] null
[2023-04-15 11:05:14.635 +02:00] [INF] [85] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: --> OK "application/json" "{  \"collaborative\" : false,  \"description\" : \"\",  "
[2023-04-15 11:05:14.713 +02:00] [INF] [85] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: "GET" https://api.spotify.com/v1/playlists/3FxYX8AaDH02XsLBGeqnc8/tracks?offset=100&limit=100&additional_types=track%2Cepisode [""] null
[2023-04-15 11:05:15.449 +02:00] [INF] [60] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: --> OK "application/json" "{  \"href\" : \"https://api.spotify.com/v1/playlists/"
[2023-04-15 11:05:15.529 +02:00] [INF] [60] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: "GET" https://api.spotify.com/v1/playlists/3FxYX8AaDH02XsLBGeqnc8/tracks?offset=200&limit=100&additional_types=track%2Cepisode [""] null
[2023-04-15 11:05:16.170 +02:00] [INF] [8] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: --> OK "application/json" "{  \"href\" : \"https://api.spotify.com/v1/playlists/"
[2023-04-15 11:05:16.241 +02:00] [INF] [8] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: "GET" https://api.spotify.com/v1/playlists/3FxYX8AaDH02XsLBGeqnc8/tracks?offset=300&limit=100&additional_types=track%2Cepisode [""] null
[2023-04-15 11:05:16.778 +02:00] [INF] [84] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: --> OK "application/json" "{  \"href\" : \"https://api.spotify.com/v1/playlists/"
[2023-04-15 11:05:16.835 +02:00] [INF] [84] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: "GET" https://api.spotify.com/v1/playlists/3FxYX8AaDH02XsLBGeqnc8/tracks?offset=400&limit=100&additional_types=track%2Cepisode [""] null
[2023-04-15 11:05:17.538 +02:00] [INF] [84] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: --> OK "application/json" "{  \"href\" : \"https://api.spotify.com/v1/playlists/"
[2023-04-15 11:05:17.607 +02:00] [INF] [84] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: "GET" https://api.spotify.com/v1/playlists/3FxYX8AaDH02XsLBGeqnc8/tracks?offset=500&limit=100&additional_types=track%2Cepisode [""] null
[2023-04-15 11:05:18.133 +02:00] [INF] [60] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: --> OK "application/json" "{  \"href\" : \"https://api.spotify.com/v1/playlists/"
[2023-04-15 11:05:18.171 +02:00] [INF] [60] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: "GET" https://api.spotify.com/v1/playlists/3FxYX8AaDH02XsLBGeqnc8/tracks?offset=600&limit=100&additional_types=track%2Cepisode [""] null
[2023-04-15 11:05:18.909 +02:00] [INF] [60] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: --> OK "application/json" "{  \"href\" : \"https://api.spotify.com/v1/playlists/"
[2023-04-15 11:05:18.955 +02:00] [INF] [60] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: "GET" https://api.spotify.com/v1/playlists/3FxYX8AaDH02XsLBGeqnc8/tracks?offset=700&limit=100&additional_types=track%2Cepisode [""] null
[2023-04-15 11:05:19.508 +02:00] [INF] [84] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: --> OK "application/json" "{  \"href\" : \"https://api.spotify.com/v1/playlists/"
[2023-04-15 11:05:19.583 +02:00] [INF] [84] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: "GET" https://api.spotify.com/v1/playlists/3FxYX8AaDH02XsLBGeqnc8/tracks?offset=800&limit=100&additional_types=track%2Cepisode [""] null
[2023-04-15 11:05:20.212 +02:00] [INF] [62] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: --> OK "application/json" "{  \"href\" : \"https://api.spotify.com/v1/playlists/"
[2023-04-15 11:05:20.297 +02:00] [INF] [62] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: "GET" https://api.spotify.com/v1/playlists/3FxYX8AaDH02XsLBGeqnc8/tracks?offset=900&limit=100&additional_types=track%2Cepisode [""] null
[2023-04-15 11:05:20.765 +02:00] [INF] [62] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: --> OK "application/json" "{  \"href\" : \"https://api.spotify.com/v1/playlists/"
[2023-04-15 11:05:20.839 +02:00] [INF] [62] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: "GET" https://api.spotify.com/v1/playlists/3FxYX8AaDH02XsLBGeqnc8/tracks?offset=1000&limit=100&additional_types=track%2Cepisode [""] null
[2023-04-15 11:05:21.469 +02:00] [INF] [60] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: --> OK "application/json" "{  \"href\" : \"https://api.spotify.com/v1/playlists/"
[2023-04-15 11:05:21.533 +02:00] [INF] [60] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: "GET" https://api.spotify.com/v1/playlists/3FxYX8AaDH02XsLBGeqnc8/tracks?offset=1100&limit=100&additional_types=track%2Cepisode [""] null
[2023-04-15 11:05:22.196 +02:00] [INF] [62] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: --> OK "application/json" "{  \"href\" : \"https://api.spotify.com/v1/playlists/"
[2023-04-15 11:05:22.291 +02:00] [INF] [62] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: "GET" https://api.spotify.com/v1/playlists/3FxYX8AaDH02XsLBGeqnc8/tracks?offset=1200&limit=100&additional_types=track%2Cepisode [""] null
[2023-04-15 11:05:22.889 +02:00] [INF] [60] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: --> OK "application/json" "{  \"href\" : \"https://api.spotify.com/v1/playlists/"
[2023-04-15 11:05:22.937 +02:00] [INF] [60] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: "GET" https://api.spotify.com/v1/playlists/3FxYX8AaDH02XsLBGeqnc8/tracks?offset=1300&limit=100&additional_types=track%2Cepisode [""] null
[2023-04-15 11:05:23.635 +02:00] [INF] [84] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: --> OK "application/json" "{  \"href\" : \"https://api.spotify.com/v1/playlists/"
[2023-04-15 11:05:23.720 +02:00] [INF] [84] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: "GET" https://api.spotify.com/v1/playlists/3FxYX8AaDH02XsLBGeqnc8/tracks?offset=1400&limit=100&additional_types=track%2Cepisode [""] null
[2023-04-15 11:05:24.380 +02:00] [INF] [84] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: --> OK "application/json" "{  \"href\" : \"https://api.spotify.com/v1/playlists/"
[2023-04-15 11:05:24.472 +02:00] [INF] [84] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: "GET" https://api.spotify.com/v1/playlists/3FxYX8AaDH02XsLBGeqnc8/tracks?offset=1500&limit=100&additional_types=track%2Cepisode [""] null
[2023-04-15 11:05:25.189 +02:00] [INF] [85] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: --> OK "application/json" "{  \"href\" : \"https://api.spotify.com/v1/playlists/"
[2023-04-15 11:05:25.225 +02:00] [INF] [85] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: "GET" https://api.spotify.com/v1/playlists/3FxYX8AaDH02XsLBGeqnc8/tracks?offset=1600&limit=100&additional_types=track%2Cepisode [""] null
[2023-04-15 11:05:25.881 +02:00] [INF] [85] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: --> OK "application/json" "{  \"href\" : \"https://api.spotify.com/v1/playlists/"
[2023-04-15 11:05:25.957 +02:00] [INF] [85] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: "GET" https://api.spotify.com/v1/playlists/3FxYX8AaDH02XsLBGeqnc8/tracks?offset=1700&limit=100&additional_types=track%2Cepisode [""] null
[2023-04-15 11:05:26.374 +02:00] [INF] [11] Viperinius.Plugin.SpotifyImport.Spotify.SpotifyLogger: --> OK "application/json" "{  \"href\" : \"https://api.spotify.com/v1/playlists/"
[2023-04-15 11:05:26.484 +02:00] [ERR] [11] Emby.Server.Implementations.ScheduledTasks.TaskManager: Error
System.NullReferenceException: Object reference not set to an instance of an object.
   at Viperinius.Plugin.SpotifyImport.PlaylistSync.ItemMatchesTrackInfo(Audio audioItem, ProviderTrackInfo trackInfo)
   at Viperinius.Plugin.SpotifyImport.PlaylistSync.GetTrack(ProviderTrackInfo providerTrackInfo)
   at Viperinius.Plugin.SpotifyImport.PlaylistSync.FindTracksAndAddToPlaylist(Playlist playlist, List`1 providerTrackInfos, User user, CancellationToken cancellationToken)
   at Viperinius.Plugin.SpotifyImport.PlaylistSync.Execute(CancellationToken cancellationToken)
   at Viperinius.Plugin.SpotifyImport.Tasks.SpotifyImportTask.ExecuteAsync(IProgress`1 progress, CancellationToken cancellationToken)
   at Emby.Server.Implementations.ScheduledTasks.ScheduledTaskWorker.ExecuteInternal(TaskOptions options)
[2023-04-15 11:05:26.497 +02:00] [INF] [11] Emby.Server.Implementations.ScheduledTasks.TaskManager: "Import Spotify playlists" Failed after 0 minute(s) and 13 seconds
[2023-04-15 11:05:26.500 +02:00] [INF] [11] Emby.Server.Implementations.ScheduledTasks.TaskManager: ExecuteQueuedTasks
[2023-04-15 11:05:30.543 +02:00] [INF] [60] Emby.Server.Implementations.HttpServer.WebSocketManager: WS "192.168.2.75" closed
[2023-04-15 11:05:30.941 +02:00] [INF] [60] Emby.Server.Implementations.HttpServer.WebSocketManager: WS "192.168.2.75" request

Any idea why it is not working? Am I doing something wrong?

Viperinius commented 1 year ago

Based on the log it seems like one of the songs on your server might not have the metadata fields for album name, album artists or artists populated.

This should not lead to an exception of course. I will create a new release that should address this issue.

Viperinius commented 1 year ago

The fix is included in v1.1.0.0 which is available now. Could you try out if this version fixes the problem?

luki28 commented 1 year ago

Yes! Now it works like a charm. Thanks for the quick fix, much appreciated!

One other minor thing I noticed: The link in "How to get this value? Check here." under the Spotify Client ID leads to a 404 page.

Viperinius commented 1 year ago

Great to hear!

Thanks for the hint, seems like Spotify updated their docs.