{"action":"created","issue":{"url":"https://api.github.com/repos/stevenleeg/geemusic/issues/220","repository_url":"https://api.github.com/repos/stevenleeg/geemusic","labels_url":"https://api.github.com/repos/stevenleeg/geemusic/issues/220/labels{/name}","comments_url":"https://api.github.com/repos/stevenleeg/geemusic/issues/220/comments","events_url":"https://api.github.com/repos/stevenleeg/geemusic/issues/220/events","html_url":"https://github.com/stevenleeg/geemusic/issues/220","id":326774627,"number":220,"title":"403 Forbidden when playing a song","user":{"login":"aplocher","id":1132447,"avatar_url":"https://avatars0.githubusercontent.com/u/1132447?v=4","gravatar_id":"","url":"https://api.github.com/users/aplocher","html_url":"https://github.com/aplocher","followers_url":"https://api.github.com/users/aplocher/followers","following_url":"https://api.github.com/users/aplocher/following{/other_user}","gists_url":"https://api.github.com/users/aplocher/gists{/gist_id}","starred_url":"https://api.github.com/users/aplocher/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aplocher/subscriptions","organizations_url":"https://api.github.com/users/aplocher/orgs","repos_url":"https://api.github.com/users/aplocher/repos","events_url":"https://api.github.com/users/aplocher/events{/privacy}","received_events_url":"https://api.github.com/users/aplocher/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2018-05-26T23:30:16Z","updated_at":"2018-05-27T04:43:20Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"Hello, I had my Echo Dot turned off for the last month or so.  I've recently plugged it back in and now when I go to use GeeMusic I'm receiving a 403-forbidden error from Google when it tries to start the stream.\r\n\r\nListing my playlists and other non-song-playing commands seem to work just fine.  \r\n\r\nAnyone know why?  Was there a recent update to the code that I need to grab?  \r\n\r\nEverything was working fine last time I used it (like a month or so ago), but now it's not working.  I last git-pulled and built geemusic I think in February, so it's not too terribly old.\r\n\r\nI've pasted the output that I got from Foreman below...\r\n\r\nThank you!\r\n\r\n```\r\n16:25:11 web.1  | 127.0.0.1 - - [26/May/2018 16:25:11] \"POST /alexa HTTP/1.0\" 200 -\r\n16:25:12 web.1  | 127.0.0.1 - - [26/May/2018 16:25:12] \"HEAD /alexa/stream/Tr56ue23f5fe5jmxdkzlkxia4ta HTTP/1.0\" 500 -\r\n16:25:12 web.1  | 127.0.0.1 - - [26/May/2018 16:25:12] \"GET /alexa/stream/Tr56ue23f5fe5jmxdkzlkxia4ta HTTP/1.0\" 500 -\r\n16:25:13 web.1  | Traceback (most recent call last):\r\n16:25:13 web.1  |   File \"/home/adam/src/geemusic-new/geemusic/.vnee/lib/python3.6/site-packages/flask/app.py\", line 1997, in __call__\r\n16:25:13 web.1  |     return self.wsgi_app(environ, start_response)\r\n16:25:13 web.1  |   File \"/home/adam/src/geemusic-new/geemusic/.vnee/lib/python3.6/site-packages/flask/app.py\", line 1985, in wsgi_app\r\n16:25:13 web.1  |     response = self.handle_exception(e)\r\n16:25:13 web.1  |   File \"/home/adam/src/geemusic-new/geemusic/.vnee/lib/python3.6/site-packages/flask/app.py\", line 1540, in handle_exception\r\n16:25:13 web.1  |     reraise(exc_type, exc_value, tb)\r\n16:25:13 web.1  |   File \"/home/adam/src/geemusic-new/geemusic/.vnee/lib/python3.6/site-packages/flask/_compat.py\", line 33, in reraise\r\n16:25:13 web.1  |     raise value\r\n16:25:13 web.1  |   File \"/home/adam/src/geemusic-new/geemusic/.vnee/lib/python3.6/site-packages/flask/app.py\", line 1982, in wsgi_app\r\n16:25:13 web.1  |     response = self.full_dispatch_request()\r\n16:25:13 web.1  |   File \"/home/adam/src/geemusic-new/geemusic/.vnee/lib/python3.6/site-packages/flask/app.py\", line 1614, in full_dispatch_request\r\n16:25:13 web.1  |     rv = self.handle_user_exception(e)\r\n16:25:13 web.1  |   File \"/home/adam/src/geemusic-new/geemusic/.vnee/lib/python3.6/site-packages/flask/app.py\", line 1517, in handle_user_exception\r\n16:25:13 web.1  |     reraise(exc_type, exc_value, tb)\r\n16:25:13 web.1  |   File \"/home/adam/src/geemusic-new/geemusic/.vnee/lib/python3.6/site-packages/flask/_compat.py\", line 33, in reraise\r\n16:25:13 web.1  |     raise value\r\n16:25:13 web.1  |   File \"/home/adam/src/geemusic-new/geemusic/.vnee/lib/python3.6/site-packages/flask/app.py\", line 1612, in full_dispatch_request\r\n16:25:13 web.1  |     rv = self.dispatch_request()\r\n16:25:13 web.1  |   File \"/home/adam/src/geemusic-new/geemusic/.vnee/lib/python3.6/site-packages/flask/app.py\", line 1598, in dispatch_request\r\n16:25:13 web.1  |     return self.view_functions[rule.endpoint](**req.view_args)\r\n16:25:13 web.1  |   File \"/home/adam/src/geemusic-new/geemusic/geemusic/controllers.py\", line 12, in redirect_to_stream\r\n16:25:13 web.1  |     stream_url = api.get_google_stream_url(song_id)\r\n16:25:13 web.1  |   File \"/home/adam/src/geemusic-new/geemusic/geemusic/utils/music.py\", line 148, in get_google_stream_url\r\n16:25:13 web.1  |     return self._api.get_stream_url(song_id)\r\n16:25:13 web.1  |   File \"<decorator-gen-102>\", line 2, in get_stream_url\r\n16:25:13 web.1  |     \r\n16:25:13 web.1  |   File \"/home/adam/src/geemusic-new/geemusic/.vnee/lib/python3.6/site-packages/gmusicapi/utils/utils.py\", line 293, in wrapper\r\n16:25:13 web.1  |     return function(*args, **kw)\r\n16:25:13 web.1  |   File \"/home/adam/src/geemusic-new/geemusic/.vnee/lib/python3.6/site-packages/gmusicapi/clients/mobileclient.py\", line 388, in get_stream_url\r\n16:25:13 web.1  |     return self._make_call(mobileclient.GetStreamUrl, song_id, device_id, quality)\r\n16:25:13 web.1  |   File \"/home/adam/src/geemusic-new/geemusic/.vnee/lib/python3.6/site-packages/gmusicapi/clients/shared.py\", line 84, in _make_call\r\n16:25:13 web.1  |     return protocol.perform(self.session, self.validate, *args, **kwargs)\r\n16:25:13 web.1  |   File \"/home/adam/src/geemusic-new/geemusic/.vnee/lib/python3.6/site-packages/gmusicapi/protocol/shared.py\", line 226, in perform\r\n16:25:13 web.1  |     raise CallFailure(err_msg, call_name)\r\n16:25:13 web.1  | gmusicapi.exceptions.CallFailure: GetStreamUrl: 403 Client Error: Forbidden for url: https://mclients.googleapis.com/music/mplay?opt=hi&net=mob&pt=e&slt=1527377112170&sig=LEpFLXj_P1hzseOAZKZ6KwrOtM4&mjck=Tr56ue23f5fe5jmxdkzlkxia4ta&hl=en_US&dv=0&tier=aa\r\n16:25:13 web.1  | (requests kwargs: {'method': 'GET', 'url': 'https://mclients.googleapis.com/music/mplay', 'allow_redirects': False, 'headers': {'X-Device-ID': '989096C1DAAD', 'Authorization': '<omitted>'}, 'params': {'opt': 'hi', 'net': 'mob', 'pt': 'e', 'slt': '1527377112170', 'sig': b'LEpFLXj_P1hzseOAZKZ6KwrOtM4', 'mjck': 'Tr56ue23f5fe5jmxdkzlkxia4ta', 'hl': 'en_US', 'dv': 0, 'tier': 'aa'}})\r\n16:25:13 web.1  | (response was: '<HTML>\\n<HEAD>\\n<TITLE>Forbidden</TITLE>\\n</HEAD>\\n<BODY BGCOLOR=\"#FFFFFF\" TEXT=\"#000000\">\\n<H1>Forbidden</H1>\\n<H2>Error 403</H2>\\n</BODY>\\n</HTML>\\n')\r\n16:25:13 web.1  | 127.0.0.1 - - [26/May/2018 16:25:13] \"HEAD /alexa/stream/Tr56ue23f5fe5jmxdkzlkxia4ta HTTP/1.0\" 500 -\r\n16:25:13 web.1  | 127.0.0.1 - - [26/May/2018 16:25:13] \"GET /alexa/stream/Tr56ue23f5fe5jmxdkzlkxia4ta HTTP/1.0\" 500 -\r\n\r\n\r\n```"},"comment":{"url":"https://api.github.com/repos/stevenleeg/geemusic/issues/comments/392304956","html_url":"https://github.com/stevenleeg/geemusic/issues/220#issuecomment-392304956","issue_url":"https://api.github.com/repos/stevenleeg/geemusic/issues/220","id":392304956,"user":{"login":"aplocher","id":1132447,"avatar_url":"https://avatars0.githubusercontent.com/u/1132447?v=4","gravatar_id":"","url":"https://api.github.com/users/aplocher","html_url":"https://github.com/aplocher","followers_url":"https://api.github.com/users/aplocher/followers","following_url":"https://api.github.com/users/aplocher/following{/other_user}","gists_url":"https://api.github.com/users/aplocher/gists{/gist_id}","starred_url":"https://api.github.com/users/aplocher/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aplocher/subscriptions","organizations_url":"https://api.github.com/users/aplocher/orgs","repos_url":"https://api.github.com/users/aplocher/repos","events_url":"https://api.github.com/users/aplocher/events{/privacy}","received_events_url":"https://api.github.com/users/aplocher/received_events","type":"User","site_admin":false},"created_at":"2018-05-27T04:43:20Z","updated_at":"2018-05-27T04:43:20Z","author_association":"CONTRIBUTOR","body":"@fergyfresh thanks, what command are you referring to?  I don't see mention of a command.\r\n\r\nWhen I was googling this particular error I did see several folks mention it over in the gmusicapi repo, and the fix was always device-id-related, however as far as I know there's no configurable device-id in geemusic - at least it doesn't mention it in the docs that I've seen.\r\n\r\nI did try a new app password, thinking that maybe authenticating for the first time with an app-password (when using 2-factor auth) somehow initialized a device id or something.  But that didn't help at all.\r\n\r\n@edjbush thanks, glad to know I'm not the only one lol..."}}
{"actor":{"display_login":"aplocher"}}