有没有办法使用 Spotify JAVA API 获取 Spotify 播放列表中曲目的曲目 ID?

Is there a way to get track IDs of the tracks in a Spotify playlist using the Spotify JAVA API?

我一直在为 Spotify API 使用 Java 包装器。我已成功检索到所需的播放列表,但无法获取播放列表中曲目的曲目 ID。

这是我用来获取播放列表项的代码。

playlistID = "37i9dQZF1DWXLeA8Omikj7";


        getPlaylistsItemsRequest = spotifyApi.getPlaylistsItems(playlistID).build();



        Paging<PlaylistTrack> playlistTrackPaging = getPlaylistsItems_Sync();
        PlaylistTrack[] items = playlistTrackPaging.getItems();

        System.out.println(items.length);
        for (int i = 0; i < items.length; i++) {
            System.out.println(items[i].getTrack().toString());
        }

以上代码给出了这种格式的输出:

com.wrapper.spotify.model_objects.specification.Track@6c40365c

不幸的是,最后的字母数字不是曲目 ID。

PlaylistTrack 对象似乎无法获取曲目 ID。任何人都知道我如何获得轨道 ID? 现在已经为此苦苦挣扎了一段时间。谢谢!

当然可以! :)

v6.0.0-RC1 of spotify-web-api-java the PlaylistTracks, which are returned by your request, now contain an IPlaylistItem instead of a simple Track due to changes related to the new podcasts API 以来,端点 return 类型取决于请求的上下文。

当前的解决方案是将项目转换为它们的预期类型。在您的示例中,for 循环中的 println 应如下所示:

System.out.println(((Track) items[i].getTrack()).getId());

根据传入的拉取请求,这可能会在未来得到改进:请参阅 the discussion in issue #201