<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_metadata( self, item='root', index=0, count=100, recursive=False):
 """Get metadata for a container or item. Args: item (str or MusicServiceItem):
 The container or item to browse given either as a MusicServiceItem instance or as a str. Defaults to the root item. index (int):
 The starting index. Default 0. count (int):
 The maximum number of items to return. Default 100. recursive (bool):
 Whether the browse should recurse into sub-items (Does not always work). Defaults to `False`. Returns: ~collections.OrderedDict: The item or container's metadata, or `None`. See also: The Sonos `getMetadata API <http://musicpartners.sonos.com/node/83>`_. """

        if isinstance(item, MusicServiceItem):
            item_id = item.id  # pylint: disable=no-member
        else:
            item_id = item
        response = self.soap_client.call(
            'getMetadata', [
                ('id', item_id),
                ('index', index), ('count', count),
                ('recursive', 1 if recursive else 0)]
        )
        return parse_response(self, response, 'browse')