{"core.tracklist.index":{"params":[{"default":null,"name":"tl_track"},{"default":null,"name":"tlid"}],"description":"The position of the given track in the tracklist.\n\nIf neither *tl_track* or *tlid* is given we return the index of\nthe currently playing track.\n\n:param tl_track: the track to find the index of\n:type tl_track: :class:`mopidy.models.TlTrack` or :class:`None`\n:param tlid: TLID of the track to find the index of\n:type tlid: :class:`int` or :class:`None`\n:rtype: :class:`int` or :class:`None`\n\n.. versionadded:: 1.1\n    The *tlid* parameter"},"core.mixer.set_mute":{"params":[{"name":"mute"}],"description":"Set mute state.\n\n:class:`True` to mute, :class:`False` to unmute.\n\nReturns :class:`True` if call is successful, otherwise :class:`False`."},"core.playback.seek":{"params":[{"name":"time_position"}],"description":"Seeks to time position given in milliseconds.\n\n:param time_position: time position in milliseconds\n:type time_position: int\n:rtype: :class:`True` if successful, else :class:`False`"},"core.playback.pause":{"params":[],"description":"Pause playback."},"core.tracklist.shuffle":{"params":[{"default":null,"name":"start"},{"default":null,"name":"end"}],"description":"Shuffles the entire tracklist. If ``start`` and ``end`` is given only\nshuffles the slice ``[start:end]``.\n\nTriggers the :meth:`mopidy.core.CoreListener.tracklist_changed` event.\n\n:param start: position of first track to shuffle\n:type start: int or :class:`None`\n:param end: position after last track to shuffle\n:type end: int or :class:`None`"},"core.library.lookup":{"params":[{"default":null,"name":"uri"},{"default":null,"name":"uris"}],"description":"Lookup the given URIs.\n\nIf the URI expands to multiple tracks, the returned list will contain\nthem all.\n\n:param uri: track URI\n:type uri: string or :class:`None`\n:param uris: track URIs\n:type uris: list of string or :class:`None`\n:rtype: list of :class:`mopidy.models.Track` if uri was set or\n    {uri: list of :class:`mopidy.models.Track`} if uris was set.\n\n.. versionadded:: 1.0\n    The ``uris`` argument.\n\n.. deprecated:: 1.0\n    The ``uri`` argument. Use ``uris`` instead."},"core.tracklist.next_track":{"params":[{"name":"tl_track"}],"description":"The track that will be played if calling\n:meth:`mopidy.core.PlaybackController.next()`.\n\nFor normal playback this is the next track in the tracklist. If repeat\nis enabled the next track can loop around the tracklist. When random is\nenabled this should be a random track, all tracks should be played once\nbefore the tracklist repeats.\n\n:param tl_track: the reference track\n:type tl_track: :class:`mopidy.models.TlTrack` or :class:`None`\n:rtype: :class:`mopidy.models.TlTrack` or :class:`None`"},"core.tracklist.get_random":{"params":[],"description":"Get random mode.\n\n:class:`True`\n    Tracks are selected at random from the tracklist.\n:class:`False`\n    Tracks are played in the order of the tracklist."},"core.tracklist.get_length":{"params":[],"description":"Get length of the tracklist."},"core.tracklist.get_next_tlid":{"params":[],"description":"The tlid of the track that will be played if calling\n:meth:`mopidy.core.PlaybackController.next()`.\n\nFor normal playback this is the next track in the tracklist. If repeat\nis enabled the next track can loop around the tracklist. When random is\nenabled this should be a random track, all tracks should be played once\nbefore the tracklist repeats.\n\n:rtype: :class:`int` or :class:`None`\n\n.. versionadded:: 1.1"},"core.tracklist.previous_track":{"params":[{"name":"tl_track"}],"description":"Returns the track that will be played if calling\n:meth:`mopidy.core.PlaybackController.previous()`.\n\nFor normal playback this is the previous track in the tracklist. If\nrandom and/or consume is enabled it should return the current track\ninstead.\n\n:param tl_track: the reference track\n:type tl_track: :class:`mopidy.models.TlTrack` or :class:`None`\n:rtype: :class:`mopidy.models.TlTrack` or :class:`None`"},"core.tracklist.add":{"params":[{"default":null,"name":"tracks"},{"default":null,"name":"at_position"},{"default":null,"name":"uri"},{"default":null,"name":"uris"}],"description":"Add tracks to the tracklist.\n\nIf ``uri`` is given instead of ``tracks``, the URI is looked up in the\nlibrary and the resulting tracks are added to the tracklist.\n\nIf ``uris`` is given instead of ``uri`` or ``tracks``, the URIs are\nlooked up in the library and the resulting tracks are added to the\ntracklist.\n\nIf ``at_position`` is given, the tracks are inserted at the given\nposition in the tracklist. If ``at_position`` is not given, the tracks\nare appended to the end of the tracklist.\n\nTriggers the :meth:`mopidy.core.CoreListener.tracklist_changed` event.\n\n:param tracks: tracks to add\n:type tracks: list of :class:`mopidy.models.Track` or :class:`None`\n:param at_position: position in tracklist to add tracks\n:type at_position: int or :class:`None`\n:param uri: URI for tracks to add\n:type uri: string or :class:`None`\n:param uris: list of URIs for tracks to add\n:type uris: list of string or :class:`None`\n:rtype: list of :class:`mopidy.models.TlTrack`\n\n.. versionadded:: 1.0\n    The ``uris`` argument.\n\n.. deprecated:: 1.0\n    The ``tracks`` and ``uri`` arguments. Use ``uris``."},"core.tracklist.get_eot_tlid":{"params":[],"description":"The TLID of the track that will be played after the current track.\n\nNot necessarily the same TLID as returned by :meth:`get_next_tlid`.\n\n:rtype: :class:`int` or :class:`None`\n\n.. versionadded:: 1.1"},"core.playlists.save":{"params":[{"name":"playlist"}],"description":"Save the playlist.\n\nFor a playlist to be saveable, it must have the ``uri`` attribute set.\nYou must not set the ``uri`` atribute yourself, but use playlist\nobjects returned by :meth:`create` or retrieved from :attr:`playlists`,\nwhich will always give you saveable playlists.\n\nThe method returns the saved playlist. The return playlist may differ\nfrom the saved playlist. E.g. if the playlist name was changed, the\nreturned playlist may have a different URI. The caller of this method\nmust throw away the playlist sent to this method, and use the\nreturned playlist instead.\n\nIf the playlist's URI isn't set or doesn't match the URI scheme of a\ncurrent backend, nothing is done and :class:`None` is returned.\n\n:param playlist: the playlist\n:type playlist: :class:`mopidy.models.Playlist`\n:rtype: :class:`mopidy.models.Playlist` or :class:`None`"},"core.playlists.get_playlists":{"params":[{"default":true,"name":"include_tracks"}],"description":"Get the available playlists.\n\n:rtype: list of :class:`mopidy.models.Playlist`\n\n.. versionchanged:: 1.0\n    If you call the method with ``include_tracks=False``, the\n    :attr:`~mopidy.models.Playlist.last_modified` field of the returned\n    playlists is no longer set.\n\n.. deprecated:: 1.0\n    Use :meth:`as_list` and :meth:`get_items` instead."},"core.library.get_distinct":{"params":[{"name":"field"},{"default":null,"name":"query"}],"description":"List distinct values for a given field from the library.\n\nThis has mainly been added to support the list commands the MPD\nprotocol supports in a more sane fashion. Other frontends are not\nrecommended to use this method.\n\n:param string field: One of ``track``, ``artist``, ``albumartist``,\n    ``album``, ``composer``, ``performer``, ``date`` or ``genre``.\n:param dict query: Query to use for limiting results, see\n    :meth:`search` for details about the query format.\n:rtype: set of values corresponding to the requested field type.\n\n.. versionadded:: 1.0"},"core.playback.set_state":{"params":[{"name":"new_state"}],"description":"Set the playback state.\n\nMust be :attr:`PLAYING`, :attr:`PAUSED`, or :attr:`STOPPED`.\n\nPossible states and transitions:\n\n.. digraph:: state_transitions\n\n    \"STOPPED\" -> \"PLAYING\" [ label=\"play\" ]\n    \"STOPPED\" -> \"PAUSED\" [ label=\"pause\" ]\n    \"PLAYING\" -> \"STOPPED\" [ label=\"stop\" ]\n    \"PLAYING\" -> \"PAUSED\" [ label=\"pause\" ]\n    \"PLAYING\" -> \"PLAYING\" [ label=\"play\" ]\n    \"PAUSED\" -> \"PLAYING\" [ label=\"resume\" ]\n    \"PAUSED\" -> \"STOPPED\" [ label=\"stop\" ]"},"core.tracklist.set_single":{"params":[{"name":"value"}],"description":"Set single mode.\n\n:class:`True`\n    Playback is stopped after current song, unless in ``repeat`` mode.\n:class:`False`\n    Playback continues after current song."},"core.playlists.refresh":{"params":[{"default":null,"name":"uri_scheme"}],"description":"Refresh the playlists in :attr:`playlists`.\n\nIf ``uri_scheme`` is :class:`None`, all backends are asked to refresh.\nIf ``uri_scheme`` is an URI scheme handled by a backend, only that\nbackend is asked to refresh. If ``uri_scheme`` doesn't match any\ncurrent backend, nothing happens.\n\n:param uri_scheme: limit to the backend matching the URI scheme\n:type uri_scheme: string"},"core.library.refresh":{"params":[{"default":null,"name":"uri"}],"description":"Refresh library. Limit to URI and below if an URI is given.\n\n:param uri: directory or track URI\n:type uri: string"},"core.playback.get_state":{"params":[],"description":"Get The playback state."},"core.playback.play":{"params":[{"default":null,"name":"tl_track"},{"default":null,"name":"tlid"}],"description":"Play the given track, or if the given tl_track and tlid is\n:class:`None`, play the currently active track.\n\nNote that the track **must** already be in the tracklist.\n\n:param tl_track: track to play\n:type tl_track: :class:`mopidy.models.TlTrack` or :class:`None`\n:param tlid: TLID of the track to play\n:type tlid: :class:`int` or :class:`None`"},"core.playback.get_stream_title":{"params":[],"description":"Get the current stream title or :class:`None`."},"core.tracklist.remove":{"params":[{"default":null,"name":"criteria"},{"name":"kwargs","kwargs":true}],"description":"Remove the matching tracks from the tracklist.\n\nUses :meth:`filter()` to lookup the tracks to remove.\n\nTriggers the :meth:`mopidy.core.CoreListener.tracklist_changed` event.\n\n:param criteria: on or more criteria to match by\n:type criteria: dict\n:rtype: list of :class:`mopidy.models.TlTrack` that was removed\n\n.. deprecated:: 1.1\n    Providing the criteria  via ``kwargs``."},"core.playback.get_current_tlid":{"params":[],"description":"Get the currently playing or selected TLID.\n\nExtracted from :meth:`get_current_tl_track` for convenience.\n\nReturns a :class:`int` or :class:`None`.\n\n.. versionadded:: 1.1"},"core.playback.get_current_tl_track":{"params":[],"description":"Get the currently playing or selected track.\n\nReturns a :class:`mopidy.models.TlTrack` or :class:`None`."},"core.playback.get_volume":{"params":[],"description":".. deprecated:: 1.0\n    Use :meth:`core.mixer.get_volume()\n    <mopidy.core.MixerController.get_volume>` instead."},"core.tracklist.get_single":{"params":[],"description":"Get single mode.\n\n:class:`True`\n    Playback is stopped after current song, unless in ``repeat`` mode.\n:class:`False`\n    Playback continues after current song."},"core.history.get_length":{"params":[],"description":"Get the number of tracks in the history.\n\n:returns: the history length\n:rtype: int"},"core.mixer.get_volume":{"params":[],"description":"Get the volume.\n\nInteger in range [0..100] or :class:`None` if unknown.\n\nThe volume scale is linear."},"core.tracklist.set_consume":{"params":[{"name":"value"}],"description":"Set consume mode.\n\n:class:`True`\n    Tracks are removed from the tracklist when they have been played.\n:class:`False`\n    Tracks are not removed from the tracklist."},"core.playlists.lookup":{"params":[{"name":"uri"}],"description":"Lookup playlist with given URI in both the set of playlists and in any\nother playlist sources. Returns :class:`None` if not found.\n\n:param uri: playlist URI\n:type uri: string\n:rtype: :class:`mopidy.models.Playlist` or :class:`None`"},"core.tracklist.get_previous_tlid":{"params":[],"description":"Returns the TLID of the track that will be played if calling\n:meth:`mopidy.core.PlaybackController.previous()`.\n\nFor normal playback this is the previous track in the tracklist. If\nrandom and/or consume is enabled it should return the current track\ninstead.\n\n:rtype: :class:`int` or :class:`None`\n\n.. versionadded:: 1.1"},"core.library.browse":{"params":[{"name":"uri"}],"description":"Browse directories and tracks at the given ``uri``.\n\n``uri`` is a string which represents some directory belonging to a\nbackend. To get the intial root directories for backends pass\n:class:`None` as the URI.\n\nReturns a list of :class:`mopidy.models.Ref` objects for the\ndirectories and tracks at the given ``uri``.\n\nThe :class:`~mopidy.models.Ref` objects representing tracks keep the\ntrack's original URI. A matching pair of objects can look like this::\n\n    Track(uri='dummy:/foo.mp3', name='foo', artists=..., album=...)\n    Ref.track(uri='dummy:/foo.mp3', name='foo')\n\nThe :class:`~mopidy.models.Ref` objects representing directories have\nbackend specific URIs. These are opaque values, so no one but the\nbackend that created them should try and derive any meaning from them.\nThe only valid exception to this is checking the scheme, as it is used\nto route browse requests to the correct backend.\n\nFor example, the dummy library's ``/bar`` directory could be returned\nlike this::\n\n    Ref.directory(uri='dummy:directory:/bar', name='bar')\n\n:param string uri: URI to browse\n:rtype: list of :class:`mopidy.models.Ref`\n\n.. versionadded:: 0.18"},"core.playlists.delete":{"params":[{"name":"uri"}],"description":"Delete playlist identified by the URI.\n\nIf the URI doesn't match the URI schemes handled by the current\nbackends, nothing happens.\n\n:param uri: URI of the playlist to delete\n:type uri: string"},"core.playback.next":{"params":[],"description":"Change to the next track.\n\nThe current playback state will be kept. If it was playing, playing\nwill continue. If it was paused, it will still be paused, etc."},"core.tracklist.slice":{"params":[{"name":"start"},{"name":"end"}],"description":"Returns a slice of the tracklist, limited by the given start and end\npositions.\n\n:param start: position of first track to include in slice\n:type start: int\n:param end: position after last track to include in slice\n:type end: int\n:rtype: :class:`mopidy.models.TlTrack`"},"core.tracklist.get_repeat":{"params":[],"description":"Get repeat mode.\n\n:class:`True`\n    The tracklist is played repeatedly.\n:class:`False`\n    The tracklist is played once."},"core.playlists.create":{"params":[{"name":"name"},{"default":null,"name":"uri_scheme"}],"description":"Create a new playlist.\n\nIf ``uri_scheme`` matches an URI scheme handled by a current backend,\nthat backend is asked to create the playlist. If ``uri_scheme`` is\n:class:`None` or doesn't match a current backend, the first backend is\nasked to create the playlist.\n\nAll new playlists must be created by calling this method, and **not**\nby creating new instances of :class:`mopidy.models.Playlist`.\n\n:param name: name of the new playlist\n:type name: string\n:param uri_scheme: use the backend matching the URI scheme\n:type uri_scheme: string\n:rtype: :class:`mopidy.models.Playlist` or :class:`None`"},"core.playback.get_current_track":{"params":[],"description":"Get the currently playing or selected track.\n\nExtracted from :meth:`get_current_tl_track` for convenience.\n\nReturns a :class:`mopidy.models.Track` or :class:`None`."},"core.tracklist.get_version":{"params":[],"description":"Get the tracklist version.\n\nInteger which is increased every time the tracklist is changed. Is not\nreset before Mopidy is restarted."},"core.tracklist.move":{"params":[{"name":"start"},{"name":"end"},{"name":"to_position"}],"description":"Move the tracks in the slice ``[start:end]`` to ``to_position``.\n\nTriggers the :meth:`mopidy.core.CoreListener.tracklist_changed` event.\n\n:param start: position of first track to move\n:type start: int\n:param end: position after last track to move\n:type end: int\n:param to_position: new position for the tracks\n:type to_position: int"},"core.tracklist.get_consume":{"params":[],"description":"Get consume mode.\n\n:class:`True`\n    Tracks are removed from the tracklist when they have been played.\n:class:`False`\n    Tracks are not removed from the tracklist."},"core.playback.set_volume":{"params":[{"name":"volume"}],"description":".. deprecated:: 1.0\n    Use :meth:`core.mixer.set_volume()\n    <mopidy.core.MixerController.set_volume>` instead."},"core.playback.stop":{"params":[],"description":"Stop playing."},"core.playlists.get_items":{"params":[{"name":"uri"}],"description":"Get the items in a playlist specified by ``uri``.\n\nReturns a list of :class:`~mopidy.models.Ref` objects referring to the\nplaylist's items.\n\nIf a playlist with the given ``uri`` doesn't exist, it returns\n:class:`None`.\n\n:rtype: list of :class:`mopidy.models.Ref`, or :class:`None`\n\n.. versionadded:: 1.0"},"core.tracklist.get_tl_tracks":{"params":[],"description":"Get tracklist as list of :class:`mopidy.models.TlTrack`."},"core.tracklist.get_tracks":{"params":[],"description":"Get tracklist as list of :class:`mopidy.models.Track`."},"core.library.search":{"params":[{"default":null,"name":"query"},{"default":null,"name":"uris"},{"default":false,"name":"exact"},{"name":"kwargs","kwargs":true}],"description":"Search the library for tracks where ``field`` contains ``values``.\n\nIf ``uris`` is given, the search is limited to results from within the\nURI roots. For example passing ``uris=['file:']`` will limit the search\nto the local backend.\n\nExamples::\n\n    # Returns results matching 'a' in any backend\n    search({'any': ['a']})\n\n    # Returns results matching artist 'xyz' in any backend\n    search({'artist': ['xyz']})\n\n    # Returns results matching 'a' and 'b' and artist 'xyz' in any\n    # backend\n    search({'any': ['a', 'b'], 'artist': ['xyz']})\n\n    # Returns results matching 'a' if within the given URI roots\n    # \"file:///media/music\" and \"spotify:\"\n    search({'any': ['a']}, uris=['file:///media/music', 'spotify:'])\n\n    # Returns results matching artist 'xyz' and 'abc' in any backend\n    search({'artist': ['xyz', 'abc']})\n\n:param query: one or more queries to search for\n:type query: dict\n:param uris: zero or more URI roots to limit the search to\n:type uris: list of string or :class:`None`\n:param exact: if the search should use exact matching\n:type exact: :class:`bool`\n:rtype: list of :class:`mopidy.models.SearchResult`\n\n.. versionadded:: 1.0\n    The ``exact`` keyword argument, which replaces :meth:`find_exact`.\n\n.. deprecated:: 1.0\n    Previously, if the query was empty, and the backend could support\n    it, all available tracks were returned. This has not changed, but\n    it is strongly discouraged. No new code should rely on this\n    behavior.\n\n.. deprecated:: 1.1\n    Providing the search query via ``kwargs`` is no longer supported."},"core.mixer.get_mute":{"params":[],"description":"Get mute state.\n\n:class:`True` if muted, :class:`False` unmuted, :class:`None` if\nunknown."},"core.tracklist.clear":{"params":[],"description":"Clear the tracklist.\n\nTriggers the :meth:`mopidy.core.CoreListener.tracklist_changed` event."},"core.playback.get_mute":{"params":[],"description":".. deprecated:: 1.0\n    Use :meth:`core.mixer.get_mute()\n    <mopidy.core.MixerController.get_mute>` instead."},"core.playlists.filter":{"params":[{"default":null,"name":"criteria"},{"name":"kwargs","kwargs":true}],"description":"Filter playlists by the given criterias.\n\nExamples::\n\n    # Returns track with name 'a'\n    filter({'name': 'a'})\n\n    # Returns track with URI 'xyz'\n    filter({'uri': 'xyz'})\n\n    # Returns track with name 'a' and URI 'xyz'\n    filter({'name': 'a', 'uri': 'xyz'})\n\n:param criteria: one or more criteria to match by\n:type criteria: dict\n:rtype: list of :class:`mopidy.models.Playlist`\n\n.. deprecated:: 1.0\n    Use :meth:`as_list` and filter yourself."},"core.playlists.as_list":{"params":[],"description":"Get a list of the currently available playlists.\n\nReturns a list of :class:`~mopidy.models.Ref` objects referring to the\nplaylists. In other words, no information about the playlists' content\nis given.\n\n:rtype: list of :class:`mopidy.models.Ref`\n\n.. versionadded:: 1.0"},"core.library.find_exact":{"params":[{"default":null,"name":"query"},{"default":null,"name":"uris"},{"name":"kwargs","kwargs":true}],"description":"Search the library for tracks where ``field`` is ``values``.\n\n.. deprecated:: 1.0\n    Use :meth:`search` with ``exact`` set."},"core.tracklist.set_random":{"params":[{"name":"value"}],"description":"Set random mode.\n\n:class:`True`\n    Tracks are selected at random from the tracklist.\n:class:`False`\n    Tracks are played in the order of the tracklist."},"core.playback.resume":{"params":[],"description":"If paused, resume playing the current track."},"core.playback.get_time_position":{"params":[],"description":"Get time position in milliseconds."},"core.library.get_images":{"params":[{"name":"uris"}],"description":"Lookup the images for the given URIs\n\nBackends can use this to return image URIs for any URI they know about\nbe it tracks, albums, playlists... The lookup result is a dictionary\nmapping the provided URIs to lists of images.\n\nUnknown URIs or URIs the corresponding backend couldn't find anything\nfor will simply return an empty list for that URI.\n\n:param uris: list of URIs to find images for\n:type uris: list of string\n:rtype: {uri: tuple of :class:`mopidy.models.Image`}\n\n.. versionadded:: 1.0"},"core.tracklist.filter":{"params":[{"default":null,"name":"criteria"},{"name":"kwargs","kwargs":true}],"description":"Filter the tracklist by the given criterias.\n\nA criteria consists of a model field to check and a list of values to\ncompare it against. If the model field matches one of the values, it\nmay be returned.\n\nOnly tracks that matches all the given criterias are returned.\n\nExamples::\n\n    # Returns tracks with TLIDs 1, 2, 3, or 4 (tracklist ID)\n    filter({'tlid': [1, 2, 3, 4]})\n\n    # Returns track with URIs 'xyz' or 'abc'\n    filter({'uri': ['xyz', 'abc']})\n\n    # Returns track with a matching TLIDs (1, 3 or 6) and a\n    # matching URI ('xyz' or 'abc')\n    filter({'tlid': [1, 3, 6], 'uri': ['xyz', 'abc']})\n\n:param criteria: on or more criteria to match by\n:type criteria: dict, of (string, list) pairs\n:rtype: list of :class:`mopidy.models.TlTrack`\n\n.. deprecated:: 1.1\n    Providing the criteria via ``kwargs``."},"core.get_uri_schemes":{"params":[],"description":"Get list of URI schemes we can handle"},"core.mixer.set_volume":{"params":[{"name":"volume"}],"description":"Set the volume.\n\nThe volume is defined as an integer in range [0..100].\n\nThe volume scale is linear.\n\nReturns :class:`True` if call is successful, otherwise :class:`False`."},"core.playback.previous":{"params":[],"description":"Change to the previous track.\n\nThe current playback state will be kept. If it was playing, playing\nwill continue. If it was paused, it will still be paused, etc."},"core.tracklist.eot_track":{"params":[{"name":"tl_track"}],"description":"The track that will be played after the given track.\n\nNot necessarily the same track as :meth:`next_track`.\n\n:param tl_track: the reference track\n:type tl_track: :class:`mopidy.models.TlTrack` or :class:`None`\n:rtype: :class:`mopidy.models.TlTrack` or :class:`None`"},"core.history.get_history":{"params":[],"description":"Get the track history.\n\nThe timestamps are milliseconds since epoch.\n\n:returns: the track history\n:rtype: list of (timestamp, :class:`mopidy.models.Ref`) tuples"},"core.playback.set_mute":{"params":[{"name":"mute"}],"description":".. deprecated:: 1.0\n    Use :meth:`core.mixer.set_mute()\n    <mopidy.core.MixerController.set_mute>` instead."},"core.get_version":{"params":[],"description":"Get version of the Mopidy core API"},"core.tracklist.set_repeat":{"params":[{"name":"value"}],"description":"Set repeat mode.\n\nTo repeat a single track, set both ``repeat`` and ``single``.\n\n:class:`True`\n    The tracklist is played repeatedly.\n:class:`False`\n    The tracklist is played once."}}