Skip to content

Instantly share code, notes, and snippets.

@rgov

rgov/mopidy.log Secret

Created February 27, 2017 00:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rgov/8c646df1b31b3e7219021ca5ff63d279 to your computer and use it in GitHub Desktop.
Save rgov/8c646df1b31b3e7219021ca5ff63d279 to your computer and use it in GitHub Desktop.
2017-02-26 16:12:17,914 INFO [693:MainThread] mopidy.__main__: Starting Mopidy 2.1.0
2017-02-26 16:12:18,060 DEBUG [693:MainThread] mopidy.ext: Loading entry point: pandora = mopidy_pandora:Extension
2017-02-26 16:12:18,354 DEBUG [693:MainThread] mopidy.ext: Loaded extension: Mopidy-Pandora 0.3.0
2017-02-26 16:12:18,358 DEBUG [693:MainThread] mopidy.ext: Loading entry point: moped = mopidy_moped:MopedExtension
2017-02-26 16:12:18,362 DEBUG [693:MainThread] mopidy.ext: Loaded extension: Mopidy-Moped 0.7.0
2017-02-26 16:12:18,546 DEBUG [693:MainThread] mopidy.ext: Loaded extension: Mopidy-AlarmClock 0.1.6
2017-02-26 16:12:18,553 DEBUG [693:MainThread] mopidy.ext: Loading entry point: mpd = mopidy.mpd:Extension
2017-02-26 16:12:18,557 DEBUG [693:MainThread] mopidy.ext: Loaded extension: Mopidy-MPD 2.1.0
2017-02-26 16:12:18,557 DEBUG [693:MainThread] mopidy.ext: Loading entry point: http = mopidy.http:Extension
2017-02-26 16:12:18,561 DEBUG [693:MainThread] mopidy.ext: Loaded extension: Mopidy-HTTP 2.1.0
2017-02-26 16:12:18,561 DEBUG [693:MainThread] mopidy.ext: Loading entry point: stream = mopidy.stream:Extension
2017-02-26 16:12:18,564 DEBUG [693:MainThread] mopidy.ext: Loaded extension: Mopidy-Stream 2.1.0
2017-02-26 16:12:18,564 DEBUG [693:MainThread] mopidy.ext: Loading entry point: m3u = mopidy.m3u:Extension
2017-02-26 16:12:18,568 DEBUG [693:MainThread] mopidy.ext: Loaded extension: Mopidy-M3U 2.1.0
2017-02-26 16:12:18,568 DEBUG [693:MainThread] mopidy.ext: Loading entry point: softwaremixer = mopidy.softwaremixer:Extension
2017-02-26 16:12:18,572 DEBUG [693:MainThread] mopidy.ext: Loaded extension: Mopidy-SoftwareMixer 2.1.0
2017-02-26 16:12:18,572 DEBUG [693:MainThread] mopidy.ext: Loading entry point: file = mopidy.file:Extension
2017-02-26 16:12:18,575 DEBUG [693:MainThread] mopidy.ext: Loaded extension: Mopidy-File 2.1.0
2017-02-26 16:12:18,575 DEBUG [693:MainThread] mopidy.ext: Loading entry point: local = mopidy.local:Extension
2017-02-26 16:12:18,589 DEBUG [693:MainThread] mopidy.ext: Loaded extension: Mopidy-Local 2.1.0
2017-02-26 16:12:18,604 DEBUG [693:MainThread] mopidy.config.keyring: Fetching passwords from your keyring failed. Any passwords stored in the keyring will not be available. (dbus not installed)
2017-02-26 16:12:18,605 INFO [693:MainThread] mopidy.config: Loading config from builtin defaults
2017-02-26 16:12:18,615 INFO [693:MainThread] mopidy.config: Loading config from /etc/mopidy/mopidy.conf
2017-02-26 16:12:18,621 INFO [693:MainThread] mopidy.config: Loading config from command line options
2017-02-26 16:12:18,642 DEBUG [693:MainThread] mopidy.ext: Validating extension: pandora
2017-02-26 16:12:18,727 DEBUG [693:MainThread] mopidy.ext: Validating extension: moped
2017-02-26 16:12:18,757 DEBUG [693:MainThread] mopidy.ext: Validating extension: mpd
2017-02-26 16:12:18,761 DEBUG [693:MainThread] mopidy.ext: Validating extension: http
2017-02-26 16:12:18,765 DEBUG [693:MainThread] mopidy.ext: Validating extension: stream
2017-02-26 16:12:18,769 DEBUG [693:MainThread] mopidy.ext: Validating extension: m3u
2017-02-26 16:12:18,772 DEBUG [693:MainThread] mopidy.ext: Validating extension: softwaremixer
2017-02-26 16:12:18,776 DEBUG [693:MainThread] mopidy.ext: Validating extension: file
2017-02-26 16:12:18,780 DEBUG [693:MainThread] mopidy.ext: Validating extension: local
2017-02-26 16:12:18,784 INFO [693:MainThread] mopidy.__main__: Disabled extensions: none
2017-02-26 16:12:19,152 DEBUG [693:MainThread] mopidy.commands: Available Mopidy mixers: SoftwareMixer
2017-02-26 16:12:19,154 INFO [693:MainThread] mopidy.commands: Starting Mopidy mixer: SoftwareMixer
2017-02-26 16:12:19,156 DEBUG [693:MainThread] pykka: Registered SoftwareMixer (urn:uuid:4551f326-54fd-4205-938a-78497ce0ca44)
2017-02-26 16:12:19,157 DEBUG [693:MainThread] pykka: Starting SoftwareMixer (urn:uuid:4551f326-54fd-4205-938a-78497ce0ca44)
2017-02-26 16:12:19,161 DEBUG [693:MainThread] mopidy.commands: Mixer volume left unchanged
2017-02-26 16:12:19,162 INFO [693:MainThread] mopidy.commands: Starting Mopidy audio
2017-02-26 16:12:19,163 DEBUG [693:MainThread] pykka: Registered Audio (urn:uuid:27da3ae1-de13-4f4d-9d1a-081700dac954)
2017-02-26 16:12:19,164 DEBUG [693:MainThread] pykka: Starting Audio (urn:uuid:27da3ae1-de13-4f4d-9d1a-081700dac954)
2017-02-26 16:12:19,168 INFO [693:MainThread] mopidy.commands: Starting Mopidy backends: PandoraBackend, StreamBackend, M3UBackend, FileBackend, LocalBackend
2017-02-26 16:12:19,173 DEBUG [693:MainThread] requests.packages.urllib3.util.retry: Converted retries value: 3 -> Retry(total=3, connect=None, read=None, redirect=None)
2017-02-26 16:12:19,174 DEBUG [693:MainThread] requests.packages.urllib3.util.retry: Converted retries value: 3 -> Retry(total=3, connect=None, read=None, redirect=None)
2017-02-26 16:12:19,175 DEBUG [693:MainThread] pykka: Registered PandoraBackend (urn:uuid:c5c9f6fc-1d26-45cc-9a19-08ab3a7a2c6a)
2017-02-26 16:12:19,176 DEBUG [693:MainThread] pykka: Starting PandoraBackend (urn:uuid:c5c9f6fc-1d26-45cc-9a19-08ab3a7a2c6a)
2017-02-26 16:12:19,228 DEBUG [693:PandoraBackend-4] requests.packages.urllib3.connectionpool: Starting new HTTPS connection (1): tuner.pandora.com
2017-02-26 16:12:19,244 DEBUG [693:MainThread] pykka: Registered StreamBackend (urn:uuid:9b46c501-7b1e-4f66-8a46-29919cea227a)
2017-02-26 16:12:19,245 DEBUG [693:MainThread] pykka: Starting StreamBackend (urn:uuid:9b46c501-7b1e-4f66-8a46-29919cea227a)
2017-02-26 16:12:19,253 DEBUG [693:MainThread] pykka: Registered M3UBackend (urn:uuid:5ad6f4fc-dcde-41f7-aa18-049499e450be)
2017-02-26 16:12:19,254 DEBUG [693:MainThread] pykka: Starting M3UBackend (urn:uuid:5ad6f4fc-dcde-41f7-aa18-049499e450be)
2017-02-26 16:12:19,256 INFO [693:Audio-3] mopidy.audio.actor: Audio output set to "autoaudiosink"
2017-02-26 16:12:19,262 DEBUG [693:MainThread] mopidy.file.library: Failed expanding path ($XDG_MUSIC_DIR) from file/media_dirs config value.
2017-02-26 16:12:19,263 DEBUG [693:MainThread] pykka: Registered FileBackend (urn:uuid:5a1b8fae-3cce-4b1d-a258-e274ddc3e2ae)
2017-02-26 16:12:19,263 DEBUG [693:MainThread] pykka: Starting FileBackend (urn:uuid:5a1b8fae-3cce-4b1d-a258-e274ddc3e2ae)
2017-02-26 16:12:19,280 DEBUG [693:MainThread] mopidy.local.actor: Using json as the local library
2017-02-26 16:12:19,280 DEBUG [693:MainThread] mopidy.local.json: Loading library: /var/lib/mopidy/local/library.json.gz
2017-02-26 16:12:19,282 INFO [693:MainThread] mopidy.local.json: No local library metadata cache found at /var/lib/mopidy/local/library.json.gz. Please run `mopidy local scan` to index your local music library. If you do not have a local music collection, you can disable the local backend to hide this message.
2017-02-26 16:12:19,283 INFO [693:MainThread] mopidy.local.library: Loaded 0 local tracks using json
2017-02-26 16:12:19,284 DEBUG [693:MainThread] pykka: Registered LocalBackend (urn:uuid:67a92881-59c4-4714-ab8e-47ed4a8e343f)
2017-02-26 16:12:19,284 DEBUG [693:MainThread] pykka: Starting LocalBackend (urn:uuid:67a92881-59c4-4714-ab8e-47ed4a8e343f)
2017-02-26 16:12:19,703 DEBUG [693:PandoraBackend-4] requests.packages.urllib3.connectionpool: https://tuner.pandora.com:443 "POST /services/json/?method=auth.partnerLogin HTTP/1.1" 200 413
2017-02-26 16:12:19,817 DEBUG [693:PandoraBackend-4] requests.packages.urllib3.connectionpool: https://tuner.pandora.com:443 "POST /services/json/?auth_token=VAgbo63Bsyoic20uB3Q1uvrC2oI9C4qTvv&partner_id=42&method=auth.userLogin HTTP/1.1" 200 1046
2017-02-26 16:12:19,823 INFO [693:MainThread] mopidy.commands: Starting Mopidy core
2017-02-26 16:12:19,834 DEBUG [693:MainThread] pykka: Registered Core (urn:uuid:eaa65f29-6d46-429e-b1e7-2855fc668598)
2017-02-26 16:12:19,835 DEBUG [693:MainThread] pykka: Starting Core (urn:uuid:eaa65f29-6d46-429e-b1e7-2855fc668598)
2017-02-26 16:12:19,876 INFO [693:MainThread] mopidy.commands: Starting Mopidy frontends: PandoraFrontend, EventMonitorFrontend, MpdFrontend, HttpFrontend
2017-02-26 16:12:19,878 DEBUG [693:MainThread] pykka: Registered PandoraFrontend (urn:uuid:c89b4df1-1077-4f20-9789-b5c5e6565936)
2017-02-26 16:12:19,878 DEBUG [693:MainThread] pykka: Starting PandoraFrontend (urn:uuid:c89b4df1-1077-4f20-9789-b5c5e6565936)
2017-02-26 16:12:19,881 DEBUG [693:MainThread] pykka: Registered EventMonitorFrontend (urn:uuid:12e82d6c-fd2a-40ae-8521-34eb0354ec05)
2017-02-26 16:12:19,881 DEBUG [693:MainThread] pykka: Starting EventMonitorFrontend (urn:uuid:12e82d6c-fd2a-40ae-8521-34eb0354ec05)
2017-02-26 16:12:19,886 INFO [693:MainThread] mopidy.mpd.actor: MPD server running at [::ffff:127.0.0.1]:6600
2017-02-26 16:12:19,887 DEBUG [693:MainThread] pykka: Registered MpdFrontend (urn:uuid:38c1cc58-dd6d-44e1-9118-b0b25e6068bd)
2017-02-26 16:12:19,887 DEBUG [693:MainThread] pykka: Starting MpdFrontend (urn:uuid:38c1cc58-dd6d-44e1-9118-b0b25e6068bd)
2017-02-26 16:12:19,889 DEBUG [693:MpdFrontend-12] mopidy.zeroconf: Zeroconf service "None" (_mpd._tcp at []:6600): dbus not installed; publish failed.
2017-02-26 16:12:19,896 DEBUG [693:MainThread] mopidy.http.actor: Starting HTTP server
2017-02-26 16:12:19,897 DEBUG [693:MainThread] pykka: Registered HttpFrontend (urn:uuid:f6e629c8-a1a9-40c7-aac3-fa506c5c4b88)
2017-02-26 16:12:19,898 DEBUG [693:MainThread] pykka: Starting HttpFrontend (urn:uuid:f6e629c8-a1a9-40c7-aac3-fa506c5c4b88)
2017-02-26 16:12:19,899 INFO [693:MainThread] mopidy.commands: Starting GLib mainloop
2017-02-26 16:12:19,899 INFO [693:HttpFrontend-14] mopidy.http.actor: HTTP server running at [::ffff:0.0.0.0]:8080
2017-02-26 16:12:19,902 DEBUG [693:HttpFrontend-14] mopidy.zeroconf: Zeroconf service "None" (_http._tcp at []:8080): dbus not installed; publish failed.
2017-02-26 16:12:19,902 DEBUG [693:HttpServer] mopidy.http.actor: Loaded HTTP extension: mopidy
2017-02-26 16:12:19,903 DEBUG [693:HttpFrontend-14] mopidy.zeroconf: Zeroconf service "None" (_mopidy-http._tcp at []:8080): dbus not installed; publish failed.
2017-02-26 16:12:19,903 DEBUG [693:HttpServer] mopidy.http.actor: Loaded static HTTP extension: moped
2017-02-26 16:12:19,904 DEBUG [693:HttpServer] mopidy.http.actor: HTTP routes from extensions:
u'/mopidy': <class 'mopidy.http.handlers.AddSlashHandler'>
u'/mopidy/ws/?': <class 'mopidy.http.handlers.WebSocketHandler'>
u'/mopidy/rpc': <class 'mopidy.http.handlers.JsonRpcHandler'>
u'/mopidy/(.+)': <class 'mopidy.http.handlers.StaticFileHandler'>
u'/mopidy/': <class 'mopidy.http.handlers.ClientListHandler'>
u'/moped': <class 'mopidy.http.handlers.AddSlashHandler'>
u'/moped/(.*)': <class 'mopidy.http.handlers.StaticFileHandler'>
u'/': <class 'tornado.web.RedirectHandler'>
2017-02-26 16:12:41,028 INFO [693:HttpServer] tornado.access: 302 GET / (192.168.2.127) 4.14ms
2017-02-26 16:12:41,070 INFO [693:HttpServer] tornado.access: 304 GET /mopidy/mopidy.css (192.168.2.127) 37.46ms
2017-02-26 16:12:41,104 INFO [693:HttpServer] tornado.access: 200 GET /mopidy/ (192.168.2.127) 29.99ms
2017-02-26 16:12:42,911 INFO [693:HttpServer] tornado.access: 304 GET /moped/ (192.168.2.127) 6.59ms
2017-02-26 16:12:42,928 INFO [693:HttpServer] tornado.access: 304 GET /moped/assets/images/ajax-loader.gif (192.168.2.127) 6.90ms
2017-02-26 16:12:42,937 INFO [693:HttpServer] tornado.access: 304 GET /moped/assets/images/settings-icon.png (192.168.2.127) 5.99ms
2017-02-26 16:12:42,951 INFO [693:HttpServer] tornado.access: 304 GET /moped/assets/images/playlists-icon.png (192.168.2.127) 5.36ms
2017-02-26 16:12:43,085 INFO [693:HttpServer] tornado.access: 304 GET /moped/assets/images/radio-icon.png (192.168.2.127) 5.53ms
2017-02-26 16:12:43,100 INFO [693:HttpServer] tornado.access: 304 GET /moped/assets/fonts/glyphicons-halflings-regular.woff2 (192.168.2.127) 7.79ms
2017-02-26 16:12:43,117 INFO [693:HttpServer] tornado.access: 304 GET /moped/assets/css/moped-0.7.0.css (192.168.2.127) 15.37ms
2017-02-26 16:12:43,126 INFO [693:HttpServer] tornado.access: 304 GET /moped/assets/images/vinyl-icon.png (192.168.2.127) 6.12ms
2017-02-26 16:12:43,134 INFO [693:HttpServer] tornado.access: 304 GET /moped/assets/images/library-icon.png (192.168.2.127) 5.36ms
2017-02-26 16:12:43,140 INFO [693:HttpServer] tornado.access: 304 GET /moped/assets/images/search-icon.png (192.168.2.127) 3.52ms
2017-02-26 16:12:43,167 INFO [693:HttpServer] tornado.access: 304 GET /moped/assets/moped-0.7.0.js (192.168.2.127) 25.35ms
2017-02-26 16:12:44,115 DEBUG [693:HttpServer] mopidy.http.handlers: New WebSocket connection from 192.168.2.127
2017-02-26 16:12:44,137 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.describe","jsonrpc":"2.0","id":0}'
2017-02-26 16:12:44,153 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 0, "result": {"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.playlists.get_uri_schemes": {"params": [], "description": "Get the list of URI schemes that support playlists.\\n\\n:rtype: list of string\\n\\n.. versionadded:: 2.0"}, "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``field`` can be one of ``uri``, ``track_name``, ``album``, ``artist``,\\n``albumartist``, ``composer``, ``performer``, ``track_no``, ``genre``,\\n``date``, ``comment`` or ``any``.\\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."}}}'
2017-02-26 16:12:44,462 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.tracklist.get_tracks","jsonrpc":"2.0","id":1}'
2017-02-26 16:12:44,463 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 1, "result": []}'
2017-02-26 16:12:44,465 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.library.browse","params":{"uri":null},"jsonrpc":"2.0","id":2}'
2017-02-26 16:12:44,486 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 2, "result": [{"__model__": "Ref", "type": "directory", "name": "Files", "uri": "file:///var/lib/mopidy"}, {"__model__": "Ref", "type": "directory", "name": "Local media", "uri": "local:directory"}, {"__model__": "Ref", "type": "directory", "name": "Pandora", "uri": "pandora:directory"}]}'
2017-02-26 16:12:44,487 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playlists.as_list","jsonrpc":"2.0","id":3}'
2017-02-26 16:12:44,490 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 3, "result": [{"__model__": "Ref", "type": "playlist", "name": "kqed", "uri": "m3u:kqed.m3u"}, {"__model__": "Ref", "type": "playlist", "name": "pandora", "uri": "m3u:pandora.m3u"}]}'
2017-02-26 16:12:44,492 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playback.get_current_track","jsonrpc":"2.0","id":4}'
2017-02-26 16:12:44,493 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 4, "result": null}'
2017-02-26 16:12:44,494 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playback.get_state","jsonrpc":"2.0","id":5}'
2017-02-26 16:12:44,495 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 5, "result": "stopped"}'
2017-02-26 16:12:44,497 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.mixer.get_volume","jsonrpc":"2.0","id":6}'
2017-02-26 16:12:44,499 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 6, "result": 100}'
2017-02-26 16:12:44,500 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playback.get_state","jsonrpc":"2.0","id":7}'
2017-02-26 16:12:44,502 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 7, "result": "stopped"}'
2017-02-26 16:12:44,503 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.tracklist.get_random","jsonrpc":"2.0","id":8}'
2017-02-26 16:12:44,504 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 8, "result": false}'
2017-02-26 16:12:44,558 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playback.get_time_position","jsonrpc":"2.0","id":9}'
2017-02-26 16:12:44,559 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 9, "result": 0}'
2017-02-26 16:12:44,807 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playback.get_current_track","jsonrpc":"2.0","id":10}'
2017-02-26 16:12:44,809 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 10, "result": null}'
2017-02-26 16:12:48,428 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.library.browse","params":{"uri":"pandora:directory"},"jsonrpc":"2.0","id":11}'
2017-02-26 16:12:48,439 DEBUG [693:PandoraBackend-4] requests.packages.urllib3.connectionpool: Starting new HTTP connection (1): tuner.pandora.com
2017-02-26 16:12:48,814 DEBUG [693:PandoraBackend-4] requests.packages.urllib3.connectionpool: http://tuner.pandora.com:80 "POST /services/json/?partner_id=42&auth_token=VI2TnlPtssbF01UxLzGbVmdSMBa%2FvqZONh1MiUpMYnGNCBPo5VNKIR2A%3D%3D&user_id=1068846337&method=user.getStationList HTTP/1.1" 200 666
2017-02-26 16:12:48,824 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 11, "result": [{"__model__": "Ref", "type": "directory", "name": "Browse Genres", "uri": "pandora:genres"}, {"__model__": "Ref", "type": "directory", "name": "QuickMix (marked with *)", "uri": "pandora:station:3518796037289757953:3518796037289757953"}, {"__model__": "Ref", "type": "directory", "name": "Today\'s Alternative Radio*", "uri": "pandora:station:3518796032994790657:3518796032994790657"}]}'
2017-02-26 16:12:49,481 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.library.browse","params":{"uri":"pandora:station:3518796032994790657:3518796032994790657"},"jsonrpc":"2.0","id":12}'
2017-02-26 16:12:49,614 DEBUG [693:PandoraBackend-4] requests.packages.urllib3.connectionpool: https://tuner.pandora.com:443 "POST /services/json/?partner_id=42&auth_token=VI2TnlPtssbF01UxLzGbVmdSMBa%2FvqZONh1MiUpMYnGNCBPo5VNKIR2A%3D%3D&user_id=1068846337&method=station.getPlaylist HTTP/1.1" 200 6284
2017-02-26 16:12:49,764 DEBUG [693:PandoraBackend-4] requests.packages.urllib3.connectionpool: http://tuner.pandora.com:80 "POST /services/json/?partner_id=42&auth_token=VI2TnlPtssbF01UxLzGbVmdSMBa%2FvqZONh1MiUpMYnGNCBPo5VNKIR2A%3D%3D&user_id=1068846337&method=ad.getAdMetadata HTTP/1.1" 200 2008
2017-02-26 16:12:49,769 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 12, "result": [{"__model__": "Ref", "type": "track", "name": "7", "uri": "pandora:track:3518796032994790657:P8WajVuRJVZ7jbrDc_nke2JrmpYHZEXMk2u8oj2hGl1D1qPghWDNbUU3wcXM1O1n2g_2A6NjLUYyKjmbIZq8AjA"}]}'
2017-02-26 16:12:49,780 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.library.lookup","params":{"uri":"pandora:track:3518796032994790657:P8WajVuRJVZ7jbrDc_nke2JrmpYHZEXMk2u8oj2hGl1D1qPghWDNbUU3wcXM1O1n2g_2A6NjLUYyKjmbIZq8AjA"},"jsonrpc":"2.0","id":13}'
2017-02-26 16:12:49,782 INFO [693:PandoraBackend-4] mopidy_pandora.library: Looking up Pandora track pandora:track:3518796032994790657:P8WajVuRJVZ7jbrDc_nke2JrmpYHZEXMk2u8oj2hGl1D1qPghWDNbUU3wcXM1O1n2g_2A6NjLUYyKjmbIZq8AjA...
2017-02-26 16:12:49,786 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 13, "result": [{"album": {"images": ["http://mediaserver-cont-ch1-1-v4v6.pandora.com/images/public/rovi/albumart/0/9/6/3/602547863690_500W_500H.jpg"], "__model__": "Album", "name": "The Ride", "uri": "pandora:track:3518796032994790657:P8WajVuRJVZ7jbrDc_nke2JrmpYHZEXMk2u8oj2hGl1D1qPghWDNbUU3wcXM1O1n2g_2A6NjLUYyKjmbIZq8AjA"}, "__model__": "Track", "name": "7", "uri": "pandora:track:3518796032994790657:P8WajVuRJVZ7jbrDc_nke2JrmpYHZEXMk2u8oj2hGl1D1qPghWDNbUU3wcXM1O1n2g_2A6NjLUYyKjmbIZq8AjA", "length": 256000, "artists": [{"__model__": "Artist", "name": "Catfish & The Bottlemen", "uri": "pandora:track:3518796032994790657:P8WajVuRJVZ7jbrDc_nke2JrmpYHZEXMk2u8oj2hGl1D1qPghWDNbUU3wcXM1O1n2g_2A6NjLUYyKjmbIZq8AjA"}], "bitrate": 64}]}'
2017-02-26 16:12:50,506 DEBUG [693:HttpServer] mopidy.http.handlers: New WebSocket connection from 192.168.2.127
2017-02-26 16:12:50,512 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.describe","jsonrpc":"2.0","id":1081524}'
2017-02-26 16:12:50,528 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 1081524, "result": {"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.playlists.get_uri_schemes": {"params": [], "description": "Get the list of URI schemes that support playlists.\\n\\n:rtype: list of string\\n\\n.. versionadded:: 2.0"}, "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``field`` can be one of ``uri``, ``track_name``, ``album``, ``artist``,\\n``albumartist``, ``composer``, ``performer``, ``track_no``, ``genre``,\\n``date``, ``comment`` or ``any``.\\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."}}}'
2017-02-26 16:12:50,561 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playback.stop","jsonrpc":"2.0","id":14}'
2017-02-26 16:12:50,563 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 14, "result": null}'
2017-02-26 16:12:50,572 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.tracklist.clear","jsonrpc":"2.0","id":15}'
2017-02-26 16:12:50,573 DEBUG [693:Core-9] mopidy.core.tracklist: Triggering event: tracklist_changed()
2017-02-26 16:12:50,574 DEBUG [693:Core-9] mopidy.listener: Sending tracklist_changed to CoreListener: {}
2017-02-26 16:12:50,575 DEBUG [693:MpdFrontend-12] mopidy.listener: Sending playlist to MpdSession: {}
2017-02-26 16:12:50,578 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 15, "result": null}'
2017-02-26 16:12:50,580 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playback.stop","jsonrpc":"2.0","id":1081525}'
2017-02-26 16:12:50,582 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 1081525, "result": null}'
2017-02-26 16:12:50,583 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.tracklist.add","params":{"tracks":[{"album":{"images":["http://mediaserver-cont-ch1-1-v4v6.pandora.com/images/public/rovi/albumart/0/9/6/3/602547863690_500W_500H.jpg"],"__model__":"Album","name":"The Ride","uri":"pandora:track:3518796032994790657:P8WajVuRJVZ7jbrDc_nke2JrmpYHZEXMk2u8oj2hGl1D1qPghWDNbUU3wcXM1O1n2g_2A6NjLUYyKjmbIZq8AjA"},"__model__":"Track","name":"7","uri":"pandora:track:3518796032994790657:P8WajVuRJVZ7jbrDc_nke2JrmpYHZEXMk2u8oj2hGl1D1qPghWDNbUU3wcXM1O1n2g_2A6NjLUYyKjmbIZq8AjA","length":256000,"artists":[{"__model__":"Artist","name":"Catfish & The Bottlemen","uri":"pandora:track:3518796032994790657:P8WajVuRJVZ7jbrDc_nke2JrmpYHZEXMk2u8oj2hGl1D1qPghWDNbUU3wcXM1O1n2g_2A6NjLUYyKjmbIZq8AjA"}],"bitrate":64}]},"jsonrpc":"2.0","id":16}'
2017-02-26 16:12:50,585 DEBUG [693:Core-9] mopidy.core.tracklist: Triggering event: tracklist_changed()
2017-02-26 16:12:50,586 DEBUG [693:Core-9] mopidy.listener: Sending tracklist_changed to CoreListener: {}
2017-02-26 16:12:50,588 DEBUG [693:MpdFrontend-12] mopidy.listener: Sending playlist to MpdSession: {}
2017-02-26 16:12:50,591 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 16, "result": [{"track": {"album": {"images": ["http://mediaserver-cont-ch1-1-v4v6.pandora.com/images/public/rovi/albumart/0/9/6/3/602547863690_500W_500H.jpg"], "__model__": "Album", "name": "The Ride", "uri": "pandora:track:3518796032994790657:P8WajVuRJVZ7jbrDc_nke2JrmpYHZEXMk2u8oj2hGl1D1qPghWDNbUU3wcXM1O1n2g_2A6NjLUYyKjmbIZq8AjA"}, "__model__": "Track", "name": "7", "uri": "pandora:track:3518796032994790657:P8WajVuRJVZ7jbrDc_nke2JrmpYHZEXMk2u8oj2hGl1D1qPghWDNbUU3wcXM1O1n2g_2A6NjLUYyKjmbIZq8AjA", "length": 256000, "artists": [{"__model__": "Artist", "name": "Catfish & The Bottlemen", "uri": "pandora:track:3518796032994790657:P8WajVuRJVZ7jbrDc_nke2JrmpYHZEXMk2u8oj2hGl1D1qPghWDNbUU3wcXM1O1n2g_2A6NjLUYyKjmbIZq8AjA"}], "bitrate": 64}, "__model__": "TlTrack", "tlid": 1}]}'
2017-02-26 16:12:50,593 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.library.browse","params":{"uri":null},"jsonrpc":"2.0","id":1081526}'
2017-02-26 16:12:50,598 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 1081526, "result": [{"__model__": "Ref", "type": "directory", "name": "Files", "uri": "file:///var/lib/mopidy"}, {"__model__": "Ref", "type": "directory", "name": "Local media", "uri": "local:directory"}, {"__model__": "Ref", "type": "directory", "name": "Pandora", "uri": "pandora:directory"}]}'
2017-02-26 16:12:50,599 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.tracklist.get_tl_tracks","jsonrpc":"2.0","id":17}'
2017-02-26 16:12:50,602 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 17, "result": [{"track": {"album": {"images": ["http://mediaserver-cont-ch1-1-v4v6.pandora.com/images/public/rovi/albumart/0/9/6/3/602547863690_500W_500H.jpg"], "__model__": "Album", "name": "The Ride", "uri": "pandora:track:3518796032994790657:P8WajVuRJVZ7jbrDc_nke2JrmpYHZEXMk2u8oj2hGl1D1qPghWDNbUU3wcXM1O1n2g_2A6NjLUYyKjmbIZq8AjA"}, "__model__": "Track", "name": "7", "uri": "pandora:track:3518796032994790657:P8WajVuRJVZ7jbrDc_nke2JrmpYHZEXMk2u8oj2hGl1D1qPghWDNbUU3wcXM1O1n2g_2A6NjLUYyKjmbIZq8AjA", "length": 256000, "artists": [{"__model__": "Artist", "name": "Catfish & The Bottlemen", "uri": "pandora:track:3518796032994790657:P8WajVuRJVZ7jbrDc_nke2JrmpYHZEXMk2u8oj2hGl1D1qPghWDNbUU3wcXM1O1n2g_2A6NjLUYyKjmbIZq8AjA"}], "bitrate": 64}, "__model__": "TlTrack", "tlid": 1}]}'
2017-02-26 16:12:50,603 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playlists.as_list","jsonrpc":"2.0","id":1081527}'
2017-02-26 16:12:50,607 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 1081527, "result": [{"__model__": "Ref", "type": "playlist", "name": "kqed", "uri": "m3u:kqed.m3u"}, {"__model__": "Ref", "type": "playlist", "name": "pandora", "uri": "m3u:pandora.m3u"}]}'
2017-02-26 16:12:50,609 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playback.get_current_track","jsonrpc":"2.0","id":1081528}'
2017-02-26 16:12:50,611 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 1081528, "result": null}'
2017-02-26 16:12:50,612 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playback.get_state","jsonrpc":"2.0","id":1081529}'
2017-02-26 16:12:50,614 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 1081529, "result": "stopped"}'
2017-02-26 16:12:50,616 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.mixer.get_volume","jsonrpc":"2.0","id":1081530}'
2017-02-26 16:12:50,619 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 1081530, "result": 100}'
2017-02-26 16:12:50,621 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playback.get_state","jsonrpc":"2.0","id":1081531}'
2017-02-26 16:12:50,623 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 1081531, "result": "stopped"}'
2017-02-26 16:12:50,624 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.tracklist.get_random","jsonrpc":"2.0","id":1081532}'
2017-02-26 16:12:50,625 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 1081532, "result": false}'
2017-02-26 16:12:50,626 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.library.browse","params":{"uri":null},"jsonrpc":"2.0","id":1081533}'
2017-02-26 16:12:50,631 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 1081533, "result": [{"__model__": "Ref", "type": "directory", "name": "Files", "uri": "file:///var/lib/mopidy"}, {"__model__": "Ref", "type": "directory", "name": "Local media", "uri": "local:directory"}, {"__model__": "Ref", "type": "directory", "name": "Pandora", "uri": "pandora:directory"}]}'
2017-02-26 16:12:50,634 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playlists.as_list","jsonrpc":"2.0","id":1081534}'
2017-02-26 16:12:50,638 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 1081534, "result": [{"__model__": "Ref", "type": "playlist", "name": "kqed", "uri": "m3u:kqed.m3u"}, {"__model__": "Ref", "type": "playlist", "name": "pandora", "uri": "m3u:pandora.m3u"}]}'
2017-02-26 16:12:50,640 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playback.play","params":{"tl_track":{"track":{"album":{"images":["http://mediaserver-cont-ch1-1-v4v6.pandora.com/images/public/rovi/albumart/0/9/6/3/602547863690_500W_500H.jpg"],"__model__":"Album","name":"The Ride","uri":"pandora:track:3518796032994790657:P8WajVuRJVZ7jbrDc_nke2JrmpYHZEXMk2u8oj2hGl1D1qPghWDNbUU3wcXM1O1n2g_2A6NjLUYyKjmbIZq8AjA"},"__model__":"Track","name":"7","uri":"pandora:track:3518796032994790657:P8WajVuRJVZ7jbrDc_nke2JrmpYHZEXMk2u8oj2hGl1D1qPghWDNbUU3wcXM1O1n2g_2A6NjLUYyKjmbIZq8AjA","length":256000,"artists":[{"__model__":"Artist","name":"Catfish & The Bottlemen","uri":"pandora:track:3518796032994790657:P8WajVuRJVZ7jbrDc_nke2JrmpYHZEXMk2u8oj2hGl1D1qPghWDNbUU3wcXM1O1n2g_2A6NjLUYyKjmbIZq8AjA"}],"bitrate":64},"__model__":"TlTrack","tlid":1}},"jsonrpc":"2.0","id":18}'
2017-02-26 16:12:50,652 DEBUG [693:Audio-3] mopidy.audio.gst: Changing state to GST_STATE_READY: result=GST_STATE_CHANGE_SUCCESS
2017-02-26 16:12:50,658 DEBUG [693:MainThread] mopidy.audio.gst: Got STATE_CHANGED bus message: old=GST_STATE_NULL new=GST_STATE_READY pending=GST_STATE_VOID_PENDING
2017-02-26 16:12:50,659 DEBUG [693:PandoraBackend-4] mopidy.listener: Sending track_changing to PandoraPlaybackListener: {'track': Track(album=Album(images=[u'http://mediaserver-cont-ch1-1-v4v6.pandora.com/images/public/rovi/albumart/0/9/6/3/602547863690_500W_500H.jpg'], name=u'The Ride', uri='pandora:track:3518796032994790657:P8WajVuRJVZ7jbrDc_nke2JrmpYHZEXMk2u8oj2hGl1D1qPghWDNbUU3wcXM1O1n2g_2A6NjLUYyKjmbIZq8AjA'), artists=[Artist(name=u'Catfish & The Bottlemen', uri='pandora:track:3518796032994790657:P8WajVuRJVZ7jbrDc_nke2JrmpYHZEXMk2u8oj2hGl1D1qPghWDNbUU3wcXM1O1n2g_2A6NjLUYyKjmbIZq8AjA')], bitrate=64, length=256000, name=u'7', uri='pandora:track:3518796032994790657:P8WajVuRJVZ7jbrDc_nke2JrmpYHZEXMk2u8oj2hGl1D1qPghWDNbUU3wcXM1O1n2g_2A6NjLUYyKjmbIZq8AjA')}
2017-02-26 16:12:50,664 DEBUG [693:PandoraBackend-4] requests.packages.urllib3.connectionpool: Starting new HTTP connection (1): mediaserver-sv5-rt-1-v4v6.pandora.com
2017-02-26 16:12:51,307 DEBUG [693:PandoraBackend-4] requests.packages.urllib3.connectionpool: http://mediaserver-sv5-rt-1-v4v6.pandora.com:80 "HEAD /access/3382246124996736510.mp4?version=5&lid=1068846337&token=660DMcg0sZvUQ4xAHya2DS8UxdmcQiuIARVkdXdACwR1MB4Y2gU5rrAR%2Bp%2FUcRXlSUZfF0DkH3MkQbEAbTxWjhPIIyW%2BoBGFtFRn%2FDd9H%2Bq3B2SASgNy3dtVy%2BD4OKnHq0iRZmmg4VAl1xugNziaWYp9wWMxEbcF30G59xnDRqUCCzGHuLTyvYMGtMK%2FNEvC0g%2BatT4nrZbrVXEEgQ9VybKljFJ7cgmMV6Q%2BXe97cW4m4k%2BBgsDbD5MfRF0qKTSxklV6YU%2BzVjynLGlHdC7XE6T%2B1aBg0h6dDV80GdRy28OqvgXdK%2FuMTRqu6o0IufPw1Tb8U8IzrsojvAHmCZV1cuzl8JGp0xe6dmCHcPaeBbvUBZ3igGqOvg6FZ7B2c3UDebtlWnQlmMcqHTeLZOMzCIcWEU0SRn0yiVuGuuXvFimweavTYjNQnsndTKrohN9NjPKIz%2BloNUaByOfcaAXAPcMdABBK03ce5WRi6D8qPvbecwKJ%2FMauPl5xBf9%2BA7jpsHncQF72HZhrLTjX7p1xfg%3D%3D HTTP/1.1" 200 0
2017-02-26 16:12:51,309 DEBUG [693:PandoraBackend-4] mopidy.backend: Backend translated URI from pandora:track:3518796032994790657:P8WajVuRJVZ7jbrDc_nke2JrmpYHZEXMk2u8oj2hGl1D1qPghWDNbUU3wcXM1O1n2g_2A6NjLUYyKjmbIZq8AjA to http://mediaserver-sv5-rt-1-v4v6.pandora.com/access/3382246124996736510.mp4?version=5&lid=1068846337&token=660DMcg0sZvUQ4xAHya2DS8UxdmcQiuIARVkdXdACwR1MB4Y2gU5rrAR%2Bp%2FUcRXlSUZfF0DkH3MkQbEAbTxWjhPIIyW%2BoBGFtFRn%2FDd9H%2Bq3B2SASgNy3dtVy%2BD4OKnHq0iRZmmg4VAl1xugNziaWYp9wWMxEbcF30G59xnDRqUCCzGHuLTyvYMGtMK%2FNEvC0g%2BatT4nrZbrVXEEgQ9VybKljFJ7cgmMV6Q%2BXe97cW4m4k%2BBgsDbD5MfRF0qKTSxklV6YU%2BzVjynLGlHdC7XE6T%2B1aBg0h6dDV80GdRy28OqvgXdK%2FuMTRqu6o0IufPw1Tb8U8IzrsojvAHmCZV1cuzl8JGp0xe6dmCHcPaeBbvUBZ3igGqOvg6FZ7B2c3UDebtlWnQlmMcqHTeLZOMzCIcWEU0SRn0yiVuGuuXvFimweavTYjNQnsndTKrohN9NjPKIz%2BloNUaByOfcaAXAPcMdABBK03ce5WRi6D8qPvbecwKJ%2FMauPl5xBf9%2BA7jpsHncQF72HZhrLTjX7p1xfg%3D%3D
2017-02-26 16:12:51,311 DEBUG [693:SoftwareMixer-2] mopidy.mixer: Mixer event: volume_changed(volume=100)
2017-02-26 16:12:51,312 DEBUG [693:SoftwareMixer-2] mopidy.listener: Sending volume_changed to MixerListener: {'volume': 100}
2017-02-26 16:12:51,627 DEBUG [693:Audio-3] mopidy.audio.gst: Got source-setup signal: element=__main__.GstSoupHTTPSrc
2017-02-26 16:12:52,095 DEBUG [693:Audio-3] mopidy.audio.gst: Changing state to GST_STATE_PLAYING: result=GST_STATE_CHANGE_ASYNC
2017-02-26 16:12:52,098 DEBUG [693:Core-9] mopidy.listener: Sending volume_changed to CoreListener: {'volume': 100}
2017-02-26 16:12:52,098 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 18, "result": null}'
2017-02-26 16:12:52,100 DEBUG [693:MpdFrontend-12] mopidy.listener: Sending mixer to MpdSession: {}
2017-02-26 16:12:52,103 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playback.get_current_track","jsonrpc":"2.0","id":1081535}'
2017-02-26 16:12:52,105 DEBUG [693:HttpServer] mopidy.http.handlers: Closed WebSocket connection from 192.168.2.127
2017-02-26 16:12:52,637 WARNING [693:MainThread] mopidy.audio.gst: GStreamer warning: gst-stream-error-quark: No volume control found (3)
2017-02-26 16:12:52,638 DEBUG [693:MainThread] mopidy.audio.gst: Got WARNING bus message: error=u'gst-stream-error-quark: No volume control found (3)' debug=u'gstplaysink.c(2862): gen_audio_chain (): /GstPlayBin:playbin0/GstPlaySink:playsink:\nVolume/mute is not available'
2017-02-26 16:12:52,649 DEBUG [693:MainThread] mopidy.audio.gst: Got STREAM_START bus message
2017-02-26 16:12:52,650 DEBUG [693:MainThread] mopidy.audio.actor: Audio event: stream_changed(uri=u'http://mediaserver-sv5-rt-1-v4v6.pandora.com/access/3382246124996736510.mp4?version=5&lid=1068846337&token=660DMcg0sZvUQ4xAHya2DS8UxdmcQiuIARVkdXdACwR1MB4Y2gU5rrAR%2Bp%2FUcRXlSUZfF0DkH3MkQbEAbTxWjhPIIyW%2BoBGFtFRn%2FDd9H%2Bq3B2SASgNy3dtVy%2BD4OKnHq0iRZmmg4VAl1xugNziaWYp9wWMxEbcF30G59xnDRqUCCzGHuLTyvYMGtMK%2FNEvC0g%2BatT4nrZbrVXEEgQ9VybKljFJ7cgmMV6Q%2BXe97cW4m4k%2BBgsDbD5MfRF0qKTSxklV6YU%2BzVjynLGlHdC7XE6T%2B1aBg0h6dDV80GdRy28OqvgXdK%2FuMTRqu6o0IufPw1Tb8U8IzrsojvAHmCZV1cuzl8JGp0xe6dmCHcPaeBbvUBZ3igGqOvg6FZ7B2c3UDebtlWnQlmMcqHTeLZOMzCIcWEU0SRn0yiVuGuuXvFimweavTYjNQnsndTKrohN9NjPKIz%2BloNUaByOfcaAXAPcMdABBK03ce5WRi6D8qPvbecwKJ%2FMauPl5xBf9%2BA7jpsHncQF72HZhrLTjX7p1xfg%3D%3D')
2017-02-26 16:12:52,650 DEBUG [693:MainThread] mopidy.listener: Sending stream_changed to AudioListener: {'uri': u'http://mediaserver-sv5-rt-1-v4v6.pandora.com/access/3382246124996736510.mp4?version=5&lid=1068846337&token=660DMcg0sZvUQ4xAHya2DS8UxdmcQiuIARVkdXdACwR1MB4Y2gU5rrAR%2Bp%2FUcRXlSUZfF0DkH3MkQbEAbTxWjhPIIyW%2BoBGFtFRn%2FDd9H%2Bq3B2SASgNy3dtVy%2BD4OKnHq0iRZmmg4VAl1xugNziaWYp9wWMxEbcF30G59xnDRqUCCzGHuLTyvYMGtMK%2FNEvC0g%2BatT4nrZbrVXEEgQ9VybKljFJ7cgmMV6Q%2BXe97cW4m4k%2BBgsDbD5MfRF0qKTSxklV6YU%2BzVjynLGlHdC7XE6T%2B1aBg0h6dDV80GdRy28OqvgXdK%2FuMTRqu6o0IufPw1Tb8U8IzrsojvAHmCZV1cuzl8JGp0xe6dmCHcPaeBbvUBZ3igGqOvg6FZ7B2c3UDebtlWnQlmMcqHTeLZOMzCIcWEU0SRn0yiVuGuuXvFimweavTYjNQnsndTKrohN9NjPKIz%2BloNUaByOfcaAXAPcMdABBK03ce5WRi6D8qPvbecwKJ%2FMauPl5xBf9%2BA7jpsHncQF72HZhrLTjX7p1xfg%3D%3D'}
2017-02-26 16:12:52,651 DEBUG [693:Core-9] mopidy.core.playback: Changing state: stopped -> playing
2017-02-26 16:12:52,652 DEBUG [693:Core-9] mopidy.core.playback: Triggering playback state change event
2017-02-26 16:12:52,653 DEBUG [693:Core-9] mopidy.listener: Sending playback_state_changed to CoreListener: {'old_state': u'stopped', 'new_state': u'playing'}
2017-02-26 16:12:52,654 DEBUG [693:Core-9] mopidy.core.playback: Triggering track playback started event
2017-02-26 16:12:52,655 DEBUG [693:Core-9] mopidy.listener: Sending track_playback_started to CoreListener: {'tl_track': TlTrack(tlid=1, track=Track(album=Album(images=[u'http://mediaserver-cont-ch1-1-v4v6.pandora.com/images/public/rovi/albumart/0/9/6/3/602547863690_500W_500H.jpg'], name=u'The Ride', uri='pandora:track:3518796032994790657:P8WajVuRJVZ7jbrDc_nke2JrmpYHZEXMk2u8oj2hGl1D1qPghWDNbUU3wcXM1O1n2g_2A6NjLUYyKjmbIZq8AjA'), artists=[Artist(name=u'Catfish & The Bottlemen', uri='pandora:track:3518796032994790657:P8WajVuRJVZ7jbrDc_nke2JrmpYHZEXMk2u8oj2hGl1D1qPghWDNbUU3wcXM1O1n2g_2A6NjLUYyKjmbIZq8AjA')], bitrate=64, length=256000, name=u'7', uri='pandora:track:3518796032994790657:P8WajVuRJVZ7jbrDc_nke2JrmpYHZEXMk2u8oj2hGl1D1qPghWDNbUU3wcXM1O1n2g_2A6NjLUYyKjmbIZq8AjA'))}
2017-02-26 16:12:52,657 DEBUG [693:MpdFrontend-12] mopidy.listener: Sending player to MpdSession: {}
2017-02-26 16:12:52,664 DEBUG [693:Core-9] mopidy.core.tracklist: Triggering options changed event
2017-02-26 16:12:52,665 DEBUG [693:Core-9] mopidy.listener: Sending options_changed to CoreListener: {}
2017-02-26 16:12:52,666 DEBUG [693:MpdFrontend-12] mopidy.listener: Sending options to MpdSession: {}
2017-02-26 16:12:52,669 DEBUG [693:PandoraFrontend-10] mopidy.listener: Sending end_of_tracklist_reached to PandoraFrontendListener: {'station_id': '3518796032994790657', 'auto_play': False}
2017-02-26 16:12:52,672 DEBUG [693:PandoraBackend-4] mopidy.listener: Sending next_track_available to PandoraBackendListener: {'track': Ref(name=u'Renegades', type='track', uri='pandora:track:3518796032994790657:PmM71G_hvG3jjbrDc_nke2JKjNhU3GlaT2u8oj2hGl1D1qPghWDNbUWcOUKLC9-zag_2A6NjLUYxXajFJP5EITw'), 'auto_play': False}
2017-02-26 16:12:52,677 INFO [693:PandoraBackend-4] mopidy_pandora.library: Looking up Pandora track pandora:track:3518796032994790657:PmM71G_hvG3jjbrDc_nke2JKjNhU3GlaT2u8oj2hGl1D1qPghWDNbUWcOUKLC9-zag_2A6NjLUYxXajFJP5EITw...
2017-02-26 16:12:52,680 DEBUG [693:Core-9] mopidy.core.tracklist: Triggering event: tracklist_changed()
2017-02-26 16:12:52,681 DEBUG [693:Core-9] mopidy.listener: Sending tracklist_changed to CoreListener: {}
2017-02-26 16:12:52,681 DEBUG [693:MpdFrontend-12] mopidy.listener: Sending playlist to MpdSession: {}
2017-02-26 16:12:52,705 DEBUG [693:Dummy-20] mopidy.audio.gst: Got SEGMENT pad event: rate=1.0 format=time start=0 stop=18446744073709551615 position=0
2017-02-26 16:12:52,707 DEBUG [693:Dummy-20] mopidy.audio.actor: Audio event: position_changed(position=0L)
2017-02-26 16:12:52,708 DEBUG [693:Dummy-20] mopidy.listener: Sending position_changed to AudioListener: {'position': 0L}
2017-02-26 16:12:52,716 DEBUG [693:MainThread] mopidy.audio.gst: Got TAG bus message: tags={'datetime': [u'2016-04-22T00:15:08Z'], 'container-format': [u'ISO MP4/M4A']}
2017-02-26 16:12:52,717 DEBUG [693:MainThread] mopidy.audio.actor: Audio event: tags_changed(tags=['container-format', 'datetime'])
2017-02-26 16:12:52,718 DEBUG [693:MainThread] mopidy.listener: Sending tags_changed to AudioListener: {'tags': ['container-format', 'datetime']}
2017-02-26 16:12:52,721 DEBUG [693:MainThread] mopidy.audio.gst: Got TAG bus message: tags={'datetime': [u'2016-04-22T00:15:08Z'], 'container-format': [u'ISO MP4/M4A']}
2017-02-26 16:12:52,723 DEBUG [693:MainThread] mopidy.audio.gst: Got TAG bus message: tags={'audio-codec': [u'MPEG-4 AAC'], 'bitrate': [64000L], 'maximum-bitrate': [64000L]}
2017-02-26 16:12:52,724 DEBUG [693:MainThread] mopidy.audio.actor: Audio event: tags_changed(tags=['bitrate', 'audio-codec', 'maximum-bitrate'])
2017-02-26 16:12:52,724 DEBUG [693:MainThread] mopidy.listener: Sending tags_changed to AudioListener: {'tags': ['bitrate', 'audio-codec', 'maximum-bitrate']}
2017-02-26 16:12:52,726 DEBUG [693:MainThread] mopidy.audio.gst: Got TAG bus message: tags={'audio-codec': [u'MPEG-4 AAC'], 'bitrate': [64000L], 'maximum-bitrate': [64000L]}
2017-02-26 16:12:52,731 DEBUG [693:MainThread] mopidy.audio.gst: Got STATE_CHANGED bus message: old=GST_STATE_READY new=GST_STATE_PAUSED pending=GST_STATE_PLAYING
2017-02-26 16:12:52,732 DEBUG [693:MainThread] mopidy.audio.gst: Got ASYNC_DONE bus message.
2017-02-26 16:12:52,737 DEBUG [693:MainThread] mopidy.audio.gst: Got STATE_CHANGED bus message: old=GST_STATE_PAUSED new=GST_STATE_PLAYING pending=GST_STATE_VOID_PENDING
2017-02-26 16:12:52,738 DEBUG [693:MainThread] mopidy.audio.actor: Audio event: state_changed(old_state=stopped, new_state=playing, target_state=None)
2017-02-26 16:12:52,738 DEBUG [693:MainThread] mopidy.listener: Sending state_changed to AudioListener: {'old_state': u'stopped', 'target_state': None, 'new_state': u'playing'}
2017-02-26 16:12:52,740 DEBUG [693:MainThread] mopidy.audio.gst: Got TAG bus message: tags={'audio-codec': [u'MPEG-4 AAC'], 'minimum-bitrate': [64082L], 'bitrate': [64000L], 'maximum-bitrate': [64000L]}
2017-02-26 16:12:52,741 DEBUG [693:MainThread] mopidy.audio.actor: Audio event: tags_changed(tags=['minimum-bitrate'])
2017-02-26 16:12:52,742 DEBUG [693:MainThread] mopidy.listener: Sending tags_changed to AudioListener: {'tags': ['minimum-bitrate']}
2017-02-26 16:12:53,059 DEBUG [693:MainThread] mopidy.audio.gst: Got TAG bus message: tags={'audio-codec': [u'MPEG-4 AAC'], 'minimum-bitrate': [64082L], 'bitrate': [64000L], 'maximum-bitrate': [64000L]}
2017-02-26 16:12:53,358 DEBUG [693:MainThread] mopidy.audio.gst: Got TAG bus message: tags={'audio-codec': [u'MPEG-4 AAC'], 'minimum-bitrate': [61843L], 'bitrate': [64000L], 'maximum-bitrate': [64000L]}
2017-02-26 16:12:53,359 DEBUG [693:MainThread] mopidy.audio.actor: Audio event: tags_changed(tags=['minimum-bitrate'])
2017-02-26 16:12:53,359 DEBUG [693:MainThread] mopidy.listener: Sending tags_changed to AudioListener: {'tags': ['minimum-bitrate']}
2017-02-26 16:12:53,448 DEBUG [693:MainThread] mopidy.audio.gst: Got TAG bus message: tags={'audio-codec': [u'MPEG-4 AAC'], 'minimum-bitrate': [58225L], 'bitrate': [64000L], 'maximum-bitrate': [64000L]}
2017-02-26 16:12:53,449 DEBUG [693:MainThread] mopidy.audio.actor: Audio event: tags_changed(tags=['minimum-bitrate'])
2017-02-26 16:12:53,449 DEBUG [693:MainThread] mopidy.listener: Sending tags_changed to AudioListener: {'tags': ['minimum-bitrate']}
2017-02-26 16:12:53,678 DEBUG [693:MainThread] mopidy.audio.gst: Got TAG bus message: tags={'audio-codec': [u'MPEG-4 AAC'], 'minimum-bitrate': [54780L], 'bitrate': [64000L], 'maximum-bitrate': [64000L]}
2017-02-26 16:12:53,679 DEBUG [693:MainThread] mopidy.audio.actor: Audio event: tags_changed(tags=['minimum-bitrate'])
2017-02-26 16:12:53,679 DEBUG [693:MainThread] mopidy.listener: Sending tags_changed to AudioListener: {'tags': ['minimum-bitrate']}
2017-02-26 16:12:53,711 DEBUG [693:MainThread] mopidy.audio.gst: Got TAG bus message: tags={'audio-codec': [u'MPEG-4 AAC'], 'minimum-bitrate': [61843L], 'bitrate': [64000L], 'maximum-bitrate': [64000L]}
2017-02-26 16:12:53,712 DEBUG [693:MainThread] mopidy.audio.actor: Audio event: tags_changed(tags=['minimum-bitrate'])
2017-02-26 16:12:53,712 DEBUG [693:MainThread] mopidy.listener: Sending tags_changed to AudioListener: {'tags': ['minimum-bitrate']}
2017-02-26 16:12:53,728 DEBUG [693:MainThread] mopidy.audio.gst: Got TAG bus message: tags={'audio-codec': [u'MPEG-4 AAC'], 'minimum-bitrate': [53057L], 'bitrate': [64000L], 'maximum-bitrate': [64000L]}
2017-02-26 16:12:53,729 DEBUG [693:MainThread] mopidy.audio.actor: Audio event: tags_changed(tags=['minimum-bitrate'])
2017-02-26 16:12:53,729 DEBUG [693:MainThread] mopidy.listener: Sending tags_changed to AudioListener: {'tags': ['minimum-bitrate']}
2017-02-26 16:12:53,751 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playback.get_time_position","jsonrpc":"2.0","id":19}'
2017-02-26 16:12:53,754 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 19, "result": 1020}'
2017-02-26 16:12:53,806 DEBUG [693:MainThread] mopidy.audio.gst: Got TAG bus message: tags={'audio-codec': [u'MPEG-4 AAC'], 'minimum-bitrate': [58225L], 'bitrate': [64000L], 'maximum-bitrate': [64000L]}
2017-02-26 16:12:53,807 DEBUG [693:MainThread] mopidy.audio.actor: Audio event: tags_changed(tags=['minimum-bitrate'])
2017-02-26 16:12:53,807 DEBUG [693:MainThread] mopidy.listener: Sending tags_changed to AudioListener: {'tags': ['minimum-bitrate']}
2017-02-26 16:12:54,038 DEBUG [693:MainThread] mopidy.audio.gst: Got TAG bus message: tags={'audio-codec': [u'MPEG-4 AAC'], 'minimum-bitrate': [54780L], 'bitrate': [64000L], 'maximum-bitrate': [64000L]}
2017-02-26 16:12:54,039 DEBUG [693:MainThread] mopidy.audio.actor: Audio event: tags_changed(tags=['minimum-bitrate'])
2017-02-26 16:12:54,039 DEBUG [693:MainThread] mopidy.listener: Sending tags_changed to AudioListener: {'tags': ['minimum-bitrate']}
2017-02-26 16:12:54,082 DEBUG [693:MainThread] mopidy.audio.gst: Got TAG bus message: tags={'audio-codec': [u'MPEG-4 AAC'], 'minimum-bitrate': [53057L], 'bitrate': [64000L], 'maximum-bitrate': [64000L]}
2017-02-26 16:12:54,082 DEBUG [693:MainThread] mopidy.audio.actor: Audio event: tags_changed(tags=['minimum-bitrate'])
2017-02-26 16:12:54,083 DEBUG [693:MainThread] mopidy.listener: Sending tags_changed to AudioListener: {'tags': ['minimum-bitrate']}
2017-02-26 16:12:54,750 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playback.get_time_position","jsonrpc":"2.0","id":20}'
2017-02-26 16:12:54,753 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 20, "result": 2020}'
2017-02-26 16:12:54,799 DEBUG [693:MainThread] mopidy.audio.gst: Got BUFFERING bus message: percent=1%
2017-02-26 16:12:54,804 DEBUG [693:MainThread] mopidy.audio.gst: Got STATE_CHANGED bus message: old=GST_STATE_PLAYING new=GST_STATE_PAUSED pending=GST_STATE_VOID_PENDING
2017-02-26 16:12:54,805 DEBUG [693:MainThread] mopidy.audio.actor: Audio event: state_changed(old_state=playing, new_state=paused, target_state=playing)
2017-02-26 16:12:54,805 DEBUG [693:MainThread] mopidy.listener: Sending state_changed to AudioListener: {'old_state': u'playing', 'target_state': u'playing', 'new_state': u'paused'}
2017-02-26 16:12:54,807 DEBUG [693:MainThread] mopidy.audio.gst: Got ASYNC_DONE bus message.
2017-02-26 16:12:55,753 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playback.get_time_position","jsonrpc":"2.0","id":21}'
2017-02-26 16:12:55,756 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 21, "result": 2060}'
2017-02-26 16:12:56,762 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playback.get_time_position","jsonrpc":"2.0","id":22}'
2017-02-26 16:12:56,768 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 22, "result": 2060}'
2017-02-26 16:12:57,757 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playback.get_time_position","jsonrpc":"2.0","id":23}'
2017-02-26 16:12:57,762 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 23, "result": 2060}'
2017-02-26 16:12:58,754 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playback.get_time_position","jsonrpc":"2.0","id":24}'
2017-02-26 16:12:58,760 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 24, "result": 2060}'
2017-02-26 16:12:59,768 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playback.get_time_position","jsonrpc":"2.0","id":25}'
2017-02-26 16:12:59,773 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 25, "result": 2060}'
2017-02-26 16:13:00,756 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playback.get_time_position","jsonrpc":"2.0","id":26}'
2017-02-26 16:13:00,761 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 26, "result": 2060}'
2017-02-26 16:13:01,758 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playback.get_time_position","jsonrpc":"2.0","id":27}'
2017-02-26 16:13:01,763 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 27, "result": 2060}'
2017-02-26 16:13:02,775 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playback.get_time_position","jsonrpc":"2.0","id":28}'
2017-02-26 16:13:02,780 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 28, "result": 2060}'
2017-02-26 16:13:03,758 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playback.get_time_position","jsonrpc":"2.0","id":29}'
2017-02-26 16:13:03,763 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 29, "result": 2060}'
2017-02-26 16:13:04,760 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playback.get_time_position","jsonrpc":"2.0","id":30}'
2017-02-26 16:13:04,765 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 30, "result": 2060}'
2017-02-26 16:13:05,763 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playback.get_time_position","jsonrpc":"2.0","id":31}'
2017-02-26 16:13:05,766 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 31, "result": 2060}'
2017-02-26 16:13:06,761 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playback.get_time_position","jsonrpc":"2.0","id":32}'
2017-02-26 16:13:06,767 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 32, "result": 2060}'
2017-02-26 16:13:07,765 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playback.get_time_position","jsonrpc":"2.0","id":33}'
2017-02-26 16:13:07,770 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 33, "result": 2060}'
2017-02-26 16:13:08,765 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playback.get_time_position","jsonrpc":"2.0","id":34}'
2017-02-26 16:13:08,771 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 34, "result": 2060}'
2017-02-26 16:13:09,768 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playback.get_time_position","jsonrpc":"2.0","id":35}'
2017-02-26 16:13:09,773 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 35, "result": 2060}'
2017-02-26 16:13:10,768 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playback.get_time_position","jsonrpc":"2.0","id":36}'
2017-02-26 16:13:10,773 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 36, "result": 2060}'
2017-02-26 16:13:11,770 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playback.get_time_position","jsonrpc":"2.0","id":37}'
2017-02-26 16:13:11,775 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 37, "result": 2060}'
2017-02-26 16:13:12,767 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playback.get_time_position","jsonrpc":"2.0","id":38}'
2017-02-26 16:13:12,772 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 38, "result": 2060}'
2017-02-26 16:13:13,770 DEBUG [693:HttpServer] mopidy.http.handlers: Received WebSocket message from 192.168.2.127: u'{"method":"core.playback.get_time_position","jsonrpc":"2.0","id":39}'
2017-02-26 16:13:13,786 DEBUG [693:HttpServer] mopidy.http.handlers: Sent WebSocket message to 192.168.2.127: '{"jsonrpc": "2.0", "id": 39, "result": 2060}'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment