getPlaylistTracks method

Future<List<Track>> getPlaylistTracks({
  1. required String playlistId,
  2. int offset = 0,
  3. int limit = 100,
})

Retrieves tracks from a given playlist.

playlistId is required. Supports pagination with offset and limit.

Implementation

Future<List<Track>> getPlaylistTracks({
  required String playlistId,
  int offset = 0,
  int limit = 100,
}) async {
  final url = Uri.https(
    _baseApiHost,
    '/v1/playlists/$playlistId/tracks',
    {
      'limit': limit.toString(),
      'offset': offset.toString(),
    },
  );

  final jsonResponse = await _getJson(url);
  final items = jsonResponse['items'] as List<dynamic>;

  return items
      .where((item) => item['track'] != null)
      .map((item) => Track.fromJson(item['track']))
      .toList();
}