code: def download(user, dl_type, name):
      
      username = user['username']
      user_id = user['id']
      logger.info(
          'Retrieving all {0} of user {1}...'.format(name, username)
      )
      dl_url = url[dl_type].format(user_id)
      logger.debug(dl_url)
      resources = client.get_collection(dl_url, token)
      del resources[:offset - 1]
      logger.debug(resources)
      total = len(resources)
      logger.info('Retrieved {0} {1}'.format(total, name))
      for counter, item in enumerate(resources, offset):
          try:
              logger.debug(item)
              logger.info('{0} n°{1} of {2}'.format(
                  name.capitalize(), counter, total)
              )
              if dl_type == 'all':
                  item_name = item['type'].split('-')[0]  # remove the '-repost'
                  uri = item[item_name]['uri']
                  parse_url(uri)
              elif dl_type == 'playlists':
                  download_playlist(item)
              elif dl_type == 'playlists-liked':
                  parse_url(item['playlist']['uri'])
              elif dl_type == 'commented':
                  item = get_track_info(item['track_id'])
                  download_track(item)
              else:
                  download_track(item)
          except Exception as e:
              logger.exception(e)
      logger.info('Downloaded all {0} {1} of user {2}!'.format(
          total, name, username)
      )
docs: Download user items of dl_type (ie. all, playlists, liked, commented, etc.)