code: def _music_lib_search(self, search, start, max_items):
          
          response = self.contentDirectory.Browse([
              ('ObjectID', search),
              ('BrowseFlag', 'BrowseDirectChildren'),
              ('Filter', '*'),
              ('StartingIndex', start),
              ('RequestedCount', max_items),
              ('SortCriteria', '')
          ])
  
          # Get result information
          metadata = {}
          for tag in ['NumberReturned', 'TotalMatches', 'UpdateID']:
              metadata[camel_to_underscore(tag)] = int(response[tag])
          return response, metadata
docs: Perform a music library search and extract search numbers.
  
          You can get an overview of all the relevant search prefixes (like
          'A:') and their meaning with the request:
  
          .. code ::
  
           response = device.contentDirectory.Browse([
               ('ObjectID', '0'),
               ('BrowseFlag', 'BrowseDirectChildren'),
               ('Filter', '*'),
               ('StartingIndex', 0),
               ('RequestedCount', 100),
               ('SortCriteria', '')
           ])
  
          Args:
              search (str): The ID to search.
              start (int): The index of the forst item to return.
              max_items (int): The maximum number of items to return.
  
          Returns:
              tuple: (response, metadata) where response is the returned metadata
                  and metadata is a dict with the 'number_returned',
                  'total_matches' and 'update_id' integers