Coder Social home page Coder Social logo

mopidy-youtube's People

Contributors

andremiras avatar camilonova avatar codeasashu avatar djmattyg007 avatar drodange avatar dz0ny avatar fatg3erman avatar interru avatar jaminh avatar jcass77 avatar jodal avatar mohawi avatar natumbri avatar olivierflowerror avatar renehollander avatar robert843 avatar sleepkever avatar solonovamax avatar thanxx avatar ticosax avatar vespakoen avatar waffle-iron avatar willemk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mopidy-youtube's Issues

Cannot import name unquote_plus

I've encountered the following error:
mopidy_youtube: cannot import name unquote_plus

Has anyone an idea on how to fix it?
Python 2.7.6

Search speed solution

Hey there,

I saw an issue open here about the issue of the latency of search in this extension. I see that using the google API may be the cause of this lag, but is it possible to use this API instead?

https://www.mashape.com/zazkov/youtube-grabber#search-video-php

It has a python component and may make search much faster.

If there's anything I can do to help shoot me a hollar - I'd love to help out as I'm working on some mopidy front end ideas and having Spotify as the only fast and consistent source of audio is slightly upsetting :)

-- NellyWhads

No search results passed to client

I'm trying to use mopidy-youtube 2.0 with mopidy 1.0.5, when I submit a search, I can see it constructing a proper query that I can manually run to see results, however they're never displayed in the client.

This is what debug output I get:

DEBUG    2015-06-09 08:57:13,503 [23602:MpdSession-11] mopidy.mpd.session
  Request from [::ffff:137.44.10.101]:59652: search artist "style"
INFO     2015-06-09 08:57:13,550 [23602:YoutubeBackend-6] mopidy_youtube
  Searching Youtube for query 'style'
INFO     2015-06-09 08:57:13,554 [23602:YoutubeBackend-6] urllib3.connectionpool
  Starting new HTTPS connection (1): www.googleapis.com
DEBUG    2015-06-09 08:57:13,788 [23602:YoutubeBackend-6] urllib3.connectionpool
  "GET /youtube/v3/search?q=style&part=id&type=video&maxResults=15&key=AIzaSyAl1Xq9DwdE_KD4AtPaE4EJl3WZe2zCqg4 HTTP/1.1" 200 3106
INFO     2015-06-09 08:57:13,843 [23602:Thread-17] mopidy_youtube

INFO     2015-06-09 08:57:13,845 [23602:Thread-13] mopidy_youtube

INFO     2015-06-09 08:57:13,848 [23602:Thread-14] mopidy_youtube

INFO     2015-06-09 08:57:13,850 [23602:Thread-19] mopidy_youtube

INFO     2015-06-09 08:57:13,851 [23602:Thread-20] mopidy_youtube

INFO     2015-06-09 08:57:13,852 [23602:Thread-18] mopidy_youtube

INFO     2015-06-09 08:57:13,853 [23602:Thread-16] mopidy_youtube

INFO     2015-06-09 08:57:13,854 [23602:Thread-25] mopidy_youtube

INFO     2015-06-09 08:57:13,855 [23602:Thread-21] mopidy_youtube

INFO     2015-06-09 08:57:13,856 [23602:Thread-24] mopidy_youtube

INFO     2015-06-09 08:57:13,857 [23602:Thread-12] mopidy_youtube

INFO     2015-06-09 08:57:13,858 [23602:Thread-22] mopidy_youtube

INFO     2015-06-09 08:57:13,861 [23602:Thread-23] mopidy_youtube

INFO     2015-06-09 08:57:13,871 [23602:Thread-15] mopidy_youtube

INFO     2015-06-09 08:57:13,905 [23602:Thread-26] mopidy_youtube
DEBUG    2015-06-09 08:57:13,973 [23602:MpdSession-11] mopidy.utils.network
  Client most likely disconnected.
DEBUG    2015-06-09 08:57:13,974 [23602:MpdSession-11] pykka
  Unregistered MpdSession (urn:uuid:7dc53efe-7550-4360-8b03-026a51bc2999)
DEBUG    2015-06-09 08:57:13,975 [23602:MpdSession-11] pykka
  Stopped MpdSession (urn:uuid:7dc53efe-7550-4360-8b03-026a51bc2999)
DEBUG    2015-06-09 08:57:13,975 [23602:MpdSession-11] mopidy.utils.network
  Already stopping: Actor is shutting down.

Error val c from dict

I was trying to play this: https://www.youtube.com/playlist?list=PL22E78E3FC778375A

2015-04-01 12:00:46,916 INFO [3243:Thread-23] mopidy_youtube: Error val c from dict {u'a': u'D949BABDE5522CB93499434A1418154B975C6C94C7.C2A8F3AA5D4DD7BFA384207359CDFBAB4DD5F1F7', u'b': 1}
2015-04-01 12:00:47,164 INFO [3243:Thread-21] mopidy_youtube: 
2015-04-01 12:00:47,245 INFO [3243:Thread-11] mopidy_youtube: 
2015-04-01 12:00:47,249 INFO [3243:Thread-20] mopidy_youtube: 
2015-04-01 12:00:47,288 INFO [3243:Thread-12] mopidy_youtube: 
2015-04-01 12:00:47,274 INFO [3243:Thread-22] mopidy_youtube: 
2015-04-01 12:00:47,293 INFO [3243:Thread-15] mopidy_youtube: 

Unable to download webpage: <urlopen error [Errno -2] Name or service not known> (caused by URLError(gaierror(-2, 'Name or service not known'),))

I'm using modipy (Version 2.0) on a RaspberryPi (Raspbian Jessie) and accessing it via the Mopidy-MusicBox-Webclient. Besides other software I have Mopidy-Youtube (Version 2.0.2), pafy (0.4.3) and youtube-dl (2016.2.13) installed.
After I installed certifi==2015.4.28 my YouTube search is working again (see #54 ) and with Mopidy 2.0 I can even listen to the found results but I also get the error message I had before back:

Feb 18 11:19:35 sys mopidy[469]: INFO     Searching YouTube for query 'test'
Feb 18 11:20:00 sys mopidy[469]: ERROR: Unable to download webpage: <urlopen error [Errno -2] Name or service not known> (caused by URLError(gaierror(-2, 'Name or service not known'),))
Feb 18 11:20:00 sys mopidy[469]: INFO     ERROR: Unable to download webpage: <urlopen error [Errno -2] Name or service not known> (caused by URLError(gaierror(-2, 'Name or service not known'),))
Feb 18 11:20:00 sys mopidy[469]: ERROR: Unable to download webpage: <urlopen error [Errno -2] Name or service not known> (caused by URLError(gaierror(-2, 'Name or service not known'),))
Feb 18 11:20:00 sys mopidy[469]: INFO     ERROR: Unable to download webpage: <urlopen error [Errno -2] Name or service not known> (caused by URLError(gaierror(-2, 'Name or service not known'),))
....

Is this "normal" (as I said, the search is slow but seems to be working) or should I do something about it?

So slooow

Hi.

First of all, great work.
But I use the HTTP JSON Api via mopidy I send this json:

{"method":"core.library.search","jsonrpc":"2.0","id":402,"params":{"query":{"any":["blink"]},"uris":["local:","spotify:","youtube:"]}}

And if I search on youtube its getting extremely slow, sometimes i never get a result..
But If I search without youtube everything works fast and always get result.

I use Rpi 2. and the latest modidy 1.0.0 and the latest mopdy-youtube version.

Youtube playlist links don't work within m3u playlist

If you put a YouTube playlist URL of the form yt:http://www.youtube.com/playlist?list=<listId> or yt:http://www.youtube.com/watch?v=<videoId>&list=<listId> in a M3U-playlist, it doesn't actually add anything to the queue when you try to play it.

The only log output this adds is these three lines:

Jan 05 18:46:01 radio mopidy[20098]: ERROR    WebSocket request error: Expected album to be a <class 'mopidy.models.Album'>, not {u'uri': u'x', u'name': u''}
Jan 05 18:46:01 radio mopidy[20098]: ERROR    WebSocket request error:
Jan 05 18:46:01 radio mopidy[20098]: ERROR    WebSocket request error:

Unknown url type

Hi,

i got this error when i try to search in Mopidy for a titel:

INFO Starting Mopidy backends: TuneInBackend, YouTubeBackend, StreamBackend, M3UBackend, FileBackend, SoundCloudBackend, SpotifyTunigoBackend, SpotifyBacken d
INFO Audio output set to "autoaudiosink"
INFO Starting Mopidy core
INFO Logged in to Spotify in offline mode
INFO Logged in to Spotify in online mode
INFO Starting Mopidy frontends: TtsGpio, HttpFrontend
INFO Starting GLib mainloop
INFO HTTP server running at [::ffff:192.168.178.39]:6680
INFO Searching Spotify for: "beat it"
INFO Searching YouTube for query 'beat it'
INFO Searching SoundCloud for: beat it
INFO unknown url type: /yts/jsbin/player-de_DE-vflFKX8cc/base.js
INFO unknown url type: /yts/jsbin/player-de_DE-vflFKX8cc/base.js
INFO unknown url type: /yts/jsbin/player-de_DE-vflFKX8cc/base.js
INFO unknown url type: /yts/jsbin/player-de_DE-vflFKX8cc/base.js
INFO unknown url type: /yts/jsbin/player-de_DE-vflFKX8cc/base.js
INFO unknown url type: /yts/jsbin/player-de_DE-vflFKX8cc/base.js
INFO unknown url type: /yts/jsbin/player-de_DE-vflFKX8cc/base.js
INFO unknown url type: /yts/jsbin/player-de_DE-vflFKX8cc/base.js
INFO unknown url type: /yts/jsbin/player-de_DE-vflFKX8cc/base.js
INFO unknown url type: /yts/jsbin/player-de_DE-vflFKX8cc/base.js

Running mopidy on a Rasperry Pi. Please help me. :)

Again: Missing plugin A_OPUS

Hey there,

newest Mopidy, newest Mopidy-Youtube and newest pafy (0.5.1) - however when i try to play any youtube audio following is in the log file:

2016-06-07 21:26:12,313 WARNING [1226:MainThread] mopidy.audio.actor: Could not find a audio/x-unknown decoder to handle media.
2016-06-07 21:26:12,314 WARNING [1226:MainThread] mopidy.audio.gst: GStreamer warning: No decoder available for type 'audio/x-unknown, codec-id=(string)A_OPUS'.

Any Idea?

Using search causes mopidy to stop

Hello, I encountered an issue when trying to use containerized version of mopidy. Using the "search" feature of the web client crashes mopidy.

Here's the original issue: wernight/docker-mopidy#7

I did some investigating, and it seems like mopidy-youtube caues the problem.

This is the last lines mopidy outputs before crashing:

DEBUG    2017-02-19 18:21:46,597 [1:HttpServer] mopidy.http.handlers
  Received WebSocket message from 192.168.0.17: u'{"method":"core.library.search","params":{"any":["asdf"]},"jsonrpc":"2.0","id":56}'
INFO     2017-02-19 18:21:46,605 [1:YouTubeBackend-3] mopidy_youtube
  Searching YouTube for query 'asdf'

-o youtube/enabled=false fixes the problem, but I can't search for youtube videos :(

Tried playing with pafy and youtube-dl using pip, and also confirmed that I can get youtube video info using pafy. More details in linked issue.

Always times out when searching for music

As the title says. Programs used:

  • mopidy-youtube v0.1.0
  • mopidy v0.18.3
  • ympd v1.2.0
pi@raspberrypi /tmp $ uname -a
Linux raspberrypi 3.10.33+ #656 PREEMPT Fri Mar 14 18:19:28 GMT 2014 armv6l GNU/Linux

pi@raspberrypi /etc $ cat os-release
PRETTY_NAME="Raspbian GNU/Linux 7 (wheezy)"
NAME="Raspbian GNU/Linux"
VERSION_ID="7"
VERSION="7 (wheezy)"
ID=raspbian
ID_LIKE=debian
ANSI_COLOR="1;31"
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

Debug log:

2014-03-20 20:22:43,002 INFO [4679:MainThread] mopidy.__main__: Starting Mopidy 0.18.3
2014-03-20 20:22:43,037 DEBUG [4679:MainThread] mopidy.ext: Loading entry point: http = mopidy.http:Extension [http]
2014-03-20 20:22:43,041 DEBUG [4679:MainThread] mopidy.ext: Loaded extension: Mopidy-HTTP 0.18.3
2014-03-20 20:22:43,042 DEBUG [4679:MainThread] mopidy.ext: Loading entry point: mpd = mopidy.mpd:Extension
2014-03-20 20:22:43,045 DEBUG [4679:MainThread] mopidy.ext: Loaded extension: Mopidy-MPD 0.18.3
2014-03-20 20:22:43,046 DEBUG [4679:MainThread] mopidy.ext: Loading entry point: local = mopidy.local:Extension
2014-03-20 20:22:43,052 DEBUG [4679:MainThread] mopidy.ext: Loaded extension: Mopidy-Local 0.18.3
2014-03-20 20:22:43,053 DEBUG [4679:MainThread] mopidy.ext: Loading entry point: stream = mopidy.stream:Extension
2014-03-20 20:22:43,056 DEBUG [4679:MainThread] mopidy.ext: Loaded extension: Mopidy-Stream 0.18.3
2014-03-20 20:22:43,061 DEBUG [4679:MainThread] mopidy.ext: Loading entry point: soundcloud = mopidy_soundcloud:SoundCloudExtension
2014-03-20 20:22:43,064 DEBUG [4679:MainThread] mopidy.ext: Loaded extension: Mopidy-SoundCloud 1.2.1
2014-03-20 20:22:43,076 DEBUG [4679:MainThread] mopidy.ext: Loading entry point: youtube = mopidy_youtube:Extension
2014-03-20 20:22:43,083 DEBUG [4679:MainThread] mopidy.ext: Loaded extension: Mopidy-Youtube 0.1.0
2014-03-20 20:22:43,158 DEBUG [4679:MainThread] mopidy.ext: Discovered extensions: http, mpd, local, stream, soundcloud, youtube
2014-03-20 20:22:43,265 DEBUG [4679:MainThread] mopidy.config.keyring: Fetching passwords from your keyring failed. Any passwords stored in the keyring will not be available. (org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11)
2014-03-20 20:22:43,268 INFO [4679:MainThread] mopidy.config: Loading config from: builtin defaults, /etc/mopidy/extensions.d/*.conf, /etc/mopidy/mopidy.conf, command line options
2014-03-20 20:22:43,299 DEBUG [4679:MainThread] mopidy.config: Config file /etc/mopidy/extensions.d/*.conf not found; skipping
2014-03-20 20:22:45,968 DEBUG [4679:MainThread] mopidy.local.actor: Using json as the local library
2014-03-20 20:22:46,015 INFO [4679:MainThread] mopidy.local.playlists: Loaded 0 local playlists from /var/lib/mopidy/playlists
2014-03-20 20:22:46,017 DEBUG [4679:MainThread] mopidy.local.json: Loading library: /var/lib/mopidy/local/library.json.gz
2014-03-20 20:22:46,261 DEBUG [4679:MainThread] mopidy.local.json: Loading tracks: 242ms
2014-03-20 20:22:46,478 DEBUG [4679:MainThread] mopidy.local.json: Building browse cache: 214ms
2014-03-20 20:22:46,481 INFO [4679:MainThread] mopidy.local.library: Loaded 74 local tracks using json
2014-03-20 20:22:46,921 INFO [4679:MainThread] mopidy.mpd.actor: MPD server running at [::]:6600
2014-03-20 20:22:46,964 DEBUG [4679:MpdFrontend-7] mopidy.zeroconf: Zeroconf publish failed: Avahi service not running.
2014-03-20 20:22:46,966 DEBUG [4679:MpdFrontend-7] mopidy.mpd.actor: Registering MPD with Zeroconf failed.
2014-03-20 20:22:48,445 INFO [4679:MpdSession-8] mopidy.mpd.session: New MPD connection from [::ffff:127.0.0.1]:40251
2014-03-20 20:22:49,254 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40251: status
2014-03-20 20:22:49,539 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40251: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:22:49,554 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40251: playlistinfo "0:512"
2014-03-20 20:22:49,567 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40251: OK
2014-03-20 20:22:50,373 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40251: status
2014-03-20 20:22:50,416 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40251: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:22:51,223 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40251: status
2014-03-20 20:22:51,278 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40251: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:22:52,286 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40251: status
2014-03-20 20:22:52,330 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40251: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:22:53,339 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40251: status
2014-03-20 20:22:53,383 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40251: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:22:54,391 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40251: status
2014-03-20 20:22:54,434 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40251: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:22:55,243 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40251: status
2014-03-20 20:22:55,286 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40251: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:22:56,295 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40251: status
2014-03-20 20:22:56,347 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40251: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:22:57,357 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40251: status
2014-03-20 20:22:57,400 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40251: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:22:58,209 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40251: status
2014-03-20 20:22:58,253 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40251: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:22:59,261 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40251: status
2014-03-20 20:22:59,305 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40251: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:00,313 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40251: status
2014-03-20 20:23:00,357 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40251: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:01,366 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40251: status
2014-03-20 20:23:01,417 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40251: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:02,226 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40251: status
2014-03-20 20:23:02,269 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40251: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:03,284 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40251: status
2014-03-20 20:23:03,328 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40251: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:04,337 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40251: status
2014-03-20 20:23:04,382 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40251: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:05,118 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40251: search any "yt:savage garden"
2014-03-20 20:23:05,272 INFO [4679:SoundCloudBackend-4] mopidy_soundcloud.library: Searching SoundCloud for 'yt:savage garden'
2014-03-20 20:23:05,277 DEBUG [4679:SoundCloudBackend-4] mopidy_soundcloud.soundcloud: Requesting https://api.soundcloud.com/tracks.json?q=yt%3Asavage+garden&filter=streamable&order=hotness&limit=10&client_id=93e33e327fd8a9b77becd179652272e2
2014-03-20 20:23:05,577 INFO [4679:SoundCloudBackend-4] requests.packages.urllib3.connectionpool: Starting new HTTPS connection (1): api.soundcloud.com
2014-03-20 20:23:05,581 INFO [4679:YoutubeBackend-5] requests.packages.urllib3.connectionpool: Starting new HTTPS connection (1): www.googleapis.com
2014-03-20 20:23:06,846 DEBUG [4679:SoundCloudBackend-4] requests.packages.urllib3.connectionpool: "GET /tracks.json?q=yt%3Asavage+garden&filter=streamable&order=hotness&limit=10&client_id=93e33e327fd8a9b77becd179652272e2 HTTP/1.1" 200 2
2014-03-20 20:23:08,120 DEBUG [4679:MainThread] mopidy.utils.network: Client most likely disconnected.
2014-03-20 20:23:08,410 DEBUG [4679:YoutubeBackend-5] requests.packages.urllib3.connectionpool: "GET /youtube/v3/search?q=yt%3Asavage+garden&part=id&type=video&key=AIzaSyAl1Xq9DwdE_KD4AtPaE4EJl3WZe2zCqg4&maxResults=15 HTTP/1.1" 200 3105
2014-03-20 20:23:09,379 DEBUG [4679:YoutubeBackend-5] root: Fetched video info
2014-03-20 20:23:09,383 DEBUG [4679:YoutubeBackend-5] root: Encrypted signature detected.
2014-03-20 20:23:10,385 DEBUG [4679:YoutubeBackend-5] root: Fetched watchv page
2014-03-20 20:23:11,293 DEBUG [4679:YoutubeBackend-5] root: Fetched javascript
2014-03-20 20:23:11,296 DEBUG [4679:YoutubeBackend-5] root: Scanning js for main function.
2014-03-20 20:23:11,447 DEBUG [4679:YoutubeBackend-5] root: Found main function: cE
2014-03-20 20:23:11,451 DEBUG [4679:YoutubeBackend-5] root: Extracting function 'cE' from javascript
2014-03-20 20:23:11,480 DEBUG [4679:YoutubeBackend-5] root: extracted function cE(a){a=a.split("");a=dE(a,48);a=a.slice(2);a=a.reverse();a=a.slice(1);a=dE(a,4);a=dE(a,35);return a.join("")};
2014-03-20 20:23:11,484 DEBUG [4679:YoutubeBackend-5] root: scanning javascript for secondary functions.
2014-03-20 20:23:11,496 DEBUG [4679:YoutubeBackend-5] root: found secondary function 'dE'
2014-03-20 20:23:11,500 DEBUG [4679:YoutubeBackend-5] root: Extracting function 'dE' from javascript
2014-03-20 20:23:11,529 DEBUG [4679:YoutubeBackend-5] root: extracted function dE(a,b){var c=a[0];a[0]=a[b%a.length];a[b]=c;return a};
2014-03-20 20:23:11,533 DEBUG [4679:YoutubeBackend-5] root: found secondary function 'dE'
2014-03-20 20:23:11,537 DEBUG [4679:YoutubeBackend-5] root: function 'dE' is already in map.
2014-03-20 20:23:11,543 DEBUG [4679:YoutubeBackend-5] root: found secondary function 'dE'
2014-03-20 20:23:11,546 DEBUG [4679:YoutubeBackend-5] root: function 'dE' is already in map.
2014-03-20 20:23:11,623 DEBUG [4679:YoutubeBackend-5] root: Decrypted sig = 1DECFFB64AAE149224B15B7C5C9365...
2014-03-20 20:23:12,021 DEBUG [4679:YoutubeBackend-5] root: Fetched video info
2014-03-20 20:23:12,025 DEBUG [4679:YoutubeBackend-5] root: Encrypted signature detected.
2014-03-20 20:23:12,474 DEBUG [4679:YoutubeBackend-5] root: Fetched watchv page
2014-03-20 20:23:12,544 DEBUG [4679:YoutubeBackend-5] root: Decrypted sig = CF121C9469F1225879030E78590C41...
2014-03-20 20:23:13,130 DEBUG [4679:YoutubeBackend-5] root: Fetched video info
2014-03-20 20:23:13,138 DEBUG [4679:YoutubeBackend-5] root: Encrypted signature detected.
2014-03-20 20:23:13,640 DEBUG [4679:YoutubeBackend-5] root: Fetched watchv page
2014-03-20 20:23:13,706 DEBUG [4679:YoutubeBackend-5] root: Decrypted sig = 30F89361BA8BBD09FB3B7735D13248...
2014-03-20 20:23:14,228 DEBUG [4679:YoutubeBackend-5] root: Fetched video info
2014-03-20 20:23:14,741 DEBUG [4679:YoutubeBackend-5] root: Fetched video info
2014-03-20 20:23:15,227 DEBUG [4679:YoutubeBackend-5] root: Fetched video info
2014-03-20 20:23:15,231 DEBUG [4679:YoutubeBackend-5] root: Encrypted signature detected.
2014-03-20 20:23:15,616 DEBUG [4679:YoutubeBackend-5] root: Fetched watchv page
2014-03-20 20:23:15,695 DEBUG [4679:YoutubeBackend-5] root: Decrypted sig = FA8841E4F3CD13992945E768113D6F...
2014-03-20 20:23:16,177 DEBUG [4679:YoutubeBackend-5] root: Fetched video info
2014-03-20 20:23:16,767 DEBUG [4679:YoutubeBackend-5] root: Fetched video info
2014-03-20 20:23:16,771 DEBUG [4679:YoutubeBackend-5] root: Encrypted signature detected.
2014-03-20 20:23:17,219 DEBUG [4679:YoutubeBackend-5] root: Fetched watchv page
2014-03-20 20:23:17,292 DEBUG [4679:YoutubeBackend-5] root: Decrypted sig = 745A3093AB2A5A73A6DAADCDC6BA9E...
2014-03-20 20:23:17,760 DEBUG [4679:YoutubeBackend-5] root: Fetched video info
2014-03-20 20:23:17,764 DEBUG [4679:YoutubeBackend-5] root: Encrypted signature detected.
2014-03-20 20:23:18,106 DEBUG [4679:YoutubeBackend-5] root: Fetched watchv page
2014-03-20 20:23:18,174 DEBUG [4679:YoutubeBackend-5] root: Decrypted sig = D07FAB1E5A0933924FBEBC1BAB6552...
2014-03-20 20:23:18,657 DEBUG [4679:YoutubeBackend-5] root: Fetched video info
2014-03-20 20:23:18,661 DEBUG [4679:YoutubeBackend-5] root: Encrypted signature detected.
2014-03-20 20:23:19,250 DEBUG [4679:YoutubeBackend-5] root: Fetched watchv page
2014-03-20 20:23:19,311 DEBUG [4679:YoutubeBackend-5] root: Decrypted sig = 222CF1D401BD781241E8BEB1D25901...
2014-03-20 20:23:19,796 DEBUG [4679:YoutubeBackend-5] root: Fetched video info
2014-03-20 20:23:19,801 DEBUG [4679:YoutubeBackend-5] root: Encrypted signature detected.
2014-03-20 20:23:20,182 DEBUG [4679:YoutubeBackend-5] root: Fetched watchv page
2014-03-20 20:23:20,248 DEBUG [4679:YoutubeBackend-5] root: Decrypted sig = 347BDA856F7AE9F32193DF2E7A8D61...
2014-03-20 20:23:20,707 DEBUG [4679:YoutubeBackend-5] root: Fetched video info
2014-03-20 20:23:21,614 DEBUG [4679:YoutubeBackend-5] root: Fetched video info
2014-03-20 20:23:22,108 DEBUG [4679:YoutubeBackend-5] root: Fetched video info
2014-03-20 20:23:22,113 DEBUG [4679:YoutubeBackend-5] root: Encrypted signature detected.
2014-03-20 20:23:22,698 DEBUG [4679:YoutubeBackend-5] root: Fetched watchv page
2014-03-20 20:23:22,781 DEBUG [4679:YoutubeBackend-5] root: Decrypted sig = F0B796A2AFC646917B2870D276B123...
2014-03-20 20:23:23,137 DEBUG [4679:YoutubeBackend-5] root: Fetched video info
2014-03-20 20:23:23,141 DEBUG [4679:YoutubeBackend-5] root: Encrypted signature detected.
2014-03-20 20:23:23,713 DEBUG [4679:YoutubeBackend-5] root: Fetched watchv page
2014-03-20 20:23:23,781 DEBUG [4679:YoutubeBackend-5] root: Decrypted sig = 788D60664A431C15B6C87A2849D845...
2014-03-20 20:23:23,838 INFO [4679:MpdSession-9] mopidy.mpd.session: New MPD connection from [::ffff:127.0.0.1]:40255
2014-03-20 20:23:23,854 DEBUG [4679:MpdSession-8] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40251: 
    file: youtube:video/Savage Garden - I Knew I Loved You.jjnmICxvoVY
    Time: 230
    Artist: 
    Title: Savage Garden - I Knew I Loved You
    Album: Youtube
    Track: 0
    Comment: jjnmICxvoVY
    file: youtube:video/Savage Garden - Truly Madly Deeply.WQnAxOQxQIU
    Time: 262
    Artist: 
    Title: Savage Garden - Truly Madly Deeply
    Album: Youtube
    Track: 0
    Comment: WQnAxOQxQIU
    file: youtube:video/Savage Garden - Hold Me.CFAlR7tWekc
    Time: 245
    Artist: 
    Title: Savage Garden - Hold Me
    Album: Youtube
    Track: 0
    Comment: CFAlR7tWekc
    file: youtube:video/Savage Garden - Affirmation (Full Album).ZGkO8WULkWk
    Time: 3227
    Artist: 
    Title: Savage Garden - Affirmation (Full Album)
    Album: Youtube
    Track: 0
    Comment: ZGkO8WULkWk
    file: youtube:video/Savage Garden - I Want You.HQt6jIKNwgU
    Time: 232
    Artist: 
    Title: Savage Garden - I Want You
    Album: Youtube
    Track: 0
    Comment: HQt6jIKNwgU
    file: youtube:video/Savage Garden I Knew I Loved You.zOJ282tAJ20
    Time: 214
    Artist: 
    Title: Savage Garden " I Knew I Loved You "
    Album: Youtube
    Track: 0
    Comment: zOJ282tAJ20
    file: youtube:video/Savage Garden - I Knew I Loved You Lyrics.TWh473e8fXs
    Time: 241
    Artist: 
    Title: Savage Garden - I Knew I Loved You Lyrics
    Album: Youtube
    Track: 0
    Comment: TWh473e8fXs
    file: youtube:video/Savage Garden - To The Moon Back (Extended Version).HCm6gRHINqA
    Time: 287
    Artist: 
    Title: Savage Garden - To The Moon & Back (Extended Version)
    Album: Youtube
    Track: 0
    Comment: HCm6gRHINqA
    file: youtube:video/Savage Garden- Hold Me Lyrics.NdPJxEUF4gI
    Time: 291
    Artist: 
    Title: Savage Garden- Hold Me Lyrics
    Album: Youtube
    Track: 0
    Comment: NdPJxEUF4gI
    file: youtube:video/Savage Garden - Affirmation.RFzZ-xpyfoo
    Time: 251
    Artist: 
    Title: Savage Garden - Affirmation
    Album: Youtube
    Track: 0
    Comment: RFzZ-xpyfoo
    file: youtube:video/Savage Garden debut album (Full Album).CR5esvhfOv8
    Time: 2678
    Artist: 
    Title: Savage Garden [debut album] (Full Album)
    Album: Youtube
    Track: 0
    Comment: CR5esvhfOv8
    file: youtube:video/Savage Garden - The Animal Song HD.CJrczhUqUJI
    Time: 241
    Artist: 
    Title: Savage Garden - The Animal Song [HD]
    Album: Youtube
    Track: 0
    Comment: CJrczhUqUJI
    file: youtube:video/Savage Garden - I knew i loved you with lyrics.INP494j92sg
    Time: 249
    Artist: 
    Title: Savage Garden - I knew i loved you with lyrics
    Album: Youtube
    Track: 0
    Comment: INP494j92sg
    OK
2014-03-20 20:23:23,867 DEBUG [4679:MpdSession-8] mopidy.utils.network: Already stopping: Unexpected client error: [Errno 9] Bad file descriptor
2014-03-20 20:23:23,876 DEBUG [4679:MpdSession-8] mopidy.utils.network: Already stopping: Actor is shutting down.
2014-03-20 20:23:23,872 DEBUG [4679:MainThread] mopidy.utils.network: Client most likely disconnected.
2014-03-20 20:23:23,870 INFO [4679:MpdSession-10] mopidy.mpd.session: New MPD connection from [::ffff:127.0.0.1]:40262
2014-03-20 20:23:23,892 DEBUG [4679:MpdSession-9] mopidy.utils.network: Already stopping: Actor is shutting down.
2014-03-20 20:23:23,913 DEBUG [4679:MainThread] mopidy.utils.network: Bad client flags: 25
2014-03-20 20:23:23,920 DEBUG [4679:MpdSession-10] mopidy.utils.network: Already stopping: Actor is shutting down.
2014-03-20 20:23:23,923 INFO [4679:MpdSession-11] mopidy.mpd.session: New MPD connection from [::ffff:127.0.0.1]:40271
2014-03-20 20:23:23,926 DEBUG [4679:MainThread] mopidy.utils.network: Client most likely disconnected.
2014-03-20 20:23:23,940 DEBUG [4679:MpdSession-11] mopidy.utils.network: Already stopping: Actor is shutting down.
2014-03-20 20:23:24,361 DEBUG [4679:MainThread] mopidy.utils.network: Client most likely disconnected.
2014-03-20 20:23:24,364 INFO [4679:MpdSession-12] mopidy.mpd.session: New MPD connection from [::ffff:127.0.0.1]:40279
2014-03-20 20:23:24,372 DEBUG [4679:MpdSession-12] mopidy.utils.network: Already stopping: Unexpected client error: [Errno 9] Bad file descriptor
2014-03-20 20:23:24,378 DEBUG [4679:MpdSession-12] mopidy.utils.network: Already stopping: Actor is shutting down.
2014-03-20 20:23:25,362 INFO [4679:MpdSession-13] mopidy.mpd.session: New MPD connection from [::ffff:127.0.0.1]:40284
2014-03-20 20:23:26,370 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:26,414 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:27,223 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:27,267 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:28,276 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:28,326 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:29,334 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:29,380 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:30,389 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:30,434 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:31,242 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:31,284 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:32,291 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:32,333 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:33,340 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:33,390 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:34,397 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:34,439 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:35,246 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:35,289 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:36,296 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:36,338 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:37,346 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:37,389 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:38,396 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:38,446 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:39,253 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:39,295 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:40,302 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:40,345 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:41,352 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:41,396 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:42,202 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:42,244 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:43,252 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:43,294 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:44,301 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:44,345 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:45,353 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:45,437 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:46,254 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:46,322 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:47,329 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:47,373 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:48,380 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:48,430 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:49,236 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:49,278 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:50,286 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:50,331 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:51,338 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:51,381 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:52,388 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:52,434 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:53,241 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:53,288 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:54,295 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:54,338 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:55,345 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:55,436 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:56,243 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:56,336 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:57,343 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:57,424 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:58,231 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:58,334 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:23:59,342 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:23:59,423 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:24:00,230 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:24:00,281 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:24:01,289 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:24:01,331 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:24:02,338 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:24:02,382 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:24:03,389 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:24:03,434 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:24:04,241 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:24:04,292 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:24:05,300 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:24:05,342 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:24:06,349 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:24:06,440 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:24:07,246 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:24:07,289 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:24:08,296 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:24:08,339 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:24:09,346 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:24:09,389 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:24:10,397 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:24:10,440 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:24:11,247 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:24:11,290 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:24:12,297 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:24:12,340 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:24:13,347 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:24:13,391 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:24:14,398 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:24:14,441 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:24:15,248 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Request from [::ffff:127.0.0.1]:40284: status
2014-03-20 20:24:15,291 DEBUG [4679:MpdSession-13] mopidy.mpd.session: Response to [::ffff:127.0.0.1]:40284: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 0
    playlistlength: 0
    xfade: 0
    state: stop
    OK
2014-03-20 20:24:16,043 DEBUG [4679:MpdSession-13] mopidy.utils.network: Actor is shutting down.

SSL3 certificate verify failed (after update)

Hi,

I'm using modipy (Version 1.1.2) on a RaspberryPi (Raspbian Jessie) and trying to get with mopidy-youtube to work.

If I use the Mopidy-MusicBox-Webclient - Search - Select Youtube and search e.g. for "test" (or yt: test) I found some results but also got several
Unable to download webpage: <urlopen error [Errno -2] Name or service not known>
in the syslog.
As I was wondering what this is about I updated
sudo pip install --upgrade pafy
sudo pip install --upgrade Mopidy-YouTube
sudo pip install --upgrade Mopidy-MusicBox-Webclient
sudo pip install --upgrade youtube_dl
and restarted.

Now I get no results at all but

mopidy[464]: INFO     Searching YouTube for query 'test'
mopidy[464]: ERROR    YouTubeBackend backend caused an exception.
mopidy[464]: Traceback (most recent call last):
mopidy[464]: File "/usr/lib/python2.7/dist-packages/mopidy/core/library.py", line 19, in _backend_error_handling
mopidy[464]: yield
mopidy[464]: File "/usr/lib/python2.7/dist-packages/mopidy/core/library.py", line 344, in search
mopidy[464]: result = future.get()
mopidy[464]: File "/usr/lib/python2.7/dist-packages/pykka/threading.py", line 52, in get
mopidy[464]: compat.reraise(*self._data['exc_info'])
mopidy[464]: File "/usr/lib/python2.7/dist-packages/pykka/compat.py", line 12, in reraise
mopidy[464]: exec('raise tp, value, tb')
mopidy[464]: File "/usr/lib/python2.7/dist-packages/pykka/actor.py", line 201, in _actor_loop
mopidy[464]: response = self._handle_receive(message)
mopidy[464]: File "/usr/lib/python2.7/dist-packages/pykka/actor.py", line 295, in _handle_receive
mopidy[464]: return callee(*message['args'], **message['kwargs'])
mopidy[464]: File "/usr/local/lib/python2.7/dist-packages/mopidy_youtube/backend.py", line 192, in search
mopidy[464]: tracks=search_youtube(search_query)
mopidy[464]: File "/usr/local/lib/python2.7/dist-packages/mopidy_youtube/backend.py", line 98, in search_youtube
mopidy[464]: result = session.get(yt_api_endpoint+'search', params=query)
mopidy[464]: File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 480, in get
mopidy[464]: return self.request('GET', url, **kwargs)
mopidy[464]: File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 468, in request
mopidy[464]: resp = self.send(prep, **send_kwargs)
mopidy[464]: File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 576, in send
mopidy[464]: r = adapter.send(request, **kwargs)
mopidy[464]: File "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", line 447, in send
mopidy[464]: raise SSLError(e, request=request)
mopidy[464]: SSLError: ("bad handshake: Error([('SSL routines', 'SSL3_GET_SERVER_CERTIFICATE', 'certificate verify failed')],)",)

Also running
sudo update-ca-certificates
didn't help...
In general my internet connection works. Listening to webstreams via MusicBox e.g. works without problems and I can also play Videos at https://www.youtube.com/ using the regular web browser of Jessie). I hope that you can help me to figure out what is wrong.

Direct YouTube URIs donโ€™t return in expected results

Iโ€™ve seen a similar issue in a closed issue but there was no solution posted and the link to the bug fix that was supposed to resolve it has already been implemented.

Iโ€™ve attempting to search via various methods; yt: within the search field, ['youtube:']: as the {search}.uris etcโ€ฆ and although is absolutely searches YouTube, the result is never what is expected. As an example:
Iโ€™m attempting to track down specifically https://www.youtube.com/watch?v=BXpdmKELE1k
Searching for it using โ€œSwedish House Mafia - Save The Worldโ€ and โ€œSwedish House Mafia - Save The World SHMVEVOโ€ (the addition of it uploader) results in 5 items but none of which are the expected on.
Searching for โ€œBXpdmKELE1kโ€ or the full link results in some Digimon songโ€ฆ completely incorrect.

Another example of this is https://www.youtube.com/watch?v=ukNOaKeUEQY where the URL and video ID result in โ€œIโ€™m a hipsterโ€ (granted, somewhat relevant if you know the band but beside the point)

As for versions, all are latest and the only bizarre thing that may be different is Iโ€™ve manually updated the โ€œbackend_internal.pyโ€ for that most recent โ€œunquote_plusโ€ issue since the force update of pafy didnโ€™t change it.

Fails to play: "Pykka.exceptions.ActorDeadError"

This is the output in the logfiles:

Mar 15 20:44:11 socke mopidy[1753]: Traceback (most recent call last):
Mar 15 20:44:11 socke mopidy[1753]: File "/usr/lib/python2.7/site-packages/mopidy/utils/network.py", line 272, in recv_callback
Mar 15 20:44:11 socke mopidy[1753]: self.actor_ref.tell({'close': True})
Mar 15 20:44:11 socke mopidy[1753]: File "/usr/lib/python2.7/site-packages/pykka/actor.py", line 437, in tell
Mar 15 20:44:11 socke mopidy[1753]: raise _ActorDeadError('%s not found' % self)
Mar 15 20:44:11 socke mopidy[1753]: pykka.exceptions.ActorDeadError: MpdSession (urn:uuid:08d61458-24fb-4b96-87f6-bc8f8ac83693) not found

Adding a youtube playlist worked, but none of the songs would play.

The same happens when I add a single song.

Not all Youtube link works

Hi,

I'm using Mopidy 0.19.5 and Mopidy-Youtube 1.0.2 among other backend with Mopidy-MusicBox and I'm not able to load some Youtube link.
For example, this one is ok:
yt:http://www.youtube.com/watch?v=Njpw2PVb1c0
But this one not:
yt:https://www.youtube.com/watch?v=OPf0YbXqDm0
The search never finish.
And for the same song, this one works:
yt:https://www.youtube.com/watch?v=OPf0YbXqDm0&list=RDOPf0YbXqDm0#t=0

Thank you for your help

fixture 'caplog' not found

I've cloned the latest mopidy-youtube and I wanted to run tests, but I got the error below:

$ py.test
============================================================================================================================ test session starts ============================================================================================================================
platform linux2 -- Python 2.7.9, pytest-2.9.1, py-1.4.31, pluggy-0.3.1
rootdir: /home/pi/Progz/SoundServer/code/mopidy-youtube, inifile: 
collected 8 items 

tests/test_backend.py ......E
tests/test_extension.py .

================================================================================================================================== ERRORS ===================================================================================================================================
__________________________________________________________________________________________________________________ ERROR at setup of test_lookup_video_uri __________________________________________________________________________________________________________________
file /home/pi/Progz/SoundServer/code/mopidy-youtube/tests/test_backend.py, line 81
  @vcr.use_cassette('tests/fixtures/lookup_video_uri.yaml')
  def test_lookup_video_uri(caplog):
        fixture 'caplog' not found
        available fixtures: tmpdir_factory, pytestconfig, pafy_mock_with_video, cache, recwarn, pafy_mock, monkeypatch, record_xml_property, capfd, capsys, tmpdir
        use 'py.test --fixtures [testpath]' for help on them.

/home/pi/Progz/SoundServer/code/mopidy-youtube/tests/test_backend.py:81
===================================================================================================================== 7 passed, 1 error in 3.77 seconds =====================================================================================================================

Additional information:

$ python --version
Python 2.7.9
$ git log -n 1 
commit bf378f9f83db91f336e8168a4aa236135be604d0
Author: Nick Steel 
Date:   Fri Apr 15 16:58:42 2016 +0100

    Travis builds require trusty (part 2)

Help for contributions

Hi,

I have some problems contributing to this project.

I'm new to Python development and Mopidy so the questions will probably sound trivial, bear with me :slight_smile:

First, I'd like to run the existing tests and create a new one. I go to the tests folder and type py.test. I get an error when import pafy is found in test_backend.py.

When I try to install it, it seems it is already installed. I followed all the steps on the main documentation to set up my environment so I'm not sure why I get this error.

Can any contributor help me with this?
I'd like to try and join the ranks of the recent contributor to this project that is unfortunately lacking some leadership. It's a cool extension, it'd be a shame to not try and keep it going.

Thanks!

Could not establish connection when streaming youtube

When trying to stream youtube I get the following error:

mopidy.audio.gst: GStreamer error: gst-resource-error-quark: Could not establish connection to server. (5)

It appears it is having problems connecting to r7---sn-bvvbax-nual.googlevideo.com.

Mopidy (2.1.0)
Mopidy-Youtube (2.0.2)
youtube-dl (2017.6.12)

Specifying preferred audio codec

Thanks for writing this great extension.

I'm running OS X and am having some gstreamer issues whereby for some videos that have their best audio source as ogg files, gstreamer cannot decode them for some reason even though I have the various gstreamer ogg decoder plugins installed.

I have managed to get around this by modifying the call to getbestaudio in backend.py so that it takes the argument as follows getbestaudio(preftype="m4a").

Could configuration options be added to specify preferred audio/video codecs?

My actual problem looks like a gstreamer problem I think. Although it's complaining that it doesn't have a decoder for audio/x-unknown, which baffles me.

Unintended behaviour when browsing ncmpcpp media library with mopidy-youtube

Hi,

The media library in ncmpcpp works great with mopidy-spotify, but not so well when also mopidy-youtube is enabled. As an example, when I try to explore the artist Serengeti's album "Be a Man", the mopidy output is the following:

INFO Searching Spotify for: album:"Be a Man" artist:"Serengeti"
INFO Searching YouTube for query 'Be a Man'

Obviously, the Spotify search is correct, while the Youtube search yields a bunch of results that are completely irrelevant and that makes it inconvenient to quickly and easily add the album to my current playlist (instead I am forced to mark the Spotify results and avoid the Youtube ones). It seems to me that a better solution would simply be to disable Youtube searching when this particular functionality is used (though I have no idea how easy/hard this would be to do).

I appreciate a lot the possibility to search for Youtube videos in the ncmcpcc search engine, but right now it seems like I have to choose between this or the media library feature. Hopefully it will be possible to have both.

Got missing-plugin message: description:audio/x-unknown decoder on Debian Wheezy

I am getting Got missing-plugin message: description:audio/x-unknown decoder when I attempt to play this video. Half of my problem with this bug is that it will not play the stream, the other half is that mopidy gets stuck on this track and will not advance to the next one without calling PlaybackController.next(). Also note that this problem happens with other videos as well.

I have isolated my system configuration to the following Dockerfile to reproduce the environment:

FROM python:2.7
MAINTAINER jghibiki <[email protected]>

RUN wget -q -O - https://apt.mopidy.com/mopidy.gpg | apt-key add -
RUN wget -q -O /etc/apt/sources.list.d/mopidy.list https://apt.mopidy.com/mopidy.list
RUN apt-get update && apt-get install gstreamer0.10 gstreamer0.10-plugins-bad gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly gstreamer1.0 gstreamer0.10-plugins-bad python-requests python-setuptools python-pafy mopidy mopidy-youtube --assume-yes

ADD ./mopidy.conf /root/.config/mopidy/mopidy.conf

RUN /usr/bin/mopidy deps

CMD /usr/bin/mopidy -v

The result of the mopidy deps call made while building the docker image:

Executable: /usr/bin/mopidy
Platform: Linux-4.1.3-1-ARCH-x86_64-with-debian-8.0
Python: CPython 2.7.9 from /usr/lib/python2.7
Mopidy: 1.1.0 from /usr/lib/python2.7/dist-packages
  Pykka>=1.1: 1.2.1 from /usr/lib/python2.7/dist-packages
  requests: 2.4.3 from /usr/lib/python2.7/dist-packages
  tornado>=2.3: 3.2.2 from /usr/lib/python2.7/dist-packages
Mopidy-Youtube: 2.0.0 from /usr/lib/python2.7/dist-packages
  requests>=2.2.1: 2.4.3 from /usr/lib/python2.7/dist-packages
  pafy>=0.3.35: 0.3.62 from /usr/lib/python2.7/dist-packages
  Mopidy>=1.0: 1.1.0 from /usr/lib/python2.7/dist-packages
    Pykka>=1.1: 1.2.1 from /usr/lib/python2.7/dist-packages
    requests: 2.4.3 from /usr/lib/python2.7/dist-packages
    tornado>=2.3: 3.2.2 from /usr/lib/python2.7/dist-packages
  Pykka>=1.1: 1.2.1 from /usr/lib/python2.7/dist-packages
GStreamer: 0.10.36.0 from /usr/lib/python2.7/dist-packages/gst-0.10/gst
  Detailed information:
    Python wrapper: gst-python 0.10.22.0
    Relevant elements:
      Found:
        uridecodebin
        souphttpsrc
        appsrc
        alsasink
        osssink
        oss4sink
        pulsesink
        flump3dec
        id3demux
        id3v2mux
        lame
        mad
        mp3parse
        vorbisdec
        vorbisenc
        vorbisparse
        oggdemux
        oggmux
        oggparse
        flacdec
        flacparse
        shout2send
      Not found:
        none

Log of request and play events when requesting the track in question:

mopidy_1 | DEBUG    2015-08-19 15:03:42,693 [6:HttpServer] mopidy.http.handlers
mopidy_1 |   Received RPC message from 172.17.0.162: ' {"jsonrpc": "2.0", "id": 1, "method": "core.tracklist.add", "params": {"uri":"yt:https://youtube.com/watch?v=8xXOYmGzKCo"}}'
mopidy_1 | WARNING  2015-08-19 15:03:42,942 [6:YoutubeBackend-6] root
mopidy_1 |   Unknown itag: 278
mopidy_1 | DEBUG    2015-08-19 15:03:42,945 [6:Core-7] mopidy.core.tracklist
mopidy_1 |   Triggering event: tracklist_changed()
mopidy_1 | DEBUG    2015-08-19 15:03:42,946 [6:MainThread] mopidy.listener
mopidy_1 |   Sending tracklist_changed to CoreListener: {}
mopidy_1 | DEBUG    2015-08-19 15:03:43,373 [6:HttpServer] mopidy.http.handlers
mopidy_1 |   Received RPC message from 172.17.0.162: ' {"jsonrpc": "2.0", "id": 1, "method": "core.playback.get_state"}'
mopidy_1 | DEBUG    2015-08-19 15:03:43,815 [6:HttpServer] mopidy.http.handlers
mopidy_1 |   Received RPC message from 172.17.0.162: ' {"jsonrpc": "2.0", "id": 1, "method": "core.playback.play"}'
mopidy_1 | DEBUG    2015-08-19 15:03:43,817 [6:Core-7] mopidy.core.playback
mopidy_1 |   Changing state: stopped -> playing
mopidy_1 | DEBUG    2015-08-19 15:03:43,817 [6:Core-7] mopidy.core.playback
mopidy_1 |   Triggering playback state change event
mopidy_1 | DEBUG    2015-08-19 15:03:43,818 [6:MainThread] mopidy.listener
mopidy_1 |   Sending playback_state_changed to CoreListener: {'old_state': u'stopped', 'new_state': u'playing'}
mopidy_1 | DEBUG    2015-08-19 15:03:43,820 [6:Audio-2] mopidy.audio.gst
mopidy_1 |   State change to GST_STATE_READY: result=GST_STATE_CHANGE_SUCCESS
mopidy_1 | DEBUG    2015-08-19 15:03:43,821 [6:MainThread] mopidy.audio.gst
mopidy_1 |   Got state-changed message: old=GST_STATE_NULL new=GST_STATE_READY pending=GST_STATE_VOID_PENDING
mopidy_1 | DEBUG    2015-08-19 15:03:43,821 [6:YoutubeBackend-6] mopidy_youtube
mopidy_1 |   Resolving Youtube for track 'youtube:video/Memphis May Fire - My Generation (Official Lyric Video).8xXOYmGzKCo'
mopidy_1 | WARNING  2015-08-19 15:03:44,089 [6:YoutubeBackend-6] root
mopidy_1 |   Unknown itag: 278
mopidy_1 | DEBUG    2015-08-19 15:03:44,091 [6:YoutubeBackend-6] mopidy_youtube
mopidy_1 |   Memphis May Fire - My Generation (Official Lyric Video) - 128k audio ogg
mopidy_1 | DEBUG    2015-08-19 15:03:44,587 [6:YoutubeBackend-6] mopidy.backend
mopidy_1 |   Backend translated URI from youtube:video/Memphis May Fire - My Generation (Official Lyric Video).8xXOYmGzKCo to https://r19---sn-25ge7n7e.googlevideo.com/videoplayback?lmt=1432620093786318&requiressl=yes&gir=yes&gcr=us&dur=241.861&pl=18&itag=251&keepalive=yes&source=youtube&expire=1440018224&mime=audio%2Fwebm&sparams=clen%2Cdur%2Cgcr%2Cgir%2Cid%2Cip%2Cipbits%2Citag%2Ckeepalive%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Crequiressl%2Csource%2Cupn%2Cexpire&sver=3&ipbits=0&fexp=9407478%2C9408710%2C9409069%2C9415365%2C9415485%2C9416023%2C9416126%2C9417707%2C9418153&clen=3800997&key=yt5&ip=134.129.90.208&ms=pm&mt=1439988847&mv=s&id=o-AIDQSFtOfZoQhfO03SiV5FgSs3P2g2ZI7mas023If9co&mm=35&mn=sn-25ge7n7e&upn=Z9hNj0dt97g&ratebypass=yes&signature=30D40E2603502B746B08D41F3AA3B8C2BA18B30D.30FB57E899323BE778E1683570902D576719C8BB
mopidy_1 | DEBUG    2015-08-19 15:03:44,588 [6:SoftwareMixer-1] mopidy.mixer
mopidy_1 |   Mixer event: volume_changed(volume=100)
mopidy_1 | DEBUG    2015-08-19 15:03:44,591 [6:MainThread] mopidy.listener
mopidy_1 |   Sending volume_changed to MixerListener: {'volume': 100}
mopidy_1 | DEBUG    2015-08-19 15:03:44,592 [6:Audio-2] mopidy.audio.gst
mopidy_1 |   Got source-setup: element=/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin3/GstSoupHTTPSrc:source (__main__.GstSoupHTTPSrc)
mopidy_1 | DEBUG    2015-08-19 15:03:44,594 [6:Audio-2] mopidy.audio.gst
mopidy_1 |   State change to GST_STATE_PLAYING: result=GST_STATE_CHANGE_ASYNC
mopidy_1 | DEBUG    2015-08-19 15:03:44,596 [6:Core-7] mopidy.core.playback
mopidy_1 |   Triggering track playback started event
mopidy_1 | DEBUG    2015-08-19 15:03:44,598 [6:MainThread] mopidy.listener
mopidy_1 |   Sending track_playback_started to CoreListener: {'tl_track': TlTrack(tlid=0, track=Track(album=Album(images=[u'', u'http://i.ytimg.com/vi/8xXOYmGzKCo/sddefault.jpg'], name=u'Youtube'), comment='8xXOYmGzKCo', length=242000, name=u'Memphis May Fire - My Generation (Official Lyric Video)', uri='youtube:video/Memphis May Fire - My Generation (Official Lyric Video).8xXOYmGzKCo'))}
mopidy_1 | DEBUG    2015-08-19 15:03:44,601 [6:MainThread] mopidy.listener
mopidy_1 |   Sending volume_changed to CoreListener: {'volume': 100}
mopidy_1 | DEBUG    2015-08-19 15:03:46,132 [6:MainThread] mopidy.audio.gst
mopidy_1 |   Got buffering message: percent=0%
mopidy_1 | DEBUG    2015-08-19 15:03:46,136 [6:MainThread] mopidy.audio.gst
mopidy_1 |   Got missing-plugin message: description:audio/x-unknown decoder
mopidy_1 | WARNING  2015-08-19 15:03:46,136 [6:MainThread] mopidy.audio.actor
mopidy_1 |   Could not find a audio/x-unknown decoder to handle media.
mopidy_1 | INFO     2015-08-19 15:03:46,136 [6:MainThread] mopidy.audio.actor
mopidy_1 |   You might be able to fix this by running: gst-installer "gstreamer|0.10|mopidy|audio/x-unknown decoder|decoder-audio/x-unknown, codec-id=(string)A_OPUS"
mopidy_1 | WARNING  2015-08-19 15:03:46,137 [6:MainThread] mopidy.audio.gst
mopidy_1 |   There is no codec present that can handle the stream's type.
mopidy_1 | DEBUG    2015-08-19 15:03:46,137 [6:MainThread] mopidy.audio.gst
mopidy_1 |   gsturidecodebin.c(874): unknown_type_cb (): /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin3
mopidy_1 | ERROR    2015-08-19 15:03:46,138 [6:MainThread] mopidy.audio.gst
mopidy_1 |   Your GStreamer installation is missing a plug-in.
mopidy_1 | DEBUG    2015-08-19 15:03:46,138 [6:MainThread] mopidy.audio.gst
mopidy_1 |   gstdecodebin2.c(3576): gst_decode_bin_expose (): /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin3/GstDecodeBin2:decodebin23:
mopidy_1 | no suitable plugins found
mopidy_1 | DEBUG    2015-08-19 15:03:46,142 [6:MainThread] mopidy.audio.gst
mopidy_1 |   State change to GST_STATE_NULL: result=GST_STATE_CHANGE_SUCCESS

EDIT:

It maybe helpful to note that:

You might be able to fix this by running: gst-installer "gstreamer|0.10|mopidy|audio/x-unknown decoder|decoder-audio/x-unknown, codec-id=(string)A_OPUS"

does not work on this system as gst-installer does not exist (there is a gstreamer-codec-installer) however it requires an X org display to attach to making it in-ideal for headless environments.

Title parsing fails

Title parsing fails for many videos that contain a '-'. Assuming that a dash always splits artist and title is way too generic.

Example:

Q-Dance Presents: Scantraxx 10 years | Official Q-dance Trailer

Long loading times for long Youtube videos

Hey, when playing long youtube videos (e.g. longer than an hour) it takes mopidy up to 30 seconds to start playing the video. Is there anything I could do to shorten that time? Thanks!

Your GStreamer installation is missing a plug-in

I get this error when mopidy play this video https://youtu.be/uISfZEdqdAM

WARNING  Could not find a audio/x-unknown decoder to handle media.
INFO     You might be able to fix this by running: gst-installer "gstreamer|0.10|mopidy|audio/x-unknown decoder|decoder-audio/x-unknown, codec-id=(string)A_OPUS"
WARNING  There is no codec present that can handle the stream's type.
ERROR    Your GStreamer installation is missing a plug-in.

Ubuntu 14.04 x64
Pafy 0.3.74
Plugins:

user@mail:~# apt-cache search -n gstreamer0.10-plugins
gstreamer0.10-plugins-base - GStreamer plugins from the "base" set
gstreamer0.10-plugins-base-apps - GStreamer helper programs from the "base" set
gstreamer0.10-plugins-base-dbg - GStreamer plugins from the "base" set
gstreamer0.10-plugins-base-doc - GStreamer documentation for plugins from the "base" set
gstreamer0.10-plugins-good - GStreamer plugins from the "good" set
gstreamer0.10-plugins-good-dbg - GStreamer plugins from the "good" set
gstreamer0.10-plugins-good-doc - GStreamer documentation for plugins from the "good" set
gstreamer0.10-plugins-bad-multiverse - GStreamer plugins from the "bad" set (Multiverse Variant)
gstreamer0.10-plugins-bad-multiverse-dbg - GStreamer plugins from the "bad" set (Multiverse Variant)
gstreamer0.10-plugins-bad - GStreamer plugins from the "bad" set
gstreamer0.10-plugins-bad-dbg - GStreamer plugins from the "bad" set (debug symbols)
gstreamer0.10-plugins-bad-doc - GStreamer documentation for plugins from the "bad" set
gstreamer0.10-plugins-cutter - Cutter GStreamer plugin
gstreamer0.10-plugins-ugly - GStreamer plugins from the "ugly" set
gstreamer0.10-plugins-ugly-dbg - GStreamer plugins from the "ugly" set (debug symbols)
gstreamer0.10-plugins-ugly-doc - GStreamer documentation for plugins from the "ugly" set

Add support for exact search

Using Mopidy 1.1.1 and mopidy-youtube 2.0.1 on a Raspberry Pi running Raspbian Jessie and using musicbox_webclient. Searches return no result; verbose logs show:

INFO     2015-10-22 20:12:27,413 [8435:YouTubeBackend-7] mopidy_youtube
  Searching YouTube for query 'hello'
INFO     2015-10-22 20:12:27,431 [8435:YouTubeBackend-7] requests.packages.urllib3.connectionpool
  Starting new HTTPS connection (1): www.googleapis.com
WARNING  2015-10-22 20:12:33,097 [8435:Core-11] mopidy.core.library
  YouTubeBackend does not implement library.search() with "exact" support. Please upgrade it.

GStreamer warning: gst-stream-error-quark: No volume control found (3)

When I try to play a yt: link, the player downloads the corresponding picture, the timer starts counting, but I can't hear any sound. On the console I get:
WARNING GStreamer warning: gst-stream-error-quark: No volume control found (3)

I can play musik from "local" successfully.

error when searching

When making a search i get the following error on the console and no results show up:

INFO     Searching YouTube for query 'Lescop - La Foret'
INFO     cannot import name unquote_plus
INFO     cannot import name unquote_plus
INFO     cannot import name unquote_plus
INFO     cannot import name unquote_plus
INFO     cannot import name unquote_plus
INFO     cannot import name unquote_plus
INFO     cannot import name unquote_plus
INFO     cannot import name unquote_plus
INFO     cannot import name unquote_plus
INFO     cannot import name unquote_plus
INFO     cannot import name unquote_plus
INFO     cannot import name unquote_plus
INFO     cannot import name unquote_plus
INFO     cannot import name unquote_plus
INFO     cannot import name unquote_plus

Doesn't work at all

It works to add the videos to the playlist and the title-parser works, too.
But if i try to play the playlist, mopidy says:

WARNING  There is no codec present that can handle the stream's type. Debug message: gsturidecodebin.c(874): unknown_type_cb (): /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin1 

ERROR    Your GStreamer installation is missing a plug-in. Debug message: gstdecodebin2.c(3576): gst_decode_bin_expose (): /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin1/GstDecodeBin2:decodebin20:
no suitable plugins found

I tried to install all plugin-packages for gstreamer, restarted mopidy, restarted the server, nothing helped, still doesn't work!

pafy vs youtube-dl

pafy >0.3.74 has started depending on youtube-dl. Should we use youtube-dl directly instead of pafy?

Extract youtube songs from youtube playlist. My idea.

Hi, it would be great to implement thing such a this. I wrote a bash script to grab all videos from youtube playlist, so you can play/skip/control every single song instead of playing whole playlist as a stream. You should have option to select the Youtube plalist url and name of Playlist a rest will do a youtube addon. It should scrap playlist url periodically, so you would have newest playlist synced with youtube. ..
... but it has yet two problems:

Download only newest videos to playlist:
ytdl-org/youtube-dl#5502

Stop searching after last added video is found:
ytdl-org/youtube-dl#5503

!/bin/bash

nameofplaylist="majestic_casual"
playlisturl="https://www.youtube.com/playlist?list=UUXIyz409s7bNWVcM-vjfdVA"
pathtoplaylist="/opt/ytdl/playlists/'$nameofplaylist'"
echo "#EXTM3U, '$nameofpl'" > $pathtpl
/opt/ytdl/youtube-dl $playlisturl -e --get-id --get-duration |
while read name;
read yturl;
read lenght; do
echo "#EXTINF:0,$name [ $lenght ]" >> $pathtoplaylist
echo "yt:http://www.youtube.com/watch?v=$yturl" >> $pathtoplaylist
done

gst-stream-error-quark: No decoder available for type 'audio/x-opus'

DEBUG    2017-01-03 14:56:43,761 [8106:MainThread] mopidy.audio.gst
  Got missing-plugin bus message: description='Opus decoder'
WARNING  2017-01-03 14:56:43,762 [8106:MainThread] mopidy.audio.actor
  Could not find a Opus decoder to handle media.
WARNING  2017-01-03 14:56:43,762 [8106:MainThread] mopidy.audio.gst
  GStreamer warning: gst-stream-error-quark: No decoder available for type 'audio/x-opus, rate=(int)48000, channels=(int)2, channel-mapping-family=(int)0, stream-count=(int)1, coupled-count=(int)1, streamheader=(buffer)< 4f707573486561640102380180bb0000000000, 4f707573546167731f0000004753747265616d657220656e636f64656420766f72626973636f6d6d656e740000000001 >'. (6)

Running OSX 10.12.1
Running gst-inspect, the opus decoder isn't there (yes the libav one is, but I'm not sure that's used, or is possible to use)

$ gst-inspect-1.0 | grep opus
libav:  avdec_opus: libav Opus decoder
libav:  avdec_cllc: libav Canopus Lossless Codec decoder
libav:  avdec_hq_hqa: libav Canopus HQ/HQA decoder
libav:  avdec_hqx: libav Canopus HQX decoder
libav:  avmux_opus: libav Ogg Opus muxer
rtp:  rtpopuspay: RTP Opus payloader
rtp:  rtpopusdepay: RTP Opus packet depayloader
opusparse:  opusparse: Opus audio parser

All packages are installed and up to date in brew

$ brew list | grep gst
gst-libav
gst-plugins-bad
gst-plugins-base
gst-plugins-good
gst-plugins-ugly
gst-python
gstreamer

is there a way to manually add in the decoder binaries from https://opus-codec.org/downloads/ maybe?

SSL Error when searching

I get the following error when I am trying to search using mopidy-youtube:

2016-02-11 20:43:35,388 ERROR [4530:Core-10] mopidy.core.library: YouTubeBackend backend caused an exception.
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/mopidy/core/library.py", line 19, in _backend_error_handling
    yield
  File "/usr/lib/python2.7/dist-packages/mopidy/core/library.py", line 344, in search
    result = future.get()
  File "/usr/lib/python2.7/dist-packages/pykka/threading.py", line 52, in get
    compat.reraise(*self._data['exc_info'])
  File "/usr/lib/python2.7/dist-packages/pykka/compat.py", line 12, in reraise
    exec('raise tp, value, tb')
  File "/usr/lib/python2.7/dist-packages/pykka/actor.py", line 201, in _actor_loop
    response = self._handle_receive(message)
  File "/usr/lib/python2.7/dist-packages/pykka/actor.py", line 295, in _handle_receive
    return callee(*message['args'], **message['kwargs'])
  File "/usr/local/lib/python2.7/dist-packages/mopidy_youtube/backend.py", line 192, in search
    tracks=search_youtube(search_query)
  File "/usr/local/lib/python2.7/dist-packages/mopidy_youtube/backend.py", line 98, in search_youtube
    result = session.get(yt_api_endpoint+'search', params=query)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 480, in get
    return self.request('GET', url, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 468, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 576, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", line 447, in send
    raise SSLError(e, request=request)
SSLError: bad handshake: Error([('SSL routines', 'SSL3_GET_SERVER_CERTIFICATE', 'certificate verify failed')],)

Trying to add a playlist

Got an exception while trying to add a youtube playlist

Playlist : https://www.youtube.com/playlist?list=LLdUp_BzeBZx6GKJpALjBooQ
Command : add "yt:https://www.youtube.com/playlist\?list\=LLdUp_BzeBZx6GKJpALjBooQ"

Log :

DEBUG    2017-04-14 03:10:36,387 [9923:MpdSession-15] mopidy.mpd.session
  Request from [::ffff:127.0.0.1]:33504: add "yt:https://www.youtube.com/playlist?list=LLdUp_BzeBZx6GKJpALjBooQ"
INFO     2017-04-14 03:10:36,392 [9923:YouTubeBackend-7] mopidy_youtube
  Resolving YouTube-Playlist 'LLdUp_BzeBZx6GKJpALjBooQ'
ERROR    2017-04-14 03:10:36,595 [9923:Core-9] mopidy.core.library
  YouTubeBackend backend caused an exception.
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/mopidy/core/library.py", line 19, in _backend_error_handling
    yield
  File "/usr/lib/python2.7/site-packages/mopidy/core/library.py", line 236, in lookup
    result = future.get()
  File "/usr/lib/python2.7/site-packages/pykka/future.py", line 299, in get
    exec('raise exc_info[0], exc_info[1], exc_info[2]')
  File "/usr/lib/python2.7/site-packages/pykka/actor.py", line 200, in _actor_loop
    response = self._handle_receive(message)
  File "/usr/lib/python2.7/site-packages/pykka/actor.py", line 294, in _handle_receive
    return callee(*message['args'], **message['kwargs'])
  File "/usr/lib/python2.7/site-packages/mopidy_youtube/backend.py", line 158, in lookup
    return resolve_playlist(req.get('list')[0])
  File "/usr/lib/python2.7/site-packages/mopidy_youtube/backend.py", line 130, in resolve_playlist
    for item in data["items"]:
KeyError: u'items'
DEBUG    2017-04-14 03:10:36,613 [9923:MpdSession-15] mopidy.mpd.session
  Response to [::ffff:127.0.0.1]:33504: ACK [50@0] {add} directory or file not found
DEBUG    2017-04-14 03:10:36,613 [9923:MpdSession-15] mopidy.mpd.session
  Request from [::ffff:127.0.0.1]:33504: load "yt:https://www.youtube.com/playlist?list=LLdUp_BzeBZx6GKJpALjBooQ"
DEBUG    2017-04-14 03:10:36,625 [9923:MpdSession-15] mopidy.mpd.session
  Response to [::ffff:127.0.0.1]:33504: ACK [50@0] {load} No such playlist
DEBUG    2017-04-14 03:10:36,626 [9923:MpdSession-15] mopidy.mpd.session
  Request from [::ffff:127.0.0.1]:33504: idle

Show Album Show Artist and List Divider shouldn't show up

In playlists, there is the list divider "Youtube" which pretends youtube to be an album. When clicked, it leads into nirvana. Equally, the pop-ups show "Show Album YouTube" and "Show Artist YouTube" which make no sense and do not work. All this could maybe just discarded, like other stream extensions like SomaFM do.
I will look for it in deapth when I have the time. At the moment, I just commented it out locally for all tracks, since I don't use it - too many features confuse the user and musicbox doesn't have to replace google, in my opinion.

Generally: The extension is so wonderful, thank you all!

Can't play Youtube song

I get this error message

INFO     Need 11 character video id or the URL of the video. Got //youtube:video/kidd funkadelic - maggot brain.3aAzdHnYfuk
ERROR    YoutubeBackend backend returned bad data: Expected a list of Track, not [None]

`None` may be returned from YoutubeLibraryProvider::lookup

As described here, resolve_url might fail for certain youtube search results. For me, searching for "Dangervisit" returns mainly unavailable videos, however that might be dependant on my geographical location.
If that happens, the lookup returns [ None ] instead of [], in turn causing an exception in MpdSession.

Probably it'd be better to check the results in YoutubeLibraryProvider::search, however it seemed to seriously slow the search down, oftentimes resulting in client disconnection.

Option to disable general youtube searches

Hey @dz0ny,

Is there any chance that you'd consider a configuration option that ensures that searches only call the youtube API if the query has the yt: prefix?

To elaborate: Our office runs Mopidy on a Raspberry Pi and performance is often an issue for us. We've found that searching has started to take considerably longer with mopidy-youtube enabled. On investigation, I noticed that general queries are being passed through to youtube's API.

All of which is quite cool but is hitting the performance for the users in the office. I think that some sort of flag that disables that particular search would be amazing for us.

I've taken a look at backend.py and can see how to do this. I'm not a Python developer, however I'll have a look at setting up a Python stack so that I can write a test and implement it. As we've reached that time of year, parties and celebrations and stuff, it might take me a few weeks to complete though!

Thanks,
Paul.

Issue with gstreamer plugin

Hello,
when i try to stream youtube links i get this error:

WARNING Could not find a text/html decoder to handle media. WARNING GStreamer warning: gst-stream-error-quark: No decoder available for type 'text/html'. (6) ERROR GStreamer error: gst-core-error-quark: Your GStreamer installation is missing a plug-in. (12)

Shouldn't gstreamer plugins already be installed from mopidy's apt?
I run debian jessie and mopidy 2.0 on my machine

Unable to install extension

Hey,
this is my first time posting so bear with me. Tried installing the extension after successfully setting up mopidy so far. I'm on ubuntu 14.04 server, connected via putty.
Installing via apt-get doesn't work, It's asking me for other dependencies:

Package python-pafy is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'python-pafy' has no installation candidate

Installing via pip gives me:

lxmad@lxmads:~/Music$ pip install Mopidy-Youtube
Downloading/unpacking Mopidy-Youtube
  Downloading Mopidy_Youtube-2.0.2-py2.py3-none-any.whl
Requirement already satisfied (use --upgrade to upgrade): requests>=2.2.1 in /usr/lib/python2.7/dist-packages (from Mopidy-Youtube)
Requirement already satisfied (use --upgrade to upgrade): setuptools in /usr/lib/python2.7/dist-packages (from Mopidy-Youtube)
Downloading/unpacking pafy>=0.3.35 (from Mopidy-Youtube)
  Downloading pafy-0.5.0-py2.py3-none-any.whl
Requirement already satisfied (use --upgrade to upgrade): Pykka>=1.1 in /usr/lib/python2.7/dist-packages (from Mopidy-Youtube)
Requirement already satisfied (use --upgrade to upgrade): Mopidy>=1.0 in /usr/lib/python2.7/dist-packages (from Mopidy-Youtube)
Requirement already satisfied (use --upgrade to upgrade): tornado>=2.3 in /usr/lib/python2.7/dist-packages (from Mopidy>=1.0->Mopidy-Youtube)
Installing collected packages: Mopidy-Youtube, pafy
Cleaning up...
Exception:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 283, in run
    requirement_set.install(install_options, global_options, root=options.root_path)
  File "/usr/lib/python2.7/dist-packages/pip/req.py", line 1436, in install
    requirement.install(install_options, global_options, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/pip/req.py", line 672, in install
    self.move_wheel_files(self.source_dir, root=root)
  File "/usr/lib/python2.7/dist-packages/pip/req.py", line 902, in move_wheel_files
    pycompile=self.pycompile,
  File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 206, in move_wheel_files
    clobber(source, lib_dir, True)
  File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 193, in clobber
    os.makedirs(destsubdir)
  File "/usr/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/Mopidy_Youtube-2.0.2.dist-info'

Storing debug log for failure in /home/lxmad/.pip/pip.log

And pip.log:

lxmad@lxmads:~/.pip$ cat pip.log
------------------------------------------------------------
/usr/bin/pip run on Sat Mar  5 20:21:02 2016
Downloading/unpacking Mopidy-Youtube
  Getting page https://pypi.python.org/simple/Mopidy-Youtube/
  URLs to search for versions for Mopidy-Youtube:
  * https://pypi.python.org/simple/Mopidy-Youtube/
  Analyzing links from page https://pypi.python.org/simple/mopidy-youtube/
    Found link https://pypi.python.org/packages/py2.py3/M/Mopidy-Youtube/Mopidy_Youtube-2.0.1-py2.py3-none-any.whl#md5=97f44b6c1100643e96d66c7ea2ba1441 (from https://pypi.python.org/simple/mopidy-youtube/), version: 2.0.1
    Found link https://pypi.python.org/packages/py2.py3/M/Mopidy-Youtube/Mopidy_Youtube-2.0.2-py2.py3-none-any.whl#md5=8b91b8def79ad0e8447b2c8ba04baf71 (from https://pypi.python.org/simple/mopidy-youtube/), version: 2.0.2
    Found link https://pypi.python.org/packages/source/M/Mopidy-Youtube/Mopidy-Youtube-1.0.2.tar.gz#md5=b10ddb0d7db1233b8d53945f13c4bc54 (from https://pypi.python.org/simple/mopidy-youtube/), version: 1.0.2
    Found link https://pypi.python.org/packages/source/M/Mopidy-Youtube/Mopidy-Youtube-2.0.0.tar.gz#md5=463e2adb9f7af04ce0a282930329c387 (from https://pypi.python.org/simple/mopidy-youtube/), version: 2.0.0
    Found link https://pypi.python.org/packages/source/M/Mopidy-Youtube/Mopidy-Youtube-2.0.1.tar.gz#md5=6932f8c4ed6a24aa0fd64a39edad022c (from https://pypi.python.org/simple/mopidy-youtube/), version: 2.0.1
    Found link https://pypi.python.org/packages/source/M/Mopidy-Youtube/Mopidy-Youtube-2.0.2.tar.gz#md5=4105886936d766c3995a96022d52ec35 (from https://pypi.python.org/simple/mopidy-youtube/), version: 2.0.2
  Using version 2.0.2 (newest of versions: 2.0.2, 2.0.2, 2.0.1, 2.0.1, 2.0.0, 1.0.2)
  Downloading Mopidy_Youtube-2.0.2-py2.py3-none-any.whl
  Downloading from URL https://pypi.python.org/packages/py2.py3/M/Mopidy-Youtube/Mopidy_Youtube-2.0.2-py2.py3-none-any.whl#md5=8b91b8def79ad0e8447b2c8ba04baf71 (from https://pypi.python.org/simple/mopidy-youtube/)
Requirement already satisfied (use --upgrade to upgrade): requests>=2.2.1 in /usr/lib/python2.7/dist-packages (from Mopidy-Youtube)
Requirement already satisfied (use --upgrade to upgrade): setuptools in /usr/lib/python2.7/dist-packages (from Mopidy-Youtube)
  skipping extra ssl:sys_platform=='win32'
  skipping extra certs
Downloading/unpacking pafy>=0.3.35 (from Mopidy-Youtube)
  Getting page https://pypi.python.org/simple/pafy/
  URLs to search for versions for pafy>=0.3.35 (from Mopidy-Youtube):
  * https://pypi.python.org/simple/pafy/
  Analyzing links from page https://pypi.python.org/simple/pafy/
    Found link https://pypi.python.org/packages/2.7/p/pafy/Pafy-0.3.44-py2.py3-none-any.whl#md5=939608ec9b52ee372ab5f1d68602ca7a (from https://pypi.python.org/simple/pafy/), version: 0.3.44
    Found link https://pypi.python.org/packages/2.7/p/pafy/Pafy-0.3.46-py2.py3-none-any.whl#md5=6fc1ca20d8cc5c1629d3727669852a1e (from https://pypi.python.org/simple/pafy/), version: 0.3.46
    Found link https://pypi.python.org/packages/2.7/p/pafy/Pafy-0.3.48-py2.py3-none-any.whl#md5=9a154fcc83749a794b6f5dfcc4cafe15 (from https://pypi.python.org/simple/pafy/), version: 0.3.48
    Found link https://pypi.python.org/packages/2.7/p/pafy/Pafy-0.3.50-py2.py3-none-any.whl#md5=c4f58452ea8069e489a9b733e8073461 (from https://pypi.python.org/simple/pafy/), version: 0.3.50
    Found link https://pypi.python.org/packages/2.7/p/pafy/Pafy-0.3.52-py2.py3-none-any.whl#md5=2f755172af3d1aa60b2689d78a416b5d (from https://pypi.python.org/simple/pafy/), version: 0.3.52
    Found link https://pypi.python.org/packages/2.7/p/pafy/Pafy-0.3.54-py2.py3-none-any.whl#md5=24d44fbd4c7860ddf7cfffd559e103c2 (from https://pypi.python.org/simple/pafy/), version: 0.3.54
    Found link https://pypi.python.org/packages/2.7/p/pafy/Pafy-0.3.56-py2.py3-none-any.whl#md5=b458a4589784e95fbfadfe3bc984de9c (from https://pypi.python.org/simple/pafy/), version: 0.3.56
    Found link https://pypi.python.org/packages/2.7/p/pafy/Pafy-0.3.58-py2.py3-none-any.whl#md5=e37728a16b8c36c61ea45ae2a0f8e278 (from https://pypi.python.org/simple/pafy/), version: 0.3.58
    Found link https://pypi.python.org/packages/2.7/p/pafy/Pafy-0.3.60-py2.py3-none-any.whl#md5=5ee4c3ee09f2dff5b4f4df298fc9ad54 (from https://pypi.python.org/simple/pafy/), version: 0.3.60
    Found link https://pypi.python.org/packages/2.7/p/pafy/Pafy-0.3.62-py2.py3-none-any.whl#md5=eec1dee2727818aac644a5e1296d912d (from https://pypi.python.org/simple/pafy/), version: 0.3.62
    Found link https://pypi.python.org/packages/2.7/p/pafy/Pafy-0.3.64-py2.py3-none-any.whl#md5=9107ac44bc4b47e8c42ec0ac7ce28fbf (from https://pypi.python.org/simple/pafy/), version: 0.3.64
    Found link https://pypi.python.org/packages/2.7/p/pafy/Pafy-0.3.66-py2.py3-none-any.whl#md5=340b927792b2159b6c490adb594eb1cf (from https://pypi.python.org/simple/pafy/), version: 0.3.66
    Found link https://pypi.python.org/packages/2.7/p/pafy/Pafy-0.3.70-py2.py3-none-any.whl#md5=0bd490cbe711b943ea76d4829a3cdf9b (from https://pypi.python.org/simple/pafy/), version: 0.3.70
    Found link https://pypi.python.org/packages/2.7/p/pafy/Pafy-0.3.72-py2.py3-none-any.whl#md5=a728b3f55e939d78f101fa056e732f68 (from https://pypi.python.org/simple/pafy/), version: 0.3.72
    Found link https://pypi.python.org/packages/3.4/p/pafy/Pafy-0.3.68-py2.py3-none-any.whl#md5=324ca595c6720ed8ddf4321884c51a88 (from https://pypi.python.org/simple/pafy/), version: 0.3.68
    Found link https://pypi.python.org/packages/3.5/p/pafy/pafy-0.3.76-py2.py3-none-any.whl#md5=754243383e9e7dafa2a6d28b914efab5 (from https://pypi.python.org/simple/pafy/), version: 0.3.76
    Found link https://pypi.python.org/packages/3.5/p/pafy/pafy-0.3.78-py2.py3-none-any.whl#md5=024a73cca2e132bd47d729dd02ae099b (from https://pypi.python.org/simple/pafy/), version: 0.3.78
    Found link https://pypi.python.org/packages/3.5/p/pafy/pafy-0.3.80-py2.py3-none-any.whl#md5=287272e87ba6554ca278796896cf2bc5 (from https://pypi.python.org/simple/pafy/), version: 0.3.80
    Found link https://pypi.python.org/packages/3.5/p/pafy/pafy-0.3.82-py2.py3-none-any.whl#md5=660a6459cf0179259b9120106e66ea5f (from https://pypi.python.org/simple/pafy/), version: 0.3.82
    Found link https://pypi.python.org/packages/3.5/p/pafy/pafy-0.4.0-py2.py3-none-any.whl#md5=b60398ce69abcbb4c60ccc68f7c18b4b (from https://pypi.python.org/simple/pafy/), version: 0.4.0
    Found link https://pypi.python.org/packages/3.5/p/pafy/pafy-0.4.1-py2.py3-none-any.whl#md5=0340851a5caa7fb63acb906741ae467e (from https://pypi.python.org/simple/pafy/), version: 0.4.1
    Found link https://pypi.python.org/packages/3.5/p/pafy/pafy-0.4.2-py2.py3-none-any.whl#md5=8f7e20cdbcd03e1f6b4df9138ad8984c (from https://pypi.python.org/simple/pafy/), version: 0.4.2
    Found link https://pypi.python.org/packages/3.5/p/pafy/pafy-0.4.3-py2.py3-none-any.whl#md5=64813b86471dcde9bae2ada693f9c00b (from https://pypi.python.org/simple/pafy/), version: 0.4.3
    Found link https://pypi.python.org/packages/3.5/p/pafy/pafy-0.5.0-py2.py3-none-any.whl#md5=817e2d17551a0e03bca780dbe8da83cc (from https://pypi.python.org/simple/pafy/), version: 0.5.0
    Found link https://pypi.python.org/packages/py2.py3/p/pafy/pafy-0.3.74-py2.py3-none-any.whl#md5=9928971299be16a38a5bb134b63c2a04 (from https://pypi.python.org/simple/pafy/), version: 0.3.74
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.1.tar.gz#md5=467596b92b4704d7c0ac60afafb0658d (from https://pypi.python.org/simple/pafy/), version: 0.1
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.01.tar.gz#md5=939e12106ad46a333e31db55f793658a (from https://pypi.python.org/simple/pafy/), version: 0.3.01
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.02.tar.gz#md5=4ad675b6df8e59489fd287a8f347441d (from https://pypi.python.org/simple/pafy/), version: 0.3.02
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.03.tar.gz#md5=c9e67c3c728756e485adecc81bf11d17 (from https://pypi.python.org/simple/pafy/), version: 0.3.03
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.04.tar.gz#md5=8983cad6e546da11419289a06e2ff5d2 (from https://pypi.python.org/simple/pafy/), version: 0.3.04
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.05.tar.gz#md5=e1c9454303128b83d9bb4a5bb30b07b9 (from https://pypi.python.org/simple/pafy/), version: 0.3.05
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.06.tar.gz#md5=3ec066f29972d08a68a570231e08c131 (from https://pypi.python.org/simple/pafy/), version: 0.3.06
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.07.tar.gz#md5=28e0970f583652da90ff2d752dfc68b7 (from https://pypi.python.org/simple/pafy/), version: 0.3.07
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.08.tar.gz#md5=0d9c81eea021bce7521b66ea7bfdcca4 (from https://pypi.python.org/simple/pafy/), version: 0.3.08
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.09.tar.gz#md5=e0d38708fec4e827fe7fb1c006be980d (from https://pypi.python.org/simple/pafy/), version: 0.3.09
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.20.tar.gz#md5=51276da26ee9b4c725bda6925cb6e178 (from https://pypi.python.org/simple/pafy/), version: 0.3.20
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.21.tar.gz#md5=231ae6da95abd3bf15665756527e4c8c (from https://pypi.python.org/simple/pafy/), version: 0.3.21
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.22.tar.gz#md5=a3610a30b33acfc6fe88c00c0eee7ab5 (from https://pypi.python.org/simple/pafy/), version: 0.3.22
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.23.tar.gz#md5=af4c3fbf763483d4c8985e23c738bd11 (from https://pypi.python.org/simple/pafy/), version: 0.3.23
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.24.tar.gz#md5=482bff9371f0c24c4aa0b9ee4b8cc7d8 (from https://pypi.python.org/simple/pafy/), version: 0.3.24
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.25.tar.gz#md5=e5a59263dc1f720010efc71050be05d8 (from https://pypi.python.org/simple/pafy/), version: 0.3.25
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.26.tar.gz#md5=cd9c2b648bb56cbdcd77f8431060130f (from https://pypi.python.org/simple/pafy/), version: 0.3.26
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.27.tar.gz#md5=44b2368b4594cdf4d4e96636efe20311 (from https://pypi.python.org/simple/pafy/), version: 0.3.27
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.28.tar.gz#md5=cd94fc23d43fb489cf26e431ce6fa4c5 (from https://pypi.python.org/simple/pafy/), version: 0.3.28
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.29.tar.gz#md5=667b9f1184490b7460899909a3ac0fbf (from https://pypi.python.org/simple/pafy/), version: 0.3.29
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.30.tar.gz#md5=6e669cff0780813f586de4d35a3f258b (from https://pypi.python.org/simple/pafy/), version: 0.3.30
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.31.tar.gz#md5=3d3a0c3534a6a0b6de0372ce7652ce66 (from https://pypi.python.org/simple/pafy/), version: 0.3.31
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.32.tar.gz#md5=22cabc76eda23525c149f2dc5698f515 (from https://pypi.python.org/simple/pafy/), version: 0.3.32
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.33.tar.gz#md5=03f7a61bb198a246a8e7f7526f709c96 (from https://pypi.python.org/simple/pafy/), version: 0.3.33
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.34.tar.gz#md5=e81df2a84e189b62da45ebebee074e8d (from https://pypi.python.org/simple/pafy/), version: 0.3.34
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.35.tar.gz#md5=719afe4681fcb3e840e04da4096b24f0 (from https://pypi.python.org/simple/pafy/), version: 0.3.35
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.36.tar.gz#md5=c1a9e7287cd01e2c1ed83173224849cd (from https://pypi.python.org/simple/pafy/), version: 0.3.36
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.37.tar.gz#md5=9d4929950311dfd0690dabddd3caabbf (from https://pypi.python.org/simple/pafy/), version: 0.3.37
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.38.tar.gz#md5=2941aa20938bb91cafb6967a4830d3e3 (from https://pypi.python.org/simple/pafy/), version: 0.3.38
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.39.tar.gz#md5=2bb2098f5369192d84cd127890a9ab21 (from https://pypi.python.org/simple/pafy/), version: 0.3.39
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.40.tar.gz#md5=490f20587605694035b755cfd97dea5d (from https://pypi.python.org/simple/pafy/), version: 0.3.40
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.41.tar.gz#md5=a7fd7cb96c3a7e4fce4bdaac1fd66bbf (from https://pypi.python.org/simple/pafy/), version: 0.3.41
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.42.tar.gz#md5=dc5d9a8790daddf84d0765b9b4aab413 (from https://pypi.python.org/simple/pafy/), version: 0.3.42
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.44.tar.gz#md5=ead268e87539d030f4383db7686c1ccf (from https://pypi.python.org/simple/pafy/), version: 0.3.44
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.46.tar.gz#md5=6e8f832732f538c079b156457dc4f71f (from https://pypi.python.org/simple/pafy/), version: 0.3.46
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.48.tar.gz#md5=2dffcd43f2f8564999a566e1d336a04d (from https://pypi.python.org/simple/pafy/), version: 0.3.48
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.50.tar.gz#md5=9bdc61e076fb53b78613abc164dd4afd (from https://pypi.python.org/simple/pafy/), version: 0.3.50
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.52.tar.gz#md5=d41508f40f268aad1d5af0b33a32f655 (from https://pypi.python.org/simple/pafy/), version: 0.3.52
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.54.tar.gz#md5=61cde7a8eaedc1fd119e1874b08c7b31 (from https://pypi.python.org/simple/pafy/), version: 0.3.54
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.56.tar.gz#md5=792e90f46a9a8ed24394b7f2f4faefee (from https://pypi.python.org/simple/pafy/), version: 0.3.56
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.58.tar.gz#md5=dded795baf0345b5b221979806e6b820 (from https://pypi.python.org/simple/pafy/), version: 0.3.58
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.60.tar.gz#md5=bc7d7adfcbbf1a4f22355ad2b63b2a1f (from https://pypi.python.org/simple/pafy/), version: 0.3.60
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.62.tar.gz#md5=c2dc0d16b564c3b687b31a15583f57f6 (from https://pypi.python.org/simple/pafy/), version: 0.3.62
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.64.tar.gz#md5=b037a883bb714d32d7b632e058e43d62 (from https://pypi.python.org/simple/pafy/), version: 0.3.64
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.66.tar.gz#md5=9f155b5d6639d1f6e59dcb9e3261f7c9 (from https://pypi.python.org/simple/pafy/), version: 0.3.66
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.68.tar.gz#md5=f40904eb578b73e9d6d2e7319876b779 (from https://pypi.python.org/simple/pafy/), version: 0.3.68
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.70.tar.gz#md5=776c69866fe832bcba8b34fe535e070d (from https://pypi.python.org/simple/pafy/), version: 0.3.70
    Found link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.72.tar.gz#md5=f187d97432bf8a6ce2def245ab1b05a5 (from https://pypi.python.org/simple/pafy/), version: 0.3.72
    Found link https://pypi.python.org/packages/source/p/pafy/pafy-0.3.74.tar.gz#md5=fbf0e7f85914eaf35f87837232eec09c (from https://pypi.python.org/simple/pafy/), version: 0.3.74
    Found link https://pypi.python.org/packages/source/p/pafy/pafy-0.3.76.tar.gz#md5=c97d01148f8ab12bc336e7be8f097e38 (from https://pypi.python.org/simple/pafy/), version: 0.3.76
    Found link https://pypi.python.org/packages/source/p/pafy/pafy-0.3.78.tar.gz#md5=6a783d243006a7303edcbf8c0bfa5d82 (from https://pypi.python.org/simple/pafy/), version: 0.3.78
    Found link https://pypi.python.org/packages/source/p/pafy/pafy-0.3.80.tar.gz#md5=6d08c765be17556543828dfc26ba75ea (from https://pypi.python.org/simple/pafy/), version: 0.3.80
    Found link https://pypi.python.org/packages/source/p/pafy/pafy-0.3.82.tar.gz#md5=926c6da8a2897e00a5d0d6df6b1b1606 (from https://pypi.python.org/simple/pafy/), version: 0.3.82
    Found link https://pypi.python.org/packages/source/p/pafy/pafy-0.4.0.tar.gz#md5=813bad9c95d1e98d3bddb187c2b2cfbc (from https://pypi.python.org/simple/pafy/), version: 0.4.0
    Found link https://pypi.python.org/packages/source/p/pafy/pafy-0.4.1.tar.gz#md5=c433e995e6c9f9853067c43ca418bd01 (from https://pypi.python.org/simple/pafy/), version: 0.4.1
    Found link https://pypi.python.org/packages/source/p/pafy/pafy-0.4.2.tar.gz#md5=11aec35b54e352588d04c35b51b43786 (from https://pypi.python.org/simple/pafy/), version: 0.4.2
    Found link https://pypi.python.org/packages/source/p/pafy/pafy-0.4.3.tar.gz#md5=549c429514b3d4ca92f8c5b82842dc90 (from https://pypi.python.org/simple/pafy/), version: 0.4.3
    Found link https://pypi.python.org/packages/source/p/pafy/pafy-0.5.0.tar.gz#md5=2cee00625099b3f2856d466c77ee32a4 (from https://pypi.python.org/simple/pafy/), version: 0.5.0
  Ignoring link https://pypi.python.org/packages/source/p/pafy/Pafy-0.1.tar.gz#md5=467596b92b4704d7c0ac60afafb0658d (from https://pypi.python.org/simple/pafy/), version 0.1 doesn't match >=0.3.35
  Ignoring link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.01.tar.gz#md5=939e12106ad46a333e31db55f793658a (from https://pypi.python.org/simple/pafy/), version 0.3.01 doesn't match >=0.3.35
  Ignoring link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.02.tar.gz#md5=4ad675b6df8e59489fd287a8f347441d (from https://pypi.python.org/simple/pafy/), version 0.3.02 doesn't match >=0.3.35
  Ignoring link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.03.tar.gz#md5=c9e67c3c728756e485adecc81bf11d17 (from https://pypi.python.org/simple/pafy/), version 0.3.03 doesn't match >=0.3.35
  Ignoring link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.04.tar.gz#md5=8983cad6e546da11419289a06e2ff5d2 (from https://pypi.python.org/simple/pafy/), version 0.3.04 doesn't match >=0.3.35
  Ignoring link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.05.tar.gz#md5=e1c9454303128b83d9bb4a5bb30b07b9 (from https://pypi.python.org/simple/pafy/), version 0.3.05 doesn't match >=0.3.35
  Ignoring link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.06.tar.gz#md5=3ec066f29972d08a68a570231e08c131 (from https://pypi.python.org/simple/pafy/), version 0.3.06 doesn't match >=0.3.35
  Ignoring link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.07.tar.gz#md5=28e0970f583652da90ff2d752dfc68b7 (from https://pypi.python.org/simple/pafy/), version 0.3.07 doesn't match >=0.3.35
  Ignoring link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.08.tar.gz#md5=0d9c81eea021bce7521b66ea7bfdcca4 (from https://pypi.python.org/simple/pafy/), version 0.3.08 doesn't match >=0.3.35
  Ignoring link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.09.tar.gz#md5=e0d38708fec4e827fe7fb1c006be980d (from https://pypi.python.org/simple/pafy/), version 0.3.09 doesn't match >=0.3.35
  Ignoring link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.20.tar.gz#md5=51276da26ee9b4c725bda6925cb6e178 (from https://pypi.python.org/simple/pafy/), version 0.3.20 doesn't match >=0.3.35
  Ignoring link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.21.tar.gz#md5=231ae6da95abd3bf15665756527e4c8c (from https://pypi.python.org/simple/pafy/), version 0.3.21 doesn't match >=0.3.35
  Ignoring link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.22.tar.gz#md5=a3610a30b33acfc6fe88c00c0eee7ab5 (from https://pypi.python.org/simple/pafy/), version 0.3.22 doesn't match >=0.3.35
  Ignoring link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.23.tar.gz#md5=af4c3fbf763483d4c8985e23c738bd11 (from https://pypi.python.org/simple/pafy/), version 0.3.23 doesn't match >=0.3.35
  Ignoring link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.24.tar.gz#md5=482bff9371f0c24c4aa0b9ee4b8cc7d8 (from https://pypi.python.org/simple/pafy/), version 0.3.24 doesn't match >=0.3.35
  Ignoring link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.25.tar.gz#md5=e5a59263dc1f720010efc71050be05d8 (from https://pypi.python.org/simple/pafy/), version 0.3.25 doesn't match >=0.3.35
  Ignoring link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.26.tar.gz#md5=cd9c2b648bb56cbdcd77f8431060130f (from https://pypi.python.org/simple/pafy/), version 0.3.26 doesn't match >=0.3.35
  Ignoring link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.27.tar.gz#md5=44b2368b4594cdf4d4e96636efe20311 (from https://pypi.python.org/simple/pafy/), version 0.3.27 doesn't match >=0.3.35
  Ignoring link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.28.tar.gz#md5=cd94fc23d43fb489cf26e431ce6fa4c5 (from https://pypi.python.org/simple/pafy/), version 0.3.28 doesn't match >=0.3.35
  Ignoring link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.29.tar.gz#md5=667b9f1184490b7460899909a3ac0fbf (from https://pypi.python.org/simple/pafy/), version 0.3.29 doesn't match >=0.3.35
  Ignoring link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.30.tar.gz#md5=6e669cff0780813f586de4d35a3f258b (from https://pypi.python.org/simple/pafy/), version 0.3.30 doesn't match >=0.3.35
  Ignoring link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.31.tar.gz#md5=3d3a0c3534a6a0b6de0372ce7652ce66 (from https://pypi.python.org/simple/pafy/), version 0.3.31 doesn't match >=0.3.35
  Ignoring link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.32.tar.gz#md5=22cabc76eda23525c149f2dc5698f515 (from https://pypi.python.org/simple/pafy/), version 0.3.32 doesn't match >=0.3.35
  Ignoring link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.33.tar.gz#md5=03f7a61bb198a246a8e7f7526f709c96 (from https://pypi.python.org/simple/pafy/), version 0.3.33 doesn't match >=0.3.35
  Ignoring link https://pypi.python.org/packages/source/p/pafy/Pafy-0.3.34.tar.gz#md5=e81df2a84e189b62da45ebebee074e8d (from https://pypi.python.org/simple/pafy/), version 0.3.34 doesn't match >=0.3.35
  Using version 0.5.0 (newest of versions: 0.5.0, 0.5.0, 0.4.3, 0.4.3, 0.4.2, 0.4.2, 0.4.1, 0.4.1, 0.4.0, 0.4.0, 0.3.82, 0.3.82, 0.3.80, 0.3.80, 0.3.78, 0.3.78, 0.3.76, 0.3.76, 0.3.74, 0.3.74, 0.3.72, 0.3.72, 0.3.70, 0.3.70, 0.3.68, 0.3.68, 0.3.66, 0.3.66, 0.3.64, 0.3.64, 0.3.62, 0.3.62, 0.3.60, 0.3.60, 0.3.58, 0.3.58, 0.3.56, 0.3.56, 0.3.54, 0.3.54, 0.3.52, 0.3.52, 0.3.50, 0.3.50, 0.3.48, 0.3.48, 0.3.46, 0.3.46, 0.3.44, 0.3.44, 0.3.42, 0.3.41, 0.3.40, 0.3.39, 0.3.38, 0.3.37, 0.3.36, 0.3.35)
  Downloading pafy-0.5.0-py2.py3-none-any.whl
  Downloading from URL https://pypi.python.org/packages/3.5/p/pafy/pafy-0.5.0-py2.py3-none-any.whl#md5=817e2d17551a0e03bca780dbe8da83cc (from https://pypi.python.org/simple/pafy/)
Requirement already satisfied (use --upgrade to upgrade): Pykka>=1.1 in /usr/lib/python2.7/dist-packages (from Mopidy-Youtube)
Requirement already satisfied (use --upgrade to upgrade): Mopidy>=1.0 in /usr/lib/python2.7/dist-packages (from Mopidy-Youtube)
Requirement already satisfied (use --upgrade to upgrade): tornado>=2.3 in /usr/lib/python2.7/dist-packages (from Mopidy>=1.0->Mopidy-Youtube)
Installing collected packages: Mopidy-Youtube, pafy
Cleaning up...
  Removing temporary dir /tmp/pip_build_lxmad...
Exception:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 283, in run
    requirement_set.install(install_options, global_options, root=options.root_path)
  File "/usr/lib/python2.7/dist-packages/pip/req.py", line 1436, in install
    requirement.install(install_options, global_options, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/pip/req.py", line 672, in install
    self.move_wheel_files(self.source_dir, root=root)
  File "/usr/lib/python2.7/dist-packages/pip/req.py", line 902, in move_wheel_files
    pycompile=self.pycompile,
  File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 206, in move_wheel_files
    clobber(source, lib_dir, True)
  File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 193, in clobber
    os.makedirs(destsubdir)
  File "/usr/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/Mopidy_Youtube-2.0.2.dist-info'

No idea what causes this... Hope to get some help/if it's a bug give you info to fix it.

Bad audio playing songs from youtube

Hi,
i'm having a crackling sound listen to youtube-videos. Playing the same video in flash, html5 or with mplayer over the same internet connections, the sound ist good.
May be it's some caching problem?!?

Need 11 character video id or the URL of the video. Got None.

Hello, i have got problem with playing from yt. Everytime when i tried to play m3u, mopidy shows message: INFO Need 11 character video id or the URL of the video. Got None.

mopidy --version
  Mopidy 0.19.5
mopidy deps
  Not found:
  none

Playlist file:

#EXTM3U
#EXTINF:-1, My song from YT
yt:http://www.youtube.com/watch?v=Njpw2PVb1c0

I'm able to play from youtube with this oneliner;

gst-launch-0.10 playbin2 uri=$(echo "http://www.youtube.com/watch?v=Njpw2PVb1c0" | python2 -c 'import pafy,sys;print(pafy.new("".join(sys.stdin)).getbestaudio().url)')

Thanks

Problem with searching

Hi,

I try to do search method on mopidy youtube extension, request looks like this:

{
  "method": "core.library.search",
  "jsonrpc": "2.0",
  "params": {
    "query": {"any":["machine"]},
    "uris": ["yt:"]
  },
  "id": 1
}

but I get this error:

{
  "jsonrpc": "2.0",
  "id": 1,
  "error": {
    "message": "Application error",
    "code": 0,
    "data": {
      "message": "'Thread' object has no attribute '_children'",
      "traceback": "Traceback (most recent call last):\n  File \"/usr/lib/python2.7/dist-packages/mopidy/utils/jsonrpc.py\", line 132, in _handle_single_request\n    result = self._unwrap_result(result)\n  File \"/usr/lib/python2.7/dist-packages/mopidy/utils/jsonrpc.py\", line 221, in _unwrap_result\n    result = result.get()\n  File \"/usr/lib/python2.7/dist-packages/pykka/future.py\", line 299, in get\n    exec('raise exc_info[0], exc_info[1], exc_info[2]')\n  File \"/usr/lib/python2.7/dist-packages/pykka/actor.py\", line 200, in _actor_loop\n    response = self._handle_receive(message)\n  File \"/usr/lib/python2.7/dist-packages/pykka/actor.py\", line 294, in _handle_receive\n    return callee(*message['args'], **message['kwargs'])\n  File \"/usr/lib/python2.7/dist-packages/mopidy/core/library.py\", line 253, in search\n    results.append(future.get())\n  File \"/usr/lib/python2.7/dist-packages/pykka/future.py\", line 299, in get\n    exec('raise exc_info[0], exc_info[1], exc_info[2]')\n  File \"/usr/lib/python2.7/dist-packages/pykka/actor.py\", line 200, in _actor_loop\n    response = self._handle_receive(message)\n  File \"/usr/lib/python2.7/dist-packages/pykka/actor.py\", line 294, in _handle_receive\n    return callee(*message['args'], **message['kwargs'])\n  File \"/usr/local/lib/python2.7/dist-packages/mopidy_youtube/backend.py\", line 181, in search\n    tracks=search_youtube(search_query)\n  File \"/usr/local/lib/python2.7/dist-packages/mopidy_youtube/backend.py\", line 90, in search_youtube\n    resolve_pool = ThreadPool(processes=16)\n  File \"/usr/lib/python2.7/multiprocessing/pool.py\", line 685, in __init__\n    Pool.__init__(self, processes, initializer, initargs)\n  File \"/usr/lib/python2.7/multiprocessing/pool.py\", line 136, in __init__\n    self._repopulate_pool()\n  File \"/usr/lib/python2.7/multiprocessing/pool.py\", line 199, in _repopulate_pool\n    w.start()\n  File \"/usr/lib/python2.7/multiprocessing/dummy/__init__.py\", line 73, in start\n    self._parent._children[self] = None\nAttributeError: 'Thread' object has no attribute '_children'\n",
      "type": "AttributeError"
    }
  }
}

Am I doing something wrong or it's a extension bug?

Mopidy version: 1.0.5
Mopidy-Youtube version: 2.0.0

Add seek support for youtube videos

Hey, thanks for the great work on this plugin!

It would be awesome if we could seek forward/backward in the videos. I know this is possible in mplayer w/ffmpeg using the same stream url that the plugin uses, so I wondered if it would be possible here.

If you want to point me in the right direction I could see about doing this myself and submitting a pull request. I mainly don't quite understand how to override the playback functionality myself.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.