Comments (18)
2017-02-01T01:32:40.546386+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=nameless-lowlands-98730.herokuapp.com request_id=3d0504d0-ca46-4b4a-8877-e3f395ba12e1 fwd="23.249.36.73" dyno= connect= service= status=503 bytes
getting a new one after i just retried it.
from geemusic.
It actually isn't streaming any music at all. Alexa responds that it is playing, but it never plays the music.
Just saw this strange stream in the Heroku log:
2017-01-31T01:57:38.413130+00:00 heroku[router]: at=info method=POST path="/alexa" host=fathomless-refuge-71971.herokuapp.com request_id=e331d71b-696e-4e12-a706-ab90a77356c4 fwd="72.21.217.167" dyno=web.1 connect=0ms service=30ms status=400 bytes=164
2017-01-31T01:57:38.267828+00:00 app[web.1]: 10.43.185.17 - - [31/Jan/2017 01:57:38] "GET /stream/Tqahkizlzkqn3btxrput3avx7k4 HTTP/1.1" 500 -
2017-01-31T01:57:38.268067+00:00 app[web.1]: Traceback (most recent call last):
2017-01-31T01:57:38.268068+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/flask/app.py", line 1994, in call
2017-01-31T01:57:38.268069+00:00 app[web.1]: return self.wsgi_app(environ, start_response)
2017-01-31T01:57:38.268069+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/flask/app.py", line 1985, in wsgi_app
2017-01-31T01:57:38.268070+00:00 app[web.1]: response = self.handle_exception(e)
2017-01-31T01:57:38.268070+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/flask/app.py", line 1540, in handle_exception
2017-01-31T01:57:38.268071+00:00 app[web.1]: reraise(exc_type, exc_value, tb)
2017-01-31T01:57:38.268071+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/flask/app.py", line 1982, in wsgi_app
2017-01-31T01:57:38.268072+00:00 app[web.1]: response = self.full_dispatch_request()
2017-01-31T01:57:38.268072+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/flask/app.py", line 1614, in full_dispatch_request
2017-01-31T01:57:38.268073+00:00 app[web.1]: rv = self.handle_user_exception(e)
2017-01-31T01:57:38.268073+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/flask/app.py", line 1517, in handle_user_exception
2017-01-31T01:57:38.268073+00:00 app[web.1]: reraise(exc_type, exc_value, tb)
2017-01-31T01:57:38.268074+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/flask/app.py", line 1612, in full_dispatch_request
2017-01-31T01:57:38.268074+00:00 app[web.1]: rv = self.dispatch_request()
2017-01-31T01:57:38.268075+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/flask/app.py", line 1598, in dispatch_request
2017-01-31T01:57:38.268075+00:00 app[web.1]: return self.view_functionsrule.endpoint
2017-01-31T01:57:38.268076+00:00 app[web.1]: File "/app/geemusic/controllers.py", line 8, in redirect_to_stream
2017-01-31T01:57:38.268076+00:00 app[web.1]: stream_url = api.get_google_stream_url(song_id)
2017-01-31T01:57:38.268076+00:00 app[web.1]: File "/app/geemusic/utils/music.py", line 97, in get_google_stream_url
2017-01-31T01:57:38.268077+00:00 app[web.1]: return self._api.get_stream_url(song_id)
2017-01-31T01:57:38.268077+00:00 app[web.1]: File "", line 2, in get_stream_url
2017-01-31T01:57:38.268078+00:00 app[web.1]:
2017-01-31T01:57:38.268078+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gmusicapi/utils/utils.py", line 293, in wrapper
2017-01-31T01:57:38.268078+00:00 app[web.1]: return function(*args, **kw)
2017-01-31T01:57:38.268079+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gmusicapi/clients/mobileclient.py", line 372, in get_stream_url
2017-01-31T01:57:38.268079+00:00 app[web.1]: return self._make_call(mobileclient.GetStreamUrl, song_id, device_id, quality)
2017-01-31T01:57:38.268080+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gmusicapi/clients/shared.py", line 84, in _make_call
2017-01-31T01:57:38.268080+00:00 app[web.1]: return protocol.perform(self.session, self.validate, *args, **kwargs)
2017-01-31T01:57:38.268081+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gmusicapi/protocol/shared.py", line 226, in perform
2017-01-31T01:57:38.268081+00:00 app[web.1]: raise CallFailure(err_msg, call_name)
2017-01-31T01:57:38.268086+00:00 app[web.1]: CallFailure: GetStreamUrl: 403 Client Error: Forbidden for url: https://mclients.googleapis.com/music/mplay?pt=e&hl=en_US&dv=0&net=mob&opt=hi&mjck=Tqahkizlzkqn3btxrput3avx7k4&tier=aa&sig=u5h8O9-lpIwTuJu3PKU11AaGjYo&slt=1485827858169
2017-01-31T01:57:38.268089+00:00 app[web.1]: (requests kwargs: {u'url': u'https://mclients.googleapis.com/music/mplay', u'allow_redirects': False, u'headers': {u'X-Device-ID': u'BAFCDD5F62CF', u'Authorization': u''}, u'method': u'GET', u'params': {u'pt': u'e', u'hl': u'en_US', u'dv': 0, u'net': u'mob', u'opt': u'hi', u'mjck': u'Tqahkizlzkqn3btxrput3avx7k4', u'tier': u'aa', u'sig': 'u5h8O9-lpIwTuJu3PKU11AaGjYo', u'slt': '1485827858169'}})
2017-01-31T01:57:38.268090+00:00 app[web.1]: (response was: u'\n\n<TITLE>Forbidden</TITLE>\n\n\n
Forbidden
\nError 403
\n\n\n')2017-01-31T01:57:38.420526+00:00 app[web.1]: 10.237.230.223 - - [31/Jan/2017 01:57:38] "POST /alexa HTTP/1.1" 400 -
from geemusic.
This sounds like it could be an issue with the APP_URL
environment variable. Did you set it to something like APP_URL=https://alexa-geemusic.stevegattuso.me
? Note that this does not have a trailing slash at the end of the URL.
from geemusic.
Here is the environment variable from Heroku. It looks correct to me.
Should I be concerned about the Forbidden error that is coming back from mclients.googleapis.com?
from geemusic.
I'm having a similar issue with Heroku. I get the The remote endpoint could not be called, or the response it returned was invalid. Mine appears to be having an issue with logging in to google. Is there something special I need in formatting the email and password?
2017-01-31T22:01:10.810898+00:00 app[web.1]: File "server.py", line 1, in
2017-01-31T22:01:10.810899+00:00 app[web.1]: from geemusic import app
2017-01-31T22:01:10.810901+00:00 app[web.1]: File "/app/geemusic/init.py", line 10, in
2017-01-31T22:01:10.810902+00:00 app[web.1]: api = GMusicWrapper.generate_api(logger=app.logger)
2017-01-31T22:01:10.810902+00:00 app[web.1]: File "/app/geemusic/utils/music.py", line 132, in generate_api
2017-01-31T22:01:10.810903+00:00 app[web.1]: return cls(environ['GOOGLE_EMAIL'], environ['GOOGLE_PASSWORD'], **kwargs)
2017-01-31T22:01:10.810904+00:00 app[web.1]: File "/app/geemusic/utils/music.py", line 13, in init
2017-01-31T22:01:10.810904+00:00 app[web.1]: raise Exception("Unsuccessful login. Aborting!")
2017-01-31T22:01:10.810905+00:00 app[web.1]: Exception: Unsuccessful login. Aborting!
2017-01-31T22:01:11.046299+00:00 heroku[web.1]: State changed from starting to crashed
2017-01-31T22:01:11.005534+00:00 heroku[web.1]: Process exited with status 1
from geemusic.
@mbibbey by any chance are you on a free plan? that could be causing the forbidden errors
@JVTEAM it looks like your issue is because your login credentials are incorrect (see raise Exception("Unsuccessful login. Aborting!")
in the log you posted). Verify that your GOOGLE_EMAIL
and GOOGLE_PASSWORD
environment variables are correct.
from geemusic.
They are correct.
from geemusic.
I am not on the free account. I am going to create a new account and trial unlimited on it to see if I can determine whether it is a Google or Heroku problem.
from geemusic.
I see gmusicapi users that had the forbidden error with the android_id field. Has anyone tried any different values in that field?
from geemusic.
I started a new music service on a different gmail account and it is working fine now. I need to figure out what is wrong with my primary music account. I had uploaded about 7,000 songs before subscribing to the unlimited service. Maybe that was the problem?
from geemusic.
I have had similar experiences. I first tried it with my main Google Play account, the one I uploaded my entire collection to in the past and the one I use successfully with Logitech Media Server to stream to any device. That too was a free account. I have not been able to get it to play anything through geemusic, I have tried various combinations of username/password with two factor auth on and off.
I set up another account to get an All Access trial to see if it was the free tier that was the problem. I uploaded a few songs to that to test with.
The All Access account seemed to be working successfully with geemusic, but I was still unable to get it to play the uploaded tracks. I could see the Skill was hearing me correctly and passing the correct track name to geemusic. To test I uploaded an mp3 with my name (sam turner) as the artist, when I said "play songs by sam turner" it would (annoyingly) only ever play songs by Santana.
It seems to only play tracks from Google and not uploaded tracks.
For me I have always seen Google Music as being an alternative to iTunes Match (the service from Apple for $25 a year). A place where I can upload my entire library and connect to it from whatever device I am using as and when I need it.
Others see Google Music as being an alternative to Spotify, a streaming service where you would only ever use the Google library and have no interest in uploading tracks yourself.
Is that a fair assumption? Because the Skill does seem to work very successfully when accessing the Google library of music, but not at all for uploaded tracks.
from geemusic.
@digiltd That appears to be what I am seeing as well.
My concern is that I have a bunch of playlists created in iTunes that I want to maintain and use across multiple devices, including Alexa. I have been able to sync them (only one direction) from iTunes to Google Play. But as discussed, Geemusic (and Alexa) can't read those playlists.
I don't mind using the Google library (Spotify style), as long as my playlists can be migrated from my owned music to the library version of the music. I need to try to figure that one out.
from geemusic.
Ahh yeah, I think I know the issue here. Searching for artists/albums in Google's streaming library is easier because the search API returns matches for that title/track, uploaded tracks aren't included. For those we have to download a list of all of your tracks and loop through each track with a fuzzy matcher to see if there's one that sort of matches what Alexa thought you said.
It's a bug-prone process that unfortunately is a result of an API restriction; we're just working with the data provided as best we can
from geemusic.
I just found and set this up yesterday, using the docker image at https://hub.docker.com/r/kuroshi/geemusic/ on my Synology NAS. FYI, the HTTP server on the docker image is using port 5000, not 4000, so I had to remap that.
I also had play issues. Seems like the APP_URL needs to be reachable both externally and internally and have a trusted certificate. I did not initially have this reachable to internal traffic. The Amazon Skill worked fine except for actually starting the stream.
Thankfully, I am running pfSense with LetsEncrypt and HAproxy, so I was able to accommodate this by making routing everything through this reverse proxy using the TLS certificate on the proxy, for both internal and external connections. After making that change, that music has played fine.
Thanks for this cool project!
from geemusic.
Seems like the APP_URL needs to be reachable both externally and internally
@audioeng can you clarify this statement?
I have deployed across 2 docker containers (one with Gee Music, and another with an nginx proxy for the SSL); I pointed a domain to a public IP on the nginx proxy (configured with a Let's Encrypt SSL cert on 443), but I'm getting the 403 forbidden error when trying to stream as described by others in this issue.
from geemusic.
from geemusic.
@JVTEAM :How did you solve this error.? i am new to this and got login error solved and got a new like you
2017-02-01T01:32:40.546386+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=nameless-lowlands-98730.herokuapp.com request_id=3d0504d0-ca46-4b4a-8877-e3f395ba12e1 fwd="23.249.36.73" dyno= connect= service= status=503 bytes
from geemusic.
This hasn't seen any recent activity and will therefore be closed. Feel free to comment or file a new issue if you're still having trouble.
from geemusic.
Related Issues (20)
- How to create an Alexa Skill in new Developer Console HOT 17
- Alexa - recognition issues? HOT 2
- ImportError: No module named 'pip.req' HOT 3
- Error after deploying via Lambda HOT 2
- AttributeError: module 'lib' has no attribute 'X509V3_EXT_get' HOT 1
- TypeError: Can't compile non template nodes HOT 7
- "AttributeError: module 'lib' has no attribute 'X509V3_EXT_get' " error message when GeeMusic server receives a request HOT 1
- Docker image won't start HOT 2
- Unable to Play Playlists & Uploaded from Paid Account HOT 1
- Tracks end early
- trouble getting this working - there was a problem with the response HOT 3
- Play on a speaker group or stereo pair?
- Undefined Variable Reference
- Is gee music still working? HOT 1
- Heroku : Playlist fails to play, but finds the tracks
- Support for Alexa-Hosted Skill?
- Heroku : Fails to deploy - No module named 'pip.req' HOT 1
- Docker Image Build Fails HOT 2
- ngrok assigning a new URL on each start HOT 1
- Cannot log in
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
đ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google â¤ī¸ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from geemusic.