coman3 / Google.Music.Downloader

Download Music From Google Play Music All Access To Your Local File System.
MIT License
33 stars 9 forks source link

Unable to download songs; likely due to a change by Google #5

Open DearPrudish opened 6 years ago

DearPrudish commented 6 years ago

This application has worked fine for me in the past, however when I tried to use it this time for the first time in over a month it was unable to download any songs due to what I assume is a change by Google that is out of your control, or it may just be a bug on my end. When I try to download songs from a playlist, the following comes up for every song that is attempted (note that it is chronologically from the bottom to the top.)

Value cannot be null.
Parameter name: address
Failed Downloading Song: [Song title] - [Artist]
Downloading Song: [Song title] - [Artist]

I understand that you may not have the time to work on this, and I hope you will have time in the future to work on all your projects that you simply couldn't continue due to a lack of free time for it. Although I can't use it as it is now, I have got a use out of it before, so I just want to say: Thank you.

coman3 commented 6 years ago

Hey there! Im glad to hear that this was working nicely for you in the past. The reason downloading fails is due to the following response when asking for the streaming url:

{StatusCode: 403, ReasonPhrase: 'Forbidden', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
  X-Rejected-Reason: DEVICE_NOT_AUTHORIZED
  X-Content-Type-Options: nosniff
  X-Frame-Options: SAMEORIGIN
  X-XSS-Protection: 1; mode=block
  Alt-Svc: quic=":443"; ma=2592000; v="43,42,41,39,35"
  Vary: Accept-Encoding
  Transfer-Encoding: chunked
  Accept-Ranges: none
  Cache-Control: max-age=0, private
  Date: Mon, 11 Jun 2018 02:56:16 GMT
  Server: GSE
  Content-Type: text/html; charset=UTF-8
  Expires: Mon, 11 Jun 2018 02:56:16 GMT
}}

I have played around with the request, and unfortunately DEVICE_NOT_AUTHORIZED means that google has finally started requiring a valid android id. There is a potential fix for this (as seen here: https://github.com/simon-weber/gmusicapi/issues/590) but I personally want to avoid enabling this feature again anyway, and would like to see this application avoid getting used in the future.

There is always a reason google has increased security, and I don’t think working around this is a good idea and may lead to many accounts being banned as any ‘3rd party API’ is very against the Google TOS.