[GH-ISSUE #28] Unable to get playcounts Error 502 #27

Open
opened 2026-02-28 14:28:24 +03:00 by kerem · 51 comments
Owner

Originally created by @phuketbinaryt on GitHub (Jun 19, 2023).
Original GitHub issue: https://github.com/entriphy/sp-playcount-librespot/issues/28

Since today I am unable to get the playcounts for any track. Only getting the folling error:

xyz.gianlu.librespot.mercury.MercuryClient$MercuryException: status: 502
at xyz.gianlu.librespot.mercury.MercuryClient.sendSync(MercuryClient.java:83)
at xyz.gianlu.librespot.handler.PlayCountHandler.handle(PlayCountHandler.java:57)
at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77)
at jdk.httpserver/sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:82)
at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:80)
at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:848)
at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77)
at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:817)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)

Did something change on Spotify's side?

Originally created by @phuketbinaryt on GitHub (Jun 19, 2023). Original GitHub issue: https://github.com/entriphy/sp-playcount-librespot/issues/28 Since today I am unable to get the playcounts for any track. Only getting the folling error: xyz.gianlu.librespot.mercury.MercuryClient$MercuryException: status: 502 at xyz.gianlu.librespot.mercury.MercuryClient.sendSync(MercuryClient.java:83) at xyz.gianlu.librespot.handler.PlayCountHandler.handle(PlayCountHandler.java:57) at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77) at jdk.httpserver/sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:82) at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:80) at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:848) at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77) at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:817) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) Did something change on Spotify's side?
Author
Owner

@Rchrdlss3 commented on GitHub (Jun 19, 2023):

I recently have been unable to access playcounts aswell, but I am having the same issue as #11 although this has not happened before. I am assuming this might be something on Spotify's side too

<!-- gh-comment-id:1597487301 --> @Rchrdlss3 commented on GitHub (Jun 19, 2023): I recently have been unable to access playcounts aswell, but I am having the same issue as #11 although this has not happened before. I am assuming this might be something on Spotify's side too
Author
Owner

@jpgrovy commented on GitHub (Jun 19, 2023):

Same issue for me 😔

Seeing they have some outages on downdetector. Hopefully that’s all it is.

<!-- gh-comment-id:1597640140 --> @jpgrovy commented on GitHub (Jun 19, 2023): Same issue for me 😔 Seeing they have some outages on downdetector. Hopefully that’s all it is.
Author
Owner

@jpgrovy commented on GitHub (Jun 19, 2023):

I don’t see playcounts being returned even in Spotify’s own web anymore either. The counts always showed in the logs of the api call. Now they aren’t there.

<!-- gh-comment-id:1597658796 --> @jpgrovy commented on GitHub (Jun 19, 2023): I don’t see playcounts being returned even in Spotify’s own web anymore either. The counts always showed in the logs of the api call. Now they aren’t there.
Author
Owner

@surfmore commented on GitHub (Jun 19, 2023):

I am getting this error

{"success": false, "data": "An unknown error has occurred; logged to console"}

http://MYIPADDRESS:8080/albumPlayCount?albumid=XXXXXX

and this error in the console

2023-06-19 21:26:33,101 INFO ApResolver:66 - Loaded aps into pool: {accesspoint=[ap-gew4.spotify.com:4070, ap-gew4.spotify.com:443, ap-gew4.spotify.com:80, ap-guc3.spotify.com:4070, ap-gue1.spotify.com:443, ap-gew1.spotify.com:80], dealer=[gew4-dealer.spotify.com:443, guc3-dealer.spotify.com:443, gue1-dealer.spotify.com:443, gew1-dealer.spotify.com:443], spclient=[gew4-spclient.spotify.com:443, guc3-spclient.spotify.com:443, gue1-spclient.spotify.com:443, gew1-spclient.spotify.com:443]}
2023-06-19 21:26:33,366 INFO Session:94 - Created new session! {deviceId: c70f928698cc099e39bddfd469f7de38e3b805db, ap: ap-guc3.spotify.com:4070}
2023-06-19 21:26:34,351 INFO Session:223 - Connected successfully!
2023-06-19 21:26:34,647 INFO Session:242 - Authenticated as woklxlz1f9wkuu6j9fk3x6q54!
2023-06-19 21:26:34,647 INFO Session:716 - Skipping SecretBlock
2023-06-19 21:26:34,647 INFO Session:694 - Received LicenseVersion: 0
2023-06-19 21:26:34,647 INFO Session:684 - Received CountryCode: NL
[main] INFO org.cache2k.core.Cache2kCoreProviderImpl - cache2k starting. version=1.2.4.Final
2023-06-19 21:26:34,694 INFO Session:716 - Skipping UnknownData_AllZeros
2023-06-19 21:26:34,694 INFO Session:716 - Skipping LegacyWelcome
Listening on port 8080
2023-06-19 21:26:35,085 INFO Session:651 - Skipping unknown command {cmd: 0x75, payload: 000000}
xyz.gianlu.librespot.mercury.MercuryClient$MercuryException: status: 502
at xyz.gianlu.librespot.mercury.MercuryClient.sendSync(MercuryClient.java:83)
at xyz.gianlu.librespot.handler.PlayCountHandler.handle(PlayCountHandler.java:57)
at com.sun.net.httpserver.Filter$Chain.doFilter(Unknown Source)
at sun.net.httpserver.AuthFilter.doFilter(Unknown Source)
at com.sun.net.httpserver.Filter$Chain.doFilter(Unknown Source)
at sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(Unknown Source)
at com.sun.net.httpserver.Filter$Chain.doFilter(Unknown Source)
at sun.net.httpserver.ServerImpl$Exchange.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

<!-- gh-comment-id:1597662451 --> @surfmore commented on GitHub (Jun 19, 2023): I am getting this error {"success": false, "data": "An unknown error has occurred; logged to console"} http://MYIPADDRESS:8080/albumPlayCount?albumid=XXXXXX and this error in the console 2023-06-19 21:26:33,101 INFO ApResolver:66 - Loaded aps into pool: {accesspoint=[ap-gew4.spotify.com:4070, ap-gew4.spotify.com:443, ap-gew4.spotify.com:80, ap-guc3.spotify.com:4070, ap-gue1.spotify.com:443, ap-gew1.spotify.com:80], dealer=[gew4-dealer.spotify.com:443, guc3-dealer.spotify.com:443, gue1-dealer.spotify.com:443, gew1-dealer.spotify.com:443], spclient=[gew4-spclient.spotify.com:443, guc3-spclient.spotify.com:443, gue1-spclient.spotify.com:443, gew1-spclient.spotify.com:443]} 2023-06-19 21:26:33,366 INFO Session:94 - Created new session! {deviceId: c70f928698cc099e39bddfd469f7de38e3b805db, ap: ap-guc3.spotify.com:4070} 2023-06-19 21:26:34,351 INFO Session:223 - Connected successfully! 2023-06-19 21:26:34,647 INFO Session:242 - Authenticated as woklxlz1f9wkuu6j9fk3x6q54! 2023-06-19 21:26:34,647 INFO Session:716 - Skipping SecretBlock 2023-06-19 21:26:34,647 INFO Session:694 - Received LicenseVersion: 0 2023-06-19 21:26:34,647 INFO Session:684 - Received CountryCode: NL [main] INFO org.cache2k.core.Cache2kCoreProviderImpl - cache2k starting. version=1.2.4.Final 2023-06-19 21:26:34,694 INFO Session:716 - Skipping UnknownData_AllZeros 2023-06-19 21:26:34,694 INFO Session:716 - Skipping LegacyWelcome Listening on port 8080 2023-06-19 21:26:35,085 INFO Session:651 - Skipping unknown command {cmd: 0x75, payload: 000000} xyz.gianlu.librespot.mercury.MercuryClient$MercuryException: status: 502 at xyz.gianlu.librespot.mercury.MercuryClient.sendSync(MercuryClient.java:83) at xyz.gianlu.librespot.handler.PlayCountHandler.handle(PlayCountHandler.java:57) at com.sun.net.httpserver.Filter$Chain.doFilter(Unknown Source) at sun.net.httpserver.AuthFilter.doFilter(Unknown Source) at com.sun.net.httpserver.Filter$Chain.doFilter(Unknown Source) at sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(Unknown Source) at com.sun.net.httpserver.Filter$Chain.doFilter(Unknown Source) at sun.net.httpserver.ServerImpl$Exchange.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
Author
Owner

@surfmore commented on GitHub (Jun 19, 2023):

I recently have been unable to access playcounts aswell, but I am having the same issue as #11 although this has not happened before. I am assuming this might be something on Spotify's side too

This is related to the country of the account. Spotify seems to have changed the accounts to the country they were created. I changed back to the country where librespot is running, but didnt fix the problem. Now, it is happening with the error I just posted above.

<!-- gh-comment-id:1597666327 --> @surfmore commented on GitHub (Jun 19, 2023): > I recently have been unable to access playcounts aswell, but I am having the same issue as #11 although this has not happened before. I am assuming this might be something on Spotify's side too This is related to the country of the account. Spotify seems to have changed the accounts to the country they were created. I changed back to the country where librespot is running, but didnt fix the problem. Now, it is happening with the error I just posted above.
Author
Owner

@jpgrovy commented on GitHub (Jun 19, 2023):

This issue is also only happening for the artistInfo and albumPlayCount end points . artistInsights still works.

<!-- gh-comment-id:1597733566 --> @jpgrovy commented on GitHub (Jun 19, 2023): This issue is also only happening for the artistInfo and albumPlayCount end points . artistInsights still works.
Author
Owner

@christosk92 commented on GitHub (Jun 20, 2023):

I think Spotify finally killed support for this mercury endpoint.
You can actually replicate all these calls over REST to the sp client.
For example https://gae2-spclient.spotify.com/artist/v1/{artistId}/desktop currently returns 502 with response:

{
  "error": {
    "status": 502,
    "message": "Request was not transferred"
  }
}
<!-- gh-comment-id:1598561390 --> @christosk92 commented on GitHub (Jun 20, 2023): I think Spotify finally killed support for this mercury endpoint. You can actually replicate all these calls over REST to the sp client. For example https://gae2-spclient.spotify.com/artist/v1/{artistId}/desktop currently returns 502 with response: > ``` { "error": { "status": 502, "message": "Request was not transferred" } } ```
Author
Owner

@jpgrovy commented on GitHub (Jun 20, 2023):

I hope not 😔 - I wonder if there is another way to retrieve playcounts then.

<!-- gh-comment-id:1598702950 --> @jpgrovy commented on GitHub (Jun 20, 2023): I hope not 😔 - I wonder if there is another way to retrieve playcounts then.
Author
Owner

@christosk92 commented on GitHub (Jun 20, 2023):

I hope not 😔 - I wonder if there is another way to retrieve playcounts then.

well you can always find the appropriate album of a track, and then fetch the album (using the graphql endpoint)

https://api-partner.spotify.com/pathfinder/v1/query?operationName=getAlbum&variables={"uri":"spotify:album:{id}","locale":"","offset":0,"limit":50}&extensions={"persistedQuery":{"version":1,"sha256Hash":"46ae954ef2d2fe7732b4b2b4022157b2e18b7ea84f70591ceb164e4de1b5d5d3

returns

{
   "data":{
      "albumUnion":{
         "__typename":"Album",
         "uri":"spotify:album:...",
         "name":"...",
         "artists":{
            ....
         },
         "coverArt":{
         ...
         },
         ...
         "label":"...",
         "copyright":{...
         },
         "courtesyLine":"",
         "saved":false,
         "sharingInfo":{
            "shareUrl":"",
            "shareId":""
         },
         "tracks":{
            "totalCount":1,
            "items":[
               {
                  "uid":"edda05c86f012f7409cc",
                  "track":{
                     "saved":false,
                     "uri":"spotify:track:...",
                     "name":"...",
                     "playcount":"50288750",
                     "discNumber":1,
                     "trackNumber":1,
                     "contentRating":{
                        "label":"NONE"
                     },
                     "relinkingInformation":null,
                     "duration":{
                        "totalMilliseconds":192497
                     },
                     "playability":{
                        "playable":true
                     },
                     "artists":{
                       ....
                     }
                  }
               }
            ]
         },
         "moreAlbumsByArtist":{
        ....
      }
   },
   "extensions":{
      
   }
}
<!-- gh-comment-id:1598711276 --> @christosk92 commented on GitHub (Jun 20, 2023): > I hope not 😔 - I wonder if there is another way to retrieve playcounts then. well you can always find the appropriate album of a track, and then fetch the album (using the graphql endpoint) > ``https://api-partner.spotify.com/pathfinder/v1/query?operationName=getAlbum&variables={"uri":"spotify:album:{id}","locale":"","offset":0,"limit":50}&extensions={"persistedQuery":{"version":1,"sha256Hash":"46ae954ef2d2fe7732b4b2b4022157b2e18b7ea84f70591ceb164e4de1b5d5d3`` returns > ``` { "data":{ "albumUnion":{ "__typename":"Album", "uri":"spotify:album:...", "name":"...", "artists":{ .... }, "coverArt":{ ... }, ... "label":"...", "copyright":{... }, "courtesyLine":"", "saved":false, "sharingInfo":{ "shareUrl":"", "shareId":"" }, "tracks":{ "totalCount":1, "items":[ { "uid":"edda05c86f012f7409cc", "track":{ "saved":false, "uri":"spotify:track:...", "name":"...", "playcount":"50288750", "discNumber":1, "trackNumber":1, "contentRating":{ "label":"NONE" }, "relinkingInformation":null, "duration":{ "totalMilliseconds":192497 }, "playability":{ "playable":true }, "artists":{ .... } } } ] }, "moreAlbumsByArtist":{ .... } }, "extensions":{ } } ```
Author
Owner

@jpgrovy commented on GitHub (Jun 20, 2023):

I hope not 😔 - I wonder if there is another way to retrieve playcounts then.

well you can always find the appropriate album of a track, and then fetch the album (using the graphql endpoint)

https://api-partner.spotify.com/pathfinder/v1/query?operationName=getAlbum&variables={"uri":"spotify:album:{id}","locale":"","offset":0,"limit":50}&extensions={"persistedQuery":{"version":1,"sha256Hash":"46ae954ef2d2fe7732b4b2b4022157b2e18b7ea84f70591ceb164e4de1b5d5d3

returns

{
   "data":{
      "albumUnion":{
         "__typename":"Album",
         "uri":"spotify:album:...",
         "name":"...",
         "artists":{
            ....
         },
         "coverArt":{
         ...
         },
         ...
         "label":"...",
         "copyright":{...
         },
         "courtesyLine":"",
         "saved":false,
         "sharingInfo":{
            "shareUrl":"",
            "shareId":""
         },
         "tracks":{
            "totalCount":1,
            "items":[
               {
                  "uid":"edda05c86f012f7409cc",
                  "track":{
                     "saved":false,
                     "uri":"spotify:track:...",
                     "name":"...",
                     "playcount":"50288750",
                     "discNumber":1,
                     "trackNumber":1,
                     "contentRating":{
                        "label":"NONE"
                     },
                     "relinkingInformation":null,
                     "duration":{
                        "totalMilliseconds":192497
                     },
                     "playability":{
                        "playable":true
                     },
                     "artists":{
                       ....
                     }
                  }
               }
            ]
         },
         "moreAlbumsByArtist":{
        ....
      }
   },
   "extensions":{
      
   }
}

But is there a way using graph to get the complete list of Albums and Singles for an artistID?

<!-- gh-comment-id:1598721074 --> @jpgrovy commented on GitHub (Jun 20, 2023): > > I hope not 😔 - I wonder if there is another way to retrieve playcounts then. > > well you can always find the appropriate album of a track, and then fetch the album (using the graphql endpoint) > > > `https://api-partner.spotify.com/pathfinder/v1/query?operationName=getAlbum&variables={"uri":"spotify:album:{id}","locale":"","offset":0,"limit":50}&extensions={"persistedQuery":{"version":1,"sha256Hash":"46ae954ef2d2fe7732b4b2b4022157b2e18b7ea84f70591ceb164e4de1b5d5d3` > > returns > > > > > ``` > { > "data":{ > "albumUnion":{ > "__typename":"Album", > "uri":"spotify:album:...", > "name":"...", > "artists":{ > .... > }, > "coverArt":{ > ... > }, > ... > "label":"...", > "copyright":{... > }, > "courtesyLine":"", > "saved":false, > "sharingInfo":{ > "shareUrl":"", > "shareId":"" > }, > "tracks":{ > "totalCount":1, > "items":[ > { > "uid":"edda05c86f012f7409cc", > "track":{ > "saved":false, > "uri":"spotify:track:...", > "name":"...", > "playcount":"50288750", > "discNumber":1, > "trackNumber":1, > "contentRating":{ > "label":"NONE" > }, > "relinkingInformation":null, > "duration":{ > "totalMilliseconds":192497 > }, > "playability":{ > "playable":true > }, > "artists":{ > .... > } > } > } > ] > }, > "moreAlbumsByArtist":{ > .... > } > }, > "extensions":{ > > } > } > ``` But is there a way using graph to get the complete list of Albums and Singles for an artistID?
Author
Owner

@christosk92 commented on GitHub (Jun 20, 2023):

@jpgrovy Yes but it's paged, which is really annoying.
It's

https://api-partner.spotify.com/pathfinder/v1/query?operationName=queryArtistDiscographyAll&variables={"uri":"spotify:artist:{id}","offset":0,"limit":100}&extensions={"persistedQuery":{"version":1,"sha256Hash":"35a699e12a728c1a02f5bf67121a50f87341e65054e13126c03b7697fbd26692"}}

<!-- gh-comment-id:1598735316 --> @christosk92 commented on GitHub (Jun 20, 2023): @jpgrovy Yes but it's paged, which is really annoying. It's > `https://api-partner.spotify.com/pathfinder/v1/query?operationName=queryArtistDiscographyAll&variables={"uri":"spotify:artist:{id}","offset":0,"limit":100}&extensions={"persistedQuery":{"version":1,"sha256Hash":"35a699e12a728c1a02f5bf67121a50f87341e65054e13126c03b7697fbd26692"}}`
Author
Owner

@SatyF commented on GitHub (Jun 20, 2023):

How / where do you use this link? How does it replace the mercury call? If i simply check the link you share it tells "No token provided"

<!-- gh-comment-id:1598831611 --> @SatyF commented on GitHub (Jun 20, 2023): How / where do you use this link? How does it replace the mercury call? If i simply check the link you share it tells "No token provided"
Author
Owner

@christosk92 commented on GitHub (Jun 20, 2023):

That would be for you to figure out :)

Hint: use the mercury client to get a bearer and then put it in the headers

<!-- gh-comment-id:1598940983 --> @christosk92 commented on GitHub (Jun 20, 2023): That would be for you to figure out :) Hint: use the mercury client to get a bearer and then put it in the headers
Author
Owner

@SatyF commented on GitHub (Jun 20, 2023):

That won't be for me then I suppose, I always struggle to cope with clients/protocols, etc, I have no idea what your hint means tbh

<!-- gh-comment-id:1598958833 --> @SatyF commented on GitHub (Jun 20, 2023): That won't be for me then I suppose, I always struggle to cope with clients/protocols, etc, I have no idea what your hint means tbh
Author
Owner

@christosk92 commented on GitHub (Jun 20, 2023):

Oh I thought you were a maintainer of this project..
Well first you'd need a bearer token to authenticate with this client.
Since this is an internal API, you can't just fetch one using the official method (Spotify developer console), as that will result in an 403 (forbid).

This project I think has the ability to fetch a good token over mercury (hm://keymaster/token/authenticated?scope...), which can then be used to authenticate properly and fetch the resource I provided.

It would require quite some changes to the project, unfortunately I am not actively involved in this project so I wont do it. But the developer may of course.

<!-- gh-comment-id:1598981447 --> @christosk92 commented on GitHub (Jun 20, 2023): Oh I thought you were a maintainer of this project.. Well first you'd need a bearer token to authenticate with this client. Since this is an internal API, you can't just fetch one using the official method (Spotify developer console), as that will result in an 403 (forbid). This project I think has the ability to fetch a good token over mercury (hm://keymaster/token/authenticated?scope...), which can then be used to authenticate properly and fetch the resource I provided. It would require quite some changes to the project, unfortunately I am not actively involved in this project so I wont do it. But the developer may of course.
Author
Owner

@jpgrovy commented on GitHub (Jun 20, 2023):

@jpgrovy Yes but it's paged, which is really annoying. It's

https://api-partner.spotify.com/pathfinder/v1/query?operationName=queryArtistDiscographyAll&variables={"uri":"spotify:artist:{id}","offset":0,"limit":100}&extensions={"persistedQuery":{"version":1,"sha256Hash":"35a699e12a728c1a02f5bf67121a50f87341e65054e13126c03b7697fbd26692"}}

I get “RBAC: Access Denied” when trying to make the api-partner calls.

Side note… anyone want to be awesome and fix the librespot playcount code? 🙏🙏🙏

<!-- gh-comment-id:1599169642 --> @jpgrovy commented on GitHub (Jun 20, 2023): > @jpgrovy Yes but it's paged, which is really annoying. It's > > > > > `https://api-partner.spotify.com/pathfinder/v1/query?operationName=queryArtistDiscographyAll&variables={"uri":"spotify:artist:{id}","offset":0,"limit":100}&extensions={"persistedQuery":{"version":1,"sha256Hash":"35a699e12a728c1a02f5bf67121a50f87341e65054e13126c03b7697fbd26692"}}` I get “RBAC: Access Denied” when trying to make the api-partner calls. Side note… anyone want to be awesome and fix the librespot playcount code? 🙏🙏🙏
Author
Owner

@entriphy commented on GitHub (Jun 20, 2023):

Yep, they most likely killed the endpoint: librespot-org/librespot-java#678

Since it seems like Spotify doesn't use Hermes in their clients anymore, I think the only way forward with this project is to use Spotify's private API, so this repo may be archived once I figure things out.

<!-- gh-comment-id:1599253132 --> @entriphy commented on GitHub (Jun 20, 2023): Yep, they most likely killed the endpoint: librespot-org/librespot-java#678 Since it seems like Spotify doesn't use Hermes in their clients anymore, I think the only way forward with this project is to use Spotify's private API, so this repo may be archived once I figure things out.
Author
Owner

@christosk92 commented on GitHub (Jun 20, 2023):

Well... hermes is just their internal router. As I mentioned earlier, all hermes endpoints can be translated to their HTTPs counterpart by just replacing hm:// with the spclient url.

I think hermes will still be supported, since a lot of their internal services may still use them.
You can fetch an access token using :
hm://keymaster/token/authenticated?scope=user-read-private,user-read-email,playlist-modify-public,ugc-image-upload,playlist-read-private,playlist-read-collaborative,playlist-read&client_id=65b708073fc0480ea92a077233ca87bd&device_id=
Which you can then use to access the private api (partner + spclient) . The public (web api) endpoints also work

<!-- gh-comment-id:1599278992 --> @christosk92 commented on GitHub (Jun 20, 2023): Well... hermes is just their internal router. As I mentioned earlier, all hermes endpoints can be translated to their HTTPs counterpart by just replacing hm:// with the spclient url. I think hermes will still be supported, since a lot of their internal services may still use them. You can fetch an access token using : `hm://keymaster/token/authenticated?scope=user-read-private,user-read-email,playlist-modify-public,ugc-image-upload,playlist-read-private,playlist-read-collaborative,playlist-read&client_id=65b708073fc0480ea92a077233ca87bd&device_id=` Which you can then use to access the private api (partner + spclient) . The public (web api) endpoints also work
Author
Owner

@SatyF commented on GitHub (Jun 20, 2023):

Yep, they most likely killed the endpoint: librespot-org#678

Since it seems like Spotify doesn't use Hermes in their clients anymore, I think the only way forward with this project is to use Spotify's private API, so this repo may be archived once I figure things out.

To re-do this repo maybe the easiest is to restart from the last version of librespot-java and import the few playcount / artist info handlers into it as the former now manages the Web API, has a token provider with the keymaster and all. In a first step it wouldn't be needed to stripe the unneeded content or anything.

<!-- gh-comment-id:1599377452 --> @SatyF commented on GitHub (Jun 20, 2023): > Yep, they most likely killed the endpoint: [librespot-org#678](https://github.com/librespot-org/librespot-java/issues/678) > > Since it seems like Spotify doesn't use Hermes in their clients anymore, I think the only way forward with this project is to use Spotify's private API, so this repo may be archived once I figure things out. To re-do this repo maybe the easiest is to restart from the last version of librespot-java and import the few playcount / artist info handlers into it as the former now manages the Web API, has a token provider with the keymaster and all. In a first step it wouldn't be needed to stripe the unneeded content or anything.
Author
Owner

@entriphy commented on GitHub (Jun 20, 2023):

Well... hermes is just their internal router. As I mentioned earlier, all hermes endpoints can be translated to their HTTPs counterpart by just replacing hm:// with the spclient url.

Ah, I haven't worked on this project in a while and forgot the terminology. I meant to say that their clients switched to using the GraphQL API for retrieving stuff like track play counts in an album. Since it seems that all endpoints that this project uses have become useless (albumPlayCount and artistInfo return status code 502, artistAbout and artistInsights just fills in 0 for all relevant values), the GraphQL API seems to be the only replacement for those endpoints. The access token for the GraphQL endpoints needed don't require Mercury or authentication either (the token can be retrieved through https://open.spotify.com/get_access_token?reason=transport&productType=web_player).

...which at that point I'd essentially be making a CORS proxy for the GraphQL API. Seems like a cheap solution, though the main issue is that the GraphQL API is quite terrible to work with, so I'd have to look into that further :p

<!-- gh-comment-id:1599673104 --> @entriphy commented on GitHub (Jun 20, 2023): > Well... hermes is just their internal router. As I mentioned earlier, all hermes endpoints can be translated to their HTTPs counterpart by just replacing hm:// with the spclient url. Ah, I haven't worked on this project in a while and forgot the terminology. I meant to say that their clients switched to using the GraphQL API for retrieving stuff like track play counts in an album. Since it seems that all endpoints that this project uses have become useless (`albumPlayCount` and `artistInfo` return status code 502, `artistAbout` and `artistInsights` just fills in 0 for all relevant values), the GraphQL API seems to be the only replacement for those endpoints. The access token for the GraphQL endpoints needed don't require Mercury or authentication either (the token can be retrieved through `https://open.spotify.com/get_access_token?reason=transport&productType=web_player`). ...which at that point I'd essentially be making a CORS proxy for the GraphQL API. Seems like a cheap solution, though the main issue is that the GraphQL API is quite terrible to work with, so I'd have to look into that further :p
Author
Owner

@christosk92 commented on GitHub (Jun 21, 2023):

Yes the graphql api is terrible to work with, and I do not understand why Spotify did not just build on the web-api, which has a good schema.

Anyways, I was also able to implement the oauth protocol using PKCE, and reverse engineer their persistent login mechanism.
Which still uses the actual TCP connection some parts.

Mainly, after the oauth callback, you get an access token, which you can then use to authenticate using the old method (over TCP).
Then in the APWelcome message, you have some re-usable credentials which are then posted in the body of
https://login5.spotify.com/v3/login

In pseudo code this will look like

var webResponse = openBrowserAndCatchRedirectToken();
var accessToken = webResponse.accessToken;
var username = webResponse.username;

var credentials = new LoginCredentials
{
    Typ = AUTHENTICATION_SPOTIFY_TOKEN,
    Username = username,
    AuthData = ByteString.CopyFromUtf8(accessToken)
}
var apwelcome = performAuthOverTcp(credentials);

var reusablecredentials = apwelcome.reusable_auth_credentials;


Next in another login session:
POST https://login5.spotify.com/v3/login
the body is a protobuf with:

message LoginRequest {
    .spotify.login5.v3.ClientInfo client_info = 1;
    .spotify.login5.v3.credentials.StoredCredential stored_credential = 100;
}


<!-- gh-comment-id:1600035452 --> @christosk92 commented on GitHub (Jun 21, 2023): Yes the graphql api is terrible to work with, and I do not understand why Spotify did not just build on the web-api, which has a good schema. Anyways, I was also able to implement the oauth protocol using PKCE, and reverse engineer their persistent login mechanism. Which still uses the actual TCP connection some parts. Mainly, after the oauth callback, you get an access token, which you can then use to authenticate using the old method (over TCP). Then in the APWelcome message, you have some re-usable credentials which are then posted in the body of https://login5.spotify.com/v3/login In pseudo code this will look like ``` var webResponse = openBrowserAndCatchRedirectToken(); var accessToken = webResponse.accessToken; var username = webResponse.username; var credentials = new LoginCredentials { Typ = AUTHENTICATION_SPOTIFY_TOKEN, Username = username, AuthData = ByteString.CopyFromUtf8(accessToken) } var apwelcome = performAuthOverTcp(credentials); var reusablecredentials = apwelcome.reusable_auth_credentials; ``` Next in another login session: POST https://login5.spotify.com/v3/login the body is a protobuf with: ```proto message LoginRequest { .spotify.login5.v3.ClientInfo client_info = 1; .spotify.login5.v3.credentials.StoredCredential stored_credential = 100; } ```
Author
Owner

@jpgrovy commented on GitHub (Jun 21, 2023):

Yes the graphql api is terrible to work with, and I do not understand why Spotify did not just build on the web-api, which has a good schema.

Anyways, I was also able to implement the oauth protocol using PKCE, and reverse engineer their persistent login mechanism. Which still uses the actual TCP connection some parts.

Mainly, after the oauth callback, you get an access token, which you can then use to authenticate using the old method (over TCP). Then in the APWelcome message, you have some re-usable credentials which are then posted in the body of https://login5.spotify.com/v3/login

In pseudo code this will look like

var webResponse = openBrowserAndCatchRedirectToken();
var accessToken = webResponse.accessToken;
var username = webResponse.username;

var credentials = new LoginCredentials
{
    Typ = AUTHENTICATION_SPOTIFY_TOKEN,
    Username = username,
    AuthData = ByteString.CopyFromUtf8(accessToken)
}
var apwelcome = performAuthOverTcp(credentials);

var reusablecredentials = apwelcome.reusable_auth_credentials;

Next in another login session: POST https://login5.spotify.com/v3/login the body is a protobuf with:

message LoginRequest {
    .spotify.login5.v3.ClientInfo client_info = 1;
    .spotify.login5.v3.credentials.StoredCredential stored_credential = 100;
}

You guys are too smart for me 😉 … does this mean it’s fixable to get working again?

<!-- gh-comment-id:1600049130 --> @jpgrovy commented on GitHub (Jun 21, 2023): > Yes the graphql api is terrible to work with, and I do not understand why Spotify did not just build on the web-api, which has a good schema. > > Anyways, I was also able to implement the oauth protocol using PKCE, and reverse engineer their persistent login mechanism. Which still uses the actual TCP connection some parts. > > Mainly, after the oauth callback, you get an access token, which you can then use to authenticate using the old method (over TCP). Then in the APWelcome message, you have some re-usable credentials which are then posted in the body of https://login5.spotify.com/v3/login > > In pseudo code this will look like > > ``` > var webResponse = openBrowserAndCatchRedirectToken(); > var accessToken = webResponse.accessToken; > var username = webResponse.username; > > var credentials = new LoginCredentials > { > Typ = AUTHENTICATION_SPOTIFY_TOKEN, > Username = username, > AuthData = ByteString.CopyFromUtf8(accessToken) > } > var apwelcome = performAuthOverTcp(credentials); > > var reusablecredentials = apwelcome.reusable_auth_credentials; > ``` > > Next in another login session: POST https://login5.spotify.com/v3/login the body is a protobuf with: > > ```proto > message LoginRequest { > .spotify.login5.v3.ClientInfo client_info = 1; > .spotify.login5.v3.credentials.StoredCredential stored_credential = 100; > } > ``` You guys are too smart for me 😉 … does this mean it’s fixable to get working again?
Author
Owner

@pdenis commented on GitHub (Jun 21, 2023):

Hey @christosk92 ,

Do you know a replacement of artistInsights with their graphql API especially for top 50 cities ?

I don't find one.

<!-- gh-comment-id:1600291181 --> @pdenis commented on GitHub (Jun 21, 2023): Hey @christosk92 , Do you know a replacement of artistInsights with their graphql API especially for top 50 cities ? I don't find one.
Author
Owner

@entriphy commented on GitHub (Jun 21, 2023):

queryArtistOverview seems to be the only endpoint for retrieving artist data, which does include the top 5 cities.

I'm currently testing sp-playcount on api.t4ils.dev:
https://api.t4ils.dev/getArtist?id=1g8HCTiMwBtFtpRR9JXAZR (uses queryArtistOverview)
https://api.t4ils.dev/getAlbum?id=5K4YFkTizFoMOyN5Khfp7G (uses getAlbum)
https://api.t4ils.dev/getAlbumTracks?id=5K4YFkTizFoMOyN5Khfp7G (uses queryAlbumTracks)

<!-- gh-comment-id:1600385559 --> @entriphy commented on GitHub (Jun 21, 2023): `queryArtistOverview` seems to be the only endpoint for retrieving artist data, which does include the top 5 cities. I'm currently testing [sp-playcount](https://github.com/entriphy/sp-playcount) on api.t4ils.dev: https://api.t4ils.dev/getArtist?id=1g8HCTiMwBtFtpRR9JXAZR (uses `queryArtistOverview`) https://api.t4ils.dev/getAlbum?id=5K4YFkTizFoMOyN5Khfp7G (uses `getAlbum`) https://api.t4ils.dev/getAlbumTracks?id=5K4YFkTizFoMOyN5Khfp7G (uses `queryAlbumTracks`)
Author
Owner

@louison commented on GitHub (Jun 21, 2023):

Hi @entriphy,
How did you find the definition of the GQL query you document here ?

<!-- gh-comment-id:1600444391 --> @louison commented on GitHub (Jun 21, 2023): Hi @entriphy, How did you find the definition of the GQL query you document [here](https://github.com/entriphy/sp-playcount/blob/ff495571f8f9212ccfa4ba5a7c4df811c74a5571/queries/get_album.py#L3) ?
Author
Owner

@pdenis commented on GitHub (Jun 21, 2023):

@entriphy : yes it seems old top 50 is no longer available via graphq :/

<!-- gh-comment-id:1600468132 --> @pdenis commented on GitHub (Jun 21, 2023): @entriphy : yes it seems old top 50 is no longer available via graphq :/
Author
Owner

@christosk92 commented on GitHub (Jun 21, 2023):

@louison You can find those when looking in the source code of the webplayer. Those queries are then hashed to decrease request size..
Specifically, the web-player.{}.js file will be interesting.
There's a line in the file:

 const t = await a.k.hash(e.body);

Which if you put a breakpoint there, you can expect the body

<!-- gh-comment-id:1600469356 --> @christosk92 commented on GitHub (Jun 21, 2023): @louison You can find those when looking in the source code of the webplayer. Those queries are then hashed to decrease request size.. Specifically, the web-player.{}.js file will be interesting. There's a line in the file: ``` const t = await a.k.hash(e.body); ``` Which if you put a breakpoint there, you can expect the body
Author
Owner

@jpgrovy commented on GitHub (Jun 21, 2023):

Hey @christosk92 ,

Do you know a replacement of artistInsights with their graphql API especially for top 50 cities ?

I don't find one.

Artist Insights is showing Top 50 cities and still works

<!-- gh-comment-id:1600750897 --> @jpgrovy commented on GitHub (Jun 21, 2023): > Hey @christosk92 , > > Do you know a replacement of artistInsights with their graphql API especially for top 50 cities ? > > I don't find one. Artist Insights is showing Top 50 cities and still works
Author
Owner

@pdenis commented on GitHub (Jun 21, 2023):

Hey @christosk92 ,
Do you know a replacement of artistInsights with their graphql API especially for top 50 cities ?
I don't find one.

Artist Insights is showing Top 50 cities and still works

Yes I know, but I anticipate

<!-- gh-comment-id:1600756102 --> @pdenis commented on GitHub (Jun 21, 2023): > > Hey @christosk92 , > > Do you know a replacement of artistInsights with their graphql API especially for top 50 cities ? > > I don't find one. > > Artist Insights is showing Top 50 cities and still works Yes I know, but I anticipate
Author
Owner

@jpgrovy commented on GitHub (Jun 23, 2023):

Is anyone working on an update / fix ?

<!-- gh-comment-id:1603508250 --> @jpgrovy commented on GitHub (Jun 23, 2023): Is anyone working on an update / fix ?
Author
Owner

@Temoigneur commented on GitHub (Jun 25, 2023):

queryArtistOverview seems to be the only endpoint for retrieving artist data, which does include the top 5 cities.

I'm currently testing sp-playcount on api.t4ils.dev: https://api.t4ils.dev/getArtist?id=1g8HCTiMwBtFtpRR9JXAZR (uses queryArtistOverview) https://api.t4ils.dev/getAlbum?id=5K4YFkTizFoMOyN5Khfp7G (uses getAlbum) https://api.t4ils.dev/getAlbumTracks?id=5K4YFkTizFoMOyN5Khfp7G (uses queryAlbumTracks)

Hi Entriphy, I'm not a programmer, so excuse my basic questions, and any misconceptions I have about how to implement a possible solution.. Your program is brilliant, btw. I see that the endpoints you're testing @ api.t4ils.dev return the raw .json data I need, (the track playcounts). With complete reliance on GPT-4, and a little help from a programmer-friend, I managed to create a search engine for personal/testing use which coordinates .js code of my own, (my .js/html is named "ISE_Updated" here: https://github.com/Temoigneur/Integrated_Search_Engine/tree/main) with your java program to retrieve individual track playcounts associated with a list of search results returned by the web-api, upon executing a search for musical content, (which incidentally runs four separate search engines simultaneously, via one central search bar). I recently updated the search function /w the /artistInsights endpt, to display a box beside the top three search results corresponding to 3 unique artists, that when clicked, showed the artist's monthly plays in the top five cities globally, as well as those of three Canadian cities that the artist was most popular in, (I'm in Canada). Although I managed to update the CORS handling in your java program to resolve issues with my localhost/ chrome configuration, and managed to update the version number when Spotify recently changed that, (https://github.com/Temoigneur/sp-playcount-librespot), I can see that attempting to reconfigure your entire program with next to zero understanding of what I'm doing, for Graphql, or to possibly retrieve what I need from new endpoints via api.t4ils.dev, would be a daunting task, and possibly an exercise in futility, (if that could even work at all). Is there any relatively straightforward way your program could be modified to use an alternate endpoint/method to obtain the play counts for individual tracks, that would work relatively seamlessly with my .js/html code via a fetch request to the updated java program/server, as before? Thank you!!

<!-- gh-comment-id:1605782360 --> @Temoigneur commented on GitHub (Jun 25, 2023): > `queryArtistOverview` seems to be the only endpoint for retrieving artist data, which does include the top 5 cities. > > I'm currently testing [sp-playcount](https://github.com/entriphy/sp-playcount) on api.t4ils.dev: https://api.t4ils.dev/getArtist?id=1g8HCTiMwBtFtpRR9JXAZR (uses `queryArtistOverview`) https://api.t4ils.dev/getAlbum?id=5K4YFkTizFoMOyN5Khfp7G (uses `getAlbum`) https://api.t4ils.dev/getAlbumTracks?id=5K4YFkTizFoMOyN5Khfp7G (uses `queryAlbumTracks`) Hi Entriphy, I'm not a programmer, so excuse my basic questions, and any misconceptions I have about how to implement a possible solution.. Your program is brilliant, btw. I see that the endpoints you're testing @ api.t4ils.dev return the raw .json data I need, (the track playcounts). With complete reliance on GPT-4, and a little help from a programmer-friend, I managed to create a search engine for personal/testing use which coordinates .js code of my own, (my .js/html is named "ISE_Updated" here: https://github.com/Temoigneur/Integrated_Search_Engine/tree/main) with your java program to retrieve individual track playcounts associated with a list of search results returned by the web-api, upon executing a search for musical content, (which incidentally runs four separate search engines simultaneously, via one central search bar). I recently updated the search function /w the /artistInsights endpt, to display a box beside the top three search results corresponding to 3 unique artists, that when clicked, showed the artist's monthly plays in the top five cities globally, as well as those of three Canadian cities that the artist was most popular in, (I'm in Canada). Although I managed to update the CORS handling in your java program to resolve issues with my localhost/ chrome configuration, and managed to update the version number when Spotify recently changed that, (https://github.com/Temoigneur/sp-playcount-librespot), I can see that attempting to reconfigure your entire program with next to zero understanding of what I'm doing, for Graphql, or to possibly retrieve what I need from new endpoints via api.t4ils.dev, would be a daunting task, and possibly an exercise in futility, (if that could even work at all). Is there any relatively straightforward way your program could be modified to use an alternate endpoint/method to obtain the play counts for individual tracks, that would work relatively seamlessly with my .js/html code via a fetch request to the updated java program/server, as before? Thank you!!
Author
Owner

@jpgrovy commented on GitHub (Jun 25, 2023):

I’m also anxiously waiting and hopeful of an update 🙏

<!-- gh-comment-id:1605861357 --> @jpgrovy commented on GitHub (Jun 25, 2023): I’m also anxiously waiting and hopeful of an update 🙏
Author
Owner

@entriphy commented on GitHub (Jun 26, 2023):

Does anyone have the JSON schema for all the old endpoints (the ones that this project uses) by any chance? I'm trying to make sp-playcount as backwards-compatible with this project's endpoints as possible, though since the old endpoints no longer work, I cannot do that unless someone has the JSON schema (or at the very least a sample response from each of the endpoints).

<!-- gh-comment-id:1606355940 --> @entriphy commented on GitHub (Jun 26, 2023): Does anyone have the JSON schema for all the old endpoints (the ones that this project uses) by any chance? I'm trying to make sp-playcount as backwards-compatible with this project's endpoints as possible, though since the old endpoints no longer work, I cannot do that unless someone has the JSON schema (or at the very least a sample response from each of the endpoints).
Author
Owner

@Temoigneur commented on GitHub (Jun 26, 2023):

Here's the /playCount endpt object data (partially expanded) as it appears
in the chrome browser, unfortunately I didn't save any of the JSON data for
the endpoints..

▼{success: true, data: {uri: "spotify:album:1ynyQdPQiXdYJNQEDL1S3d", name:
"My Turn",…}}
▼data: {uri: "spotify:album:1ynyQdPQiXdYJNQEDL1S3d", name: "My Turn",…}
►additional: {releases: [{uri: "spotify:album:5UWwSyg5f75ZY87bUje6RA",
name: "My Turn",…}]}
►artists: [{name: "Lil Baby", uri: "spotify🧑‍🎨5f7VJjfbwm532GiveGC0ZK"}]
►copyrights: ["© ℗ 2020 Quality Control Music, LLC, under exclusive license
to UMG Recordings, Inc."]
►cover: {uri: "
https://i.scdn.co/image/ab67616d00001e02f46a9ad551acbdab8f72fd89"}
day: 28
▼discs: [{number: 1, name: "", tracks: [,…]}]
▼ 0: {number: 1, name: "", tracks: [,-.]}
name: ""
number: 1
▼ tracks: [,...]
▼1: {uri: "spotify:track:20Yz5dzjdTCVjXte9KrJbi", playcount: 37836909,
name: "Get Ugly", popularity: 53,…}
►artists: [{name: "Lil Baby”, uri:
"spotify🧑‍🎨5f7Vljfbwm532GiveGC0ZK",..}]
duration: 155832
explicit: true
name: "Get Ugly"
number: 1
playable: true
playcount: 37836909
popularity: 53
uri: "spotify:track:20Yz5dzjdTCVjXte9Krlbi"
►2:{uri: "spotify:track:7KSSdFCBHCfq4KPzz78ghk", playcount: 165765514,
name: "Heatin Up (feat. Gunna)",…}
►3:{uri: "spotify:track:01JMnRUs2YOK6DDpdQASGY", playcount: 135812509,
name: "Grace (feat. 42 Dugg)",…}

artists
:
[{name: "Lil Baby", uri: "spotify🧑‍🎨5f7VJjfbwm532GiveGC0ZK",…},…]
duration
:
177314
explicit
:
true
name
:
"Heatin Up (feat. Gunna)"
number
:
2
playable
:
true
playcount
:
165765514
popularity
:
70
uri
:
"spotify:track:7KSSdFCBHCfq4KPzz78ghk"

►1: {uri: "spotify:track:7KSSdFCBHCfq4KPzz78ghk",
►3: {uri: "spotify:track:2b7rt5gCEy2p2zTp656s4U",

label: "Quality
month: 2
name: "My Turn"
►related: {releases: [{uri: "spotify:album:0FYvMdfTfYJxnJnKs1wDb0", name:
"It's Only Me",…},…]}
track_count: 20
type: "album"
uri: "spotify:album:lynyQdPQiXdYJNQEDLlS3d"
year: 2020
success: true

On Sun, Jun 25, 2023 at 8:25 PM triph @.***> wrote:

Does anyone have the JSON schema for all the old endpoints (the ones that
this project uses) by any chance? I'm trying to make sp-playcount as
backwards-compatible with this project's endpoints as possible, though
since the old endpoints no longer work, I cannot do that unless someone has
the JSON schema (or at the very least a sample response from each of the
endpoints).


Reply to this email directly, view it on GitHub
https://github.com/entriphy/sp-playcount-librespot/issues/28#issuecomment-1606355940,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AE4Y5PHAHQ5JAIMHNVRJOC3XNDJH5ANCNFSM6AAAAAAZMFYZZE
.
You are receiving this because you commented.Message ID:
@.***>

<!-- gh-comment-id:1606364163 --> @Temoigneur commented on GitHub (Jun 26, 2023): Here's the /playCount endpt object data (partially expanded) as it appears in the chrome browser, unfortunately I didn't save any of the JSON data for the endpoints.. ▼{success: true, data: {uri: "spotify:album:1ynyQdPQiXdYJNQEDL1S3d", name: "My Turn",…}} ▼data: {uri: "spotify:album:1ynyQdPQiXdYJNQEDL1S3d", name: "My Turn",…} ►additional: {releases: [{uri: "spotify:album:5UWwSyg5f75ZY87bUje6RA", name: "My Turn",…}]} ►artists: [{name: "Lil Baby", uri: "spotify:artist:5f7VJjfbwm532GiveGC0ZK"}] ►copyrights: ["© ℗ 2020 Quality Control Music, LLC, under exclusive license to UMG Recordings, Inc."] ►cover: {uri: " https://i.scdn.co/image/ab67616d00001e02f46a9ad551acbdab8f72fd89"} day: 28 ▼discs: [{number: 1, name: "", tracks: [,…]}] ▼ 0: {number: 1, name: "", tracks: [,-.]} name: "" number: 1 ▼ tracks: [,...] ▼1: {uri: "spotify:track:20Yz5dzjdTCVjXte9KrJbi", playcount: 37836909, name: "Get Ugly", popularity: 53,…} ►artists: [{name: "Lil Baby”, uri: "spotify:artist:5f7Vljfbwm532GiveGC0ZK",..}] duration: 155832 explicit: true name: "Get Ugly" number: 1 playable: true playcount: 37836909 popularity: 53 uri: "spotify:track:20Yz5dzjdTCVjXte9Krlbi" ►2:{uri: "spotify:track:7KSSdFCBHCfq4KPzz78ghk", playcount: 165765514, name: "Heatin Up (feat. Gunna)",…} ►3:{uri: "spotify:track:01JMnRUs2YOK6DDpdQASGY", playcount: 135812509, name: "Grace (feat. 42 Dugg)",…} artists : [{name: "Lil Baby", uri: "spotify:artist:5f7VJjfbwm532GiveGC0ZK",…},…] duration : 177314 explicit : true name : "Heatin Up (feat. Gunna)" number : 2 playable : true playcount : 165765514 popularity : 70 uri : "spotify:track:7KSSdFCBHCfq4KPzz78ghk" ►1: {uri: "spotify:track:7KSSdFCBHCfq4KPzz78ghk", ►3: {uri: "spotify:track:2b7rt5gCEy2p2zTp656s4U", label: "Quality month: 2 name: "My Turn" ►related: {releases: [{uri: "spotify:album:0FYvMdfTfYJxnJnKs1wDb0", name: "It's Only Me",…},…]} track_count: 20 type: "album" uri: "spotify:album:lynyQdPQiXdYJNQEDLlS3d" year: 2020 success: true On Sun, Jun 25, 2023 at 8:25 PM triph ***@***.***> wrote: > Does anyone have the JSON schema for all the old endpoints (the ones that > this project uses) by any chance? I'm trying to make sp-playcount as > backwards-compatible with this project's endpoints as possible, though > since the old endpoints no longer work, I cannot do that unless someone has > the JSON schema (or at the very least a sample response from each of the > endpoints). > > — > Reply to this email directly, view it on GitHub > <https://github.com/entriphy/sp-playcount-librespot/issues/28#issuecomment-1606355940>, > or unsubscribe > <https://github.com/notifications/unsubscribe-auth/AE4Y5PHAHQ5JAIMHNVRJOC3XNDJH5ANCNFSM6AAAAAAZMFYZZE> > . > You are receiving this because you commented.Message ID: > ***@***.***> >
Author
Owner

@Temoigneur commented on GitHub (Jun 26, 2023):

Here's the /artistInsights endpt json, (which you probably already have:)

{"success": true, "data":
{"artistGid":"ac4d229eb1194eac83fc53e94cb24164","name":"Lil
Baby","mainImageUrl":"https://i.scdn.co/image/ab676161000051746cad3eff5adc29e20f189a6c","headerImage":{"id":"ab6761863e04a7eabaeb3b509e2181b5","uri":"https://i.scdn.co/image/ab67618600001016c1fb58154514c4af61de7e4a","width":2660,"height":1140},"autobiography":{"body":"Some
artists define a genre, but Lil Baby defines a generation. The GRAMMY
Award-winning rapper has smashed records, made history, and impacted
the course of modern hip-hop with his instantly identifiable and
inimitable style. He has garnered dozens of multi platinum
certifications and tens of billions of streams as arguably the biggest
new rapper to emerge this decade. Following the success of his
platinum full-length debut Harder Than Ever in 2018, he seized #1 on
the Billboard Top 200 with 2020’s My Turn, becoming “the year’s #1
selling and #1 streaming album in the US.” At first, it cemented him
as “2020’s first and only artist to go double-platinum,” but it has
since gone quadruple-platinum and has logged 85 weeks in the top 10 of
the Top R&B/Hip-Hop Albums chart – marking the longest top-tier
run in the chart’s history. \n \nHe notably tied Prince and Paul
McCartney for Billboard Hot 100 hits and Taylor Swift for “most weeks
atop the Billboard Top 200 in 2020” with a total of 6. Out of eight
nominations, he scored his first GRAMMY® Award in 2022. He teamed up
with Lil Durk for The Voice of the Heroes, marking his second #1 debut
on the Billboard Top 200. It’s just the beginning though. Most
recently, he released “Right On” and “In A Minute” which both songs
debuted on Billboard’s Hot 100 chart. This feat puts Lil Baby in rare
territory, making him the youngest of only 12 artists to have ever
landed 100 or more songs on the Hot 100.
\n","links":{"twitter":"https://twitter.com/lilbaby4pf","instagram":"https://instagram.com/lilbaby/"}},"biography":"Atlanta-bred
rapper Lil Baby is charismatic, confident, and overwhelmingly popular
on a worldwide level, consistently topping the charts with his
rough-yet-accessible commercially geared sound. Following a series of
mixtapes, his popularity exploded in 2018, the year he released his
first proper album, Harder Than Ever (which included the <a
href="spotify🧑‍🎨3TVXtAsR1Inumwj472S9r4">Drake-featuring hit
"Yes Indeed"), and Drip Harder (a collaborative mixtape with <a
href="spotify🧑‍🎨2hlmm7s2ICUX0LVIhVFlZQ">Gunna), both of
which entered the Top Ten of the Billboard 200. He hit number one in
2020 with his second studio album, My Turn, and again the next year
with The Voice of the Heroes, a collaborative studio effort with <a
href="spotify🧑‍🎨3hcs9uc56yIGFCSy9leWe7">Lil Durk. Lil Baby
made a habit of dominating the charts, debuting in the top spot once
more in 2022 with his third studio album, It's Only Me.\r\n\nLil Baby
was born Dominique Jones in Atlanta in 1994. He grew up hanging with
friends like <a href="spotify🧑‍🎨50co4Is1HCEo8bhOyUWKpn">Young
Thug, Coach K, and Pee, leaning more toward a life of petty crime
and street hustling while his friends went on to thrive in the music
industry. In 2015, at age 19, Lil Baby went to prison for two years
for a probation violation. Upon his release in 2017, he jump-started
his rap career with a mixtape called Perfect Timing, released in April
of that year. The mixtape featured cameos from friends like <a
href="spotify🧑‍🎨6icQOAFXDZKsumw3YXyusw">Lil Yachty, <a
href="spotify🧑‍🎨50co4Is1HCEo8bhOyUWKpn">Young Thug, and <a
href="spotify🧑‍🎨2hlmm7s2ICUX0LVIhVFlZQ">Gunna, and strong
production from <a href="spotify🧑‍🎨0jsba402qO37r9tiffkkUZ">808
Mafia, <a href="spotify🧑‍🎨6IpnhdUI0JNSmk1w5hcBwq">Brickz,
and many others, highlighted by Lil Baby's woozy flows. The mixtape
immediately brought the young rapper fame, in part due to his
affiliations with friends in the <a
href="spotify:search:label%3A%22Quality+Control%22">Quality
Control family of artists as well as the 4 Pockets Full clique.
\r\n\nAs his mixtape attracted more listeners, Lil Baby worked
constantly on new music, releasing singles like "My Dawg" and the <a
href="spotify🧑‍🎨50co4Is1HCEo8bhOyUWKpn">Young Thug
collaboration "Pink Slip" in the summer of 2017. Other releases that
year included Harder Than Hard, 2 the Hard Way (with <a
href="spotify🧑‍🎨2qFmZcrhfzbppEdD6wibAy">Marlo), and Too
Hard. Lil Baby's debut studio album, Harder Than Ever, appeared in May
2018. Featuring guest appearances from <a
href="spotify🧑‍🎨3TVXtAsR1Inumwj472S9r4">Drake, <a
href="spotify🧑‍🎨4DdkRBBYG6Yk9Ka8tdJ9BW">Offset, <a
href="spotify🧑‍🎨4O15NlyKLIASxsJ0PrXPfz">Lil Uzi Vert, and
others, the release entered the Billboard 200 album chart at number
three. The rapper's success continued with Drip Harder, a
collaborative mixtape with <a
href="spotify🧑‍🎨2hlmm7s2ICUX0LVIhVFlZQ">Gunna that was
released that October and reached number four on the Billboard 200.
Yet another mixtape, Street Gossip, appeared in November 2018. 2019
saw Lil Baby starring in the film How High 2 and releasing a handful
of singles including the <a
href="spotify🧑‍🎨1RyvyyTE3xzB2ZywiAwp0i">Future
collaboration "Out the Mud." \r\n\nPreceded by "Woah" and "Sum 2
Prove," his second studio album, My Turn, arrived in February 2020
and went straight to number one. Later that year, Lil Baby issued a
pair of singles, "On Me" and "Errbody." That June, he released
"The Bigger Picture," a protest song responding to police violence
and systemic racism. The track entered the Billboard singles chart at
number three and was nominated for two Grammys: Best Rap Song and Best
Rap Performance. Lil Baby also performed the song live at the Grammy
ceremonies that year. In March 2021, Lil Baby appeared as a featured
artist on <a href="spotify🧑‍🎨3TVXtAsR1Inumwj472S9r4">Drake's
single "Wants and Needs." The song debuted in the number two
position on the Hot 100, making it Lil Baby's highest-charting track
up to that point. In June of that year, Lil Baby teamed up with <a
href="spotify🧑‍🎨3hcs9uc56yIGFCSy9leWe7">Lil Durk for
collaborative album The Voice of the Heroes. The project featured
guest appearances from <a
href="spotify🧑‍🎨45TgXXqMDdF8BkjA83OM7z">Rod Wave, <a
href="spotify🧑‍🎨20sxb77xiYeusSH8cVdatc">Meek Mill, <a
href="spotify🧑‍🎨50co4Is1HCEo8bhOyUWKpn">Young Thug, and <a
href="spotify🧑‍🎨0Y5tJX1MQlPlqiwlOH1tJY">Travis Scott and
debuted at number one. In early 2022, he paired with <a
href="spotify🧑‍🎨0hCNtLu0JehylgoiP8L4Gh">Nicki Minaj for the
singles "Do We Have a Problem?" and "Bussin." Lil Baby returned
with new material of his own in October of 2022 with his third effort
It's Only Me, which included appearances from <a
href="spotify🧑‍🎨0Njy6yR9LykNKYg9yE23QN">Nardo Wick, <a
href="spotify🧑‍🎨50co4Is1HCEo8bhOyUWKpn">Young Thug, <a
href="spotify🧑‍🎨4FlG0V0jhLO4qGpayFOphj">EST Gee, and
several others, and debuted at number one on the Billboard charts. Lil
Baby kicked off 2023 with the booming standalone cut "Go Hard." ~
Fred Thomas","images":[{"id":"ab6772690000c46c8d138294c7bf364566df73b5","uri":"https://i.scdn.co/image/ab6772690000c46c8d138294c7bf364566df73b5","width":1000,"height":1000},{"id":"ab6772690000c46c851e636b224543fe715fa5d6","uri":"https://i.scdn.co/image/ab6772690000c46c851e636b224543fe715fa5d6","width":1000,"height":1000},{"id":"a4841becd710918d16d865ef491c5a8c744909e1","uri":"https://i.scdn.co/image/a4841becd710918d16d865ef491c5a8c744909e1","width":1000,"height":1000},{"id":"ca461d06c1cc5990cfcd38cfbe0b8ee0a6c129f9","uri":"https://i.scdn.co/image/ca461d06c1cc5990cfcd38cfbe0b8ee0a6c129f9","width":1000,"height":1000}],"imagesCount":4,"globalChartPosition":124,"monthlyListeners":31054795,"monthlyListenersDelta":-617970,"followerCount":14472610,"followingCount":0,"playlists":{"entries":[{"uri":"spotify:user:spotify:playlist:37i9dQZF1DX0XUsuxWHRQd","name":"RapCaviar","imageUrl":"https://i.scdn.co/image/ab67706f00000002bb14ca55249220436a5eff27","owner":{"name":"Spotify","uri":"spotify:user:spotify"},"listeners":0},{"uri":"spotify:user:spotify:playlist:37i9dQZF1DWTl4y3vgJOXW","name":"Locked
In","imageUrl":"https://i.scdn.co/image/ab67706f00000002a6329f8bb3d28d5fba3c1ba3","owner":{"name":"Spotify","uri":"spotify:user:spotify"},"listeners":0},{"uri":"spotify:user:spotify:playlist:37i9dQZF1DWY4xHQp97fN6","name":"Get
Turnt","imageUrl":"https://i.scdn.co/image/ab67706f00000002cf3547d303cd78dffb7e33a7","owner":{"name":"Spotify","uri":"spotify:user:spotify"},"listeners":0},{"uri":"spotify:user:spotify:playlist:37i9dQZF1DX7QOv5kjbU68","name":"This
Is Drake","imageUrl":"https://i.scdn.co/image/ab67706f0000000287bff188c40608c48b82068f","owner":{"name":"Spotify","uri":"spotify:user:spotify"},"listeners":0},{"uri":"spotify:user:spotify:playlist:37i9dQZF1DX9oh43oAzkyx","name":"Beast
Mode Hip-Hop","imageUrl":"https://i.scdn.co/image/ab67706f00000002d2d1cbd94520146a3fecc8fd","owner":{"name":"Spotify","uri":"spotify:user:spotify"},"listeners":0},{"uri":"spotify:user:spotify:playlist:37i9dQZF1DX76Wlfdnj7AP","name":"Beast
Mode","imageUrl":"https://i.scdn.co/image/ab67706f00000002c771198277ecd33007dd2de4","owner":{"name":"Spotify","uri":"spotify:user:spotify"},"listeners":0},{"uri":"spotify:user:spotify:playlist:37i9dQZF1DWTyiBJ6yEqeu","name":"Top
Gaming Tracks","imageUrl":"https://i.scdn.co/image/ab67706f00000002f8b3113ff97bf94e7c8f6354","owner":{"name":"Spotify","uri":"spotify:user:spotify"},"listeners":0},{"uri":"spotify:user:spotify:playlist:37i9dQZF1DWZixSclZdoFE","name":"Energy
Booster: Hip-Hop","imageUrl":"https://i.scdn.co/image/ab67706f00000002632d90188a6aa3f43fbbbb91","owner":{"name":"Spotify","uri":"spotify:user:spotify"},"listeners":0},{"uri":"spotify:user:spotify:playlist:37i9dQZF1DWWxPM4nWdhyI","name":"This
Is Ed Sheeran","imageUrl":"https://i.scdn.co/image/ab67706f00000002d7c989820a3155855cc6da87","owner":{"name":"Spotify","uri":"spotify:user:spotify"},"listeners":0},{"uri":"spotify:user:playstation_music:playlist:4R7c9JN6J3jEaqw2sKiAZQ","name":"Street
Fighter 6","imageUrl":"https://i.scdn.co/image/ab67706c0000da84c3cbc4ae0626ccfe912bb663","owner":{"name":"PlayStation®️","uri":"spotify:user:playstation_music"},"listeners":0}]},"cities":[{"country":"US","region":"CA","city":"Los
Angeles","listeners":754834},{"country":"GB","region":"ENG","city":"London","listeners":681729},{"country":"US","region":"IL","city":"Chicago","listeners":649257},{"country":"US","region":"NY","city":"New
York City","listeners":627575},{"country":"US","region":"TX","city":"Dallas","listeners":567428},{"country":"US","region":"GA","city":"Atlanta","listeners":553842},{"country":"CA","region":"ON","city":"Toronto","listeners":506912},{"country":"US","region":"TX","city":"Houston","listeners":468121},{"country":"US","region":"NC","city":"Charlotte","listeners":456881},{"country":"US","region":"MN","city":"Minneapolis","listeners":432101},{"country":"AU","region":"NSW","city":"Sydney","listeners":385972},{"country":"US","region":"OH","city":"Columbus","listeners":339162},{"country":"US","region":"WA","city":"Seattle","listeners":336622},{"country":"US","region":"NY","city":"Brooklyn","listeners":331066},{"country":"US","region":"CO","city":"Denver","listeners":311139},{"country":"AU","region":"VIC","city":"Melbourne","listeners":307266},{"country":"US","region":"FL","city":"Miami","listeners":292885},{"country":"US","region":"AZ","city":"Phoenix","listeners":289898},{"country":"US","region":"PA","city":"Philadelphia","listeners":283972},{"country":"CA","region":"QC","city":"Montreal","listeners":281282},{"country":"US","region":"DC","city":"Washington","listeners":263805},{"country":"US","region":"CA","city":"San
Francisco","listeners":254741},{"country":"NL","region":"NH","city":"Amsterdam","listeners":243402},{"country":"US","region":"TX","city":"San
Antonio","listeners":230723},{"country":"US","region":"IN","city":"Indianapolis","listeners":230280},{"country":"US","region":"CA","city":"Sacramento","listeners":227795},{"country":"US","region":"FL","city":"Orlando","listeners":224264},{"country":"AU","region":"QLD","city":"Brisbane","listeners":214243},{"country":"CA","region":"BC","city":"Vancouver","listeners":210404},{"country":"US","region":"MA","city":"Boston","listeners":208272},{"country":"US","region":"TN","city":"Nashville","listeners":208136},{"country":"US","region":"TX","city":"Austin","listeners":205429},{"country":"US","region":"MI","city":"Detroit","listeners":202675},{"country":"DE","region":"BE","city":"Berlin","listeners":199331},{"country":"US","region":"MD","city":"Baltimore","listeners":195206},{"country":"FR","region":"75","city":"Paris","listeners":191162},{"country":"NL","region":"ZH","city":"Rotterdam","listeners":186859},{"country":"US","region":"FL","city":"Tampa","listeners":183903},{"country":"GB","region":"BIR","city":"Birmingham","listeners":180973},{"country":"CA","region":"AB","city":"Calgary","listeners":180807},{"country":"DE","region":"HH","city":"Hamburg","listeners":172981},{"country":"BR","region":"SP","city":"São
Paulo","listeners":172897},{"country":"GB","region":"WSM","city":"City
of Westminster","listeners":171718},{"country":"US","region":"MO","city":"Kansas
City","listeners":171160},{"country":"US","region":"CA","city":"San
Diego","listeners":169905},{"country":"US","region":"NV","city":"Las
Vegas","listeners":169444},{"country":"DE","region":"HE","city":"Frankfurt
am Main","listeners":159124},{"country":"US","region":"MO","city":"St
Louis","listeners":156548},{"country":"NG","region":"LA","city":"Lagos","listeners":154095},{"country":"CA","region":"ON","city":"Brampton","listeners":153478}]}}

On Sun, Jun 25, 2023 at 8:38 PM Bentley Humphries <
@.***> wrote:

Here's the /playCount endpt object data (partially expanded) as it appears
in the chrome browser, unfortunately I didn't save any of the JSON data for
the endpoints..

▼{success: true, data: {uri: "spotify:album:1ynyQdPQiXdYJNQEDL1S3d", name:
"My Turn",…}}
▼data: {uri: "spotify:album:1ynyQdPQiXdYJNQEDL1S3d", name: "My Turn",…}
►additional: {releases: [{uri: "spotify:album:5UWwSyg5f75ZY87bUje6RA",
name: "My Turn",…}]}
►artists: [{name: "Lil Baby", uri:
"spotify🧑‍🎨5f7VJjfbwm532GiveGC0ZK"}]
►copyrights: ["© ℗ 2020 Quality Control Music, LLC, under exclusive
license to UMG Recordings, Inc."]
►cover: {uri: "
https://i.scdn.co/image/ab67616d00001e02f46a9ad551acbdab8f72fd89"}
day: 28
▼discs: [{number: 1, name: "", tracks: [,…]}]
▼ 0: {number: 1, name: "", tracks: [,-.]}
name: ""
number: 1
▼ tracks: [,...]
▼1: {uri: "spotify:track:20Yz5dzjdTCVjXte9KrJbi", playcount: 37836909,
name: "Get Ugly", popularity: 53,…}
►artists: [{name: "Lil Baby”, uri:
"spotify🧑‍🎨5f7Vljfbwm532GiveGC0ZK",..}]
duration: 155832
explicit: true
name: "Get Ugly"
number: 1
playable: true
playcount: 37836909
popularity: 53
uri: "spotify:track:20Yz5dzjdTCVjXte9Krlbi"
►2:{uri: "spotify:track:7KSSdFCBHCfq4KPzz78ghk", playcount: 165765514,
name: "Heatin Up (feat. Gunna)",…}
►3:{uri: "spotify:track:01JMnRUs2YOK6DDpdQASGY", playcount: 135812509,
name: "Grace (feat. 42 Dugg)",…}

artists
:
[{name: "Lil Baby", uri: "spotify🧑‍🎨5f7VJjfbwm532GiveGC0ZK",…},…]
duration
:
177314
explicit
:
true
name
:
"Heatin Up (feat. Gunna)"
number
:
2
playable
:
true
playcount
:
165765514
popularity
:
70
uri
:
"spotify:track:7KSSdFCBHCfq4KPzz78ghk"

►1: {uri: "spotify:track:7KSSdFCBHCfq4KPzz78ghk",
►3: {uri: "spotify:track:2b7rt5gCEy2p2zTp656s4U",

label: "Quality
month: 2
name: "My Turn"
►related: {releases: [{uri: "spotify:album:0FYvMdfTfYJxnJnKs1wDb0", name:
"It's Only Me",…},…]}
track_count: 20
type: "album"
uri: "spotify:album:lynyQdPQiXdYJNQEDLlS3d"
year: 2020
success: true

On Sun, Jun 25, 2023 at 8:25 PM triph @.***> wrote:

Does anyone have the JSON schema for all the old endpoints (the ones that
this project uses) by any chance? I'm trying to make sp-playcount as
backwards-compatible with this project's endpoints as possible, though
since the old endpoints no longer work, I cannot do that unless someone has
the JSON schema (or at the very least a sample response from each of the
endpoints).


Reply to this email directly, view it on GitHub
https://github.com/entriphy/sp-playcount-librespot/issues/28#issuecomment-1606355940,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AE4Y5PHAHQ5JAIMHNVRJOC3XNDJH5ANCNFSM6AAAAAAZMFYZZE
.
You are receiving this because you commented.Message ID:
@.***>

<!-- gh-comment-id:1606374289 --> @Temoigneur commented on GitHub (Jun 26, 2023): Here's the /artistInsights endpt json, (which you probably already have:) {"success": true, "data": {"artistGid":"ac4d229eb1194eac83fc53e94cb24164","name":"Lil Baby","mainImageUrl":"https://i.scdn.co/image/ab676161000051746cad3eff5adc29e20f189a6c","headerImage":{"id":"ab6761863e04a7eabaeb3b509e2181b5","uri":"https://i.scdn.co/image/ab67618600001016c1fb58154514c4af61de7e4a","width":2660,"height":1140},"autobiography":{"body":"Some artists define a genre, but Lil Baby defines a generation. The GRAMMY Award-winning rapper has smashed records, made history, and impacted the course of modern hip-hop with his instantly identifiable and inimitable style. He has garnered dozens of multi platinum certifications and tens of billions of streams as arguably the biggest new rapper to emerge this decade. Following the success of his platinum full-length debut Harder Than Ever in 2018, he seized #1 on the Billboard Top 200 with 2020’s My Turn, becoming “the year’s #1 selling and #1 streaming album in the US.” At first, it cemented him as “2020’s first and only artist to go double-platinum,” but it has since gone quadruple-platinum and has logged 85 weeks in the top 10 of the Top R&amp;B/Hip-Hop Albums chart – marking the longest top-tier run in the chart’s history. \n \nHe notably tied Prince and Paul McCartney for Billboard Hot 100 hits and Taylor Swift for “most weeks atop the Billboard Top 200 in 2020” with a total of 6. Out of eight nominations, he scored his first GRAMMY® Award in 2022. He teamed up with Lil Durk for The Voice of the Heroes, marking his second #1 debut on the Billboard Top 200. It’s just the beginning though. Most recently, he released “Right On” and “In A Minute” which both songs debuted on Billboard’s Hot 100 chart. This feat puts Lil Baby in rare territory, making him the youngest of only 12 artists to have ever landed 100 or more songs on the Hot 100. \n","links":{"twitter":"https://twitter.com/lilbaby4pf","instagram":"https://instagram.com/lilbaby/"}},"biography":"Atlanta-bred rapper Lil Baby is charismatic, confident, and overwhelmingly popular on a worldwide level, consistently topping the charts with his rough-yet-accessible commercially geared sound. Following a series of mixtapes, his popularity exploded in 2018, the year he released his first proper album, Harder Than Ever (which included the <a href=\"spotify:artist:3TVXtAsR1Inumwj472S9r4\">Drake</a>-featuring hit \"Yes Indeed\"), and Drip Harder (a collaborative mixtape with <a href=\"spotify:artist:2hlmm7s2ICUX0LVIhVFlZQ\">Gunna</a>), both of which entered the Top Ten of the Billboard 200. He hit number one in 2020 with his second studio album, My Turn, and again the next year with The Voice of the Heroes, a collaborative studio effort with <a href=\"spotify:artist:3hcs9uc56yIGFCSy9leWe7\">Lil Durk</a>. Lil Baby made a habit of dominating the charts, debuting in the top spot once more in 2022 with his third studio album, It's Only Me.\r\n\nLil Baby was born Dominique Jones in Atlanta in 1994. He grew up hanging with friends like <a href=\"spotify:artist:50co4Is1HCEo8bhOyUWKpn\">Young Thug</a>, Coach K, and Pee, leaning more toward a life of petty crime and street hustling while his friends went on to thrive in the music industry. In 2015, at age 19, Lil Baby went to prison for two years for a probation violation. Upon his release in 2017, he jump-started his rap career with a mixtape called Perfect Timing, released in April of that year. The mixtape featured cameos from friends like <a href=\"spotify:artist:6icQOAFXDZKsumw3YXyusw\">Lil Yachty</a>, <a href=\"spotify:artist:50co4Is1HCEo8bhOyUWKpn\">Young Thug</a>, and <a href=\"spotify:artist:2hlmm7s2ICUX0LVIhVFlZQ\">Gunna</a>, and strong production from <a href=\"spotify:artist:0jsba402qO37r9tiffkkUZ\">808 Mafia</a>, <a href=\"spotify:artist:6IpnhdUI0JNSmk1w5hcBwq\">Brickz</a>, and many others, highlighted by Lil Baby's woozy flows. The mixtape immediately brought the young rapper fame, in part due to his affiliations with friends in the <a href=\"spotify:search:label%3A%22Quality+Control%22\">Quality Control</a> family of artists as well as the 4 Pockets Full clique. \r\n\nAs his mixtape attracted more listeners, Lil Baby worked constantly on new music, releasing singles like \"My Dawg\" and the <a href=\"spotify:artist:50co4Is1HCEo8bhOyUWKpn\">Young Thug</a> collaboration \"Pink Slip\" in the summer of 2017. Other releases that year included Harder Than Hard, 2 the Hard Way (with <a href=\"spotify:artist:2qFmZcrhfzbppEdD6wibAy\">Marlo</a>), and Too Hard. Lil Baby's debut studio album, Harder Than Ever, appeared in May 2018. Featuring guest appearances from <a href=\"spotify:artist:3TVXtAsR1Inumwj472S9r4\">Drake</a>, <a href=\"spotify:artist:4DdkRBBYG6Yk9Ka8tdJ9BW\">Offset</a>, <a href=\"spotify:artist:4O15NlyKLIASxsJ0PrXPfz\">Lil Uzi Vert</a>, and others, the release entered the Billboard 200 album chart at number three. The rapper's success continued with Drip Harder, a collaborative mixtape with <a href=\"spotify:artist:2hlmm7s2ICUX0LVIhVFlZQ\">Gunna</a> that was released that October and reached number four on the Billboard 200. Yet another mixtape, Street Gossip, appeared in November 2018. 2019 saw Lil Baby starring in the film How High 2 and releasing a handful of singles including the <a href=\"spotify:artist:1RyvyyTE3xzB2ZywiAwp0i\">Future</a> collaboration \"Out the Mud.\" \r\n\nPreceded by \"Woah\" and \"Sum 2 Prove,\" his second studio album, My Turn, arrived in February 2020 and went straight to number one. Later that year, Lil Baby issued a pair of singles, \"On Me\" and \"Errbody.\" That June, he released \"The Bigger Picture,\" a protest song responding to police violence and systemic racism. The track entered the Billboard singles chart at number three and was nominated for two Grammys: Best Rap Song and Best Rap Performance. Lil Baby also performed the song live at the Grammy ceremonies that year. In March 2021, Lil Baby appeared as a featured artist on <a href=\"spotify:artist:3TVXtAsR1Inumwj472S9r4\">Drake</a>'s single \"Wants and Needs.\" The song debuted in the number two position on the Hot 100, making it Lil Baby's highest-charting track up to that point. In June of that year, Lil Baby teamed up with <a href=\"spotify:artist:3hcs9uc56yIGFCSy9leWe7\">Lil Durk</a> for collaborative album The Voice of the Heroes. The project featured guest appearances from <a href=\"spotify:artist:45TgXXqMDdF8BkjA83OM7z\">Rod Wave</a>, <a href=\"spotify:artist:20sxb77xiYeusSH8cVdatc\">Meek Mill</a>, <a href=\"spotify:artist:50co4Is1HCEo8bhOyUWKpn\">Young Thug</a>, and <a href=\"spotify:artist:0Y5tJX1MQlPlqiwlOH1tJY\">Travis Scott</a> and debuted at number one. In early 2022, he paired with <a href=\"spotify:artist:0hCNtLu0JehylgoiP8L4Gh\">Nicki Minaj</a> for the singles \"Do We Have a Problem?\" and \"Bussin.\" Lil Baby returned with new material of his own in October of 2022 with his third effort It's Only Me, which included appearances from <a href=\"spotify:artist:0Njy6yR9LykNKYg9yE23QN\">Nardo Wick</a>, <a href=\"spotify:artist:50co4Is1HCEo8bhOyUWKpn\">Young Thug</a>, <a href=\"spotify:artist:4FlG0V0jhLO4qGpayFOphj\">EST Gee</a>, and several others, and debuted at number one on the Billboard charts. Lil Baby kicked off 2023 with the booming standalone cut \"Go Hard.\" ~ Fred Thomas","images":[{"id":"ab6772690000c46c8d138294c7bf364566df73b5","uri":"https://i.scdn.co/image/ab6772690000c46c8d138294c7bf364566df73b5","width":1000,"height":1000},{"id":"ab6772690000c46c851e636b224543fe715fa5d6","uri":"https://i.scdn.co/image/ab6772690000c46c851e636b224543fe715fa5d6","width":1000,"height":1000},{"id":"a4841becd710918d16d865ef491c5a8c744909e1","uri":"https://i.scdn.co/image/a4841becd710918d16d865ef491c5a8c744909e1","width":1000,"height":1000},{"id":"ca461d06c1cc5990cfcd38cfbe0b8ee0a6c129f9","uri":"https://i.scdn.co/image/ca461d06c1cc5990cfcd38cfbe0b8ee0a6c129f9","width":1000,"height":1000}],"imagesCount":4,"globalChartPosition":124,"monthlyListeners":31054795,"monthlyListenersDelta":-617970,"followerCount":14472610,"followingCount":0,"playlists":{"entries":[{"uri":"spotify:user:spotify:playlist:37i9dQZF1DX0XUsuxWHRQd","name":"RapCaviar","imageUrl":"https://i.scdn.co/image/ab67706f00000002bb14ca55249220436a5eff27","owner":{"name":"Spotify","uri":"spotify:user:spotify"},"listeners":0},{"uri":"spotify:user:spotify:playlist:37i9dQZF1DWTl4y3vgJOXW","name":"Locked In","imageUrl":"https://i.scdn.co/image/ab67706f00000002a6329f8bb3d28d5fba3c1ba3","owner":{"name":"Spotify","uri":"spotify:user:spotify"},"listeners":0},{"uri":"spotify:user:spotify:playlist:37i9dQZF1DWY4xHQp97fN6","name":"Get Turnt","imageUrl":"https://i.scdn.co/image/ab67706f00000002cf3547d303cd78dffb7e33a7","owner":{"name":"Spotify","uri":"spotify:user:spotify"},"listeners":0},{"uri":"spotify:user:spotify:playlist:37i9dQZF1DX7QOv5kjbU68","name":"This Is Drake","imageUrl":"https://i.scdn.co/image/ab67706f0000000287bff188c40608c48b82068f","owner":{"name":"Spotify","uri":"spotify:user:spotify"},"listeners":0},{"uri":"spotify:user:spotify:playlist:37i9dQZF1DX9oh43oAzkyx","name":"Beast Mode Hip-Hop","imageUrl":"https://i.scdn.co/image/ab67706f00000002d2d1cbd94520146a3fecc8fd","owner":{"name":"Spotify","uri":"spotify:user:spotify"},"listeners":0},{"uri":"spotify:user:spotify:playlist:37i9dQZF1DX76Wlfdnj7AP","name":"Beast Mode","imageUrl":"https://i.scdn.co/image/ab67706f00000002c771198277ecd33007dd2de4","owner":{"name":"Spotify","uri":"spotify:user:spotify"},"listeners":0},{"uri":"spotify:user:spotify:playlist:37i9dQZF1DWTyiBJ6yEqeu","name":"Top Gaming Tracks","imageUrl":"https://i.scdn.co/image/ab67706f00000002f8b3113ff97bf94e7c8f6354","owner":{"name":"Spotify","uri":"spotify:user:spotify"},"listeners":0},{"uri":"spotify:user:spotify:playlist:37i9dQZF1DWZixSclZdoFE","name":"Energy Booster: Hip-Hop","imageUrl":"https://i.scdn.co/image/ab67706f00000002632d90188a6aa3f43fbbbb91","owner":{"name":"Spotify","uri":"spotify:user:spotify"},"listeners":0},{"uri":"spotify:user:spotify:playlist:37i9dQZF1DWWxPM4nWdhyI","name":"This Is Ed Sheeran","imageUrl":"https://i.scdn.co/image/ab67706f00000002d7c989820a3155855cc6da87","owner":{"name":"Spotify","uri":"spotify:user:spotify"},"listeners":0},{"uri":"spotify:user:playstation_music:playlist:4R7c9JN6J3jEaqw2sKiAZQ","name":"Street Fighter 6","imageUrl":"https://i.scdn.co/image/ab67706c0000da84c3cbc4ae0626ccfe912bb663","owner":{"name":"PlayStation®️","uri":"spotify:user:playstation_music"},"listeners":0}]},"cities":[{"country":"US","region":"CA","city":"Los Angeles","listeners":754834},{"country":"GB","region":"ENG","city":"London","listeners":681729},{"country":"US","region":"IL","city":"Chicago","listeners":649257},{"country":"US","region":"NY","city":"New York City","listeners":627575},{"country":"US","region":"TX","city":"Dallas","listeners":567428},{"country":"US","region":"GA","city":"Atlanta","listeners":553842},{"country":"CA","region":"ON","city":"Toronto","listeners":506912},{"country":"US","region":"TX","city":"Houston","listeners":468121},{"country":"US","region":"NC","city":"Charlotte","listeners":456881},{"country":"US","region":"MN","city":"Minneapolis","listeners":432101},{"country":"AU","region":"NSW","city":"Sydney","listeners":385972},{"country":"US","region":"OH","city":"Columbus","listeners":339162},{"country":"US","region":"WA","city":"Seattle","listeners":336622},{"country":"US","region":"NY","city":"Brooklyn","listeners":331066},{"country":"US","region":"CO","city":"Denver","listeners":311139},{"country":"AU","region":"VIC","city":"Melbourne","listeners":307266},{"country":"US","region":"FL","city":"Miami","listeners":292885},{"country":"US","region":"AZ","city":"Phoenix","listeners":289898},{"country":"US","region":"PA","city":"Philadelphia","listeners":283972},{"country":"CA","region":"QC","city":"Montreal","listeners":281282},{"country":"US","region":"DC","city":"Washington","listeners":263805},{"country":"US","region":"CA","city":"San Francisco","listeners":254741},{"country":"NL","region":"NH","city":"Amsterdam","listeners":243402},{"country":"US","region":"TX","city":"San Antonio","listeners":230723},{"country":"US","region":"IN","city":"Indianapolis","listeners":230280},{"country":"US","region":"CA","city":"Sacramento","listeners":227795},{"country":"US","region":"FL","city":"Orlando","listeners":224264},{"country":"AU","region":"QLD","city":"Brisbane","listeners":214243},{"country":"CA","region":"BC","city":"Vancouver","listeners":210404},{"country":"US","region":"MA","city":"Boston","listeners":208272},{"country":"US","region":"TN","city":"Nashville","listeners":208136},{"country":"US","region":"TX","city":"Austin","listeners":205429},{"country":"US","region":"MI","city":"Detroit","listeners":202675},{"country":"DE","region":"BE","city":"Berlin","listeners":199331},{"country":"US","region":"MD","city":"Baltimore","listeners":195206},{"country":"FR","region":"75","city":"Paris","listeners":191162},{"country":"NL","region":"ZH","city":"Rotterdam","listeners":186859},{"country":"US","region":"FL","city":"Tampa","listeners":183903},{"country":"GB","region":"BIR","city":"Birmingham","listeners":180973},{"country":"CA","region":"AB","city":"Calgary","listeners":180807},{"country":"DE","region":"HH","city":"Hamburg","listeners":172981},{"country":"BR","region":"SP","city":"São Paulo","listeners":172897},{"country":"GB","region":"WSM","city":"City of Westminster","listeners":171718},{"country":"US","region":"MO","city":"Kansas City","listeners":171160},{"country":"US","region":"CA","city":"San Diego","listeners":169905},{"country":"US","region":"NV","city":"Las Vegas","listeners":169444},{"country":"DE","region":"HE","city":"Frankfurt am Main","listeners":159124},{"country":"US","region":"MO","city":"St Louis","listeners":156548},{"country":"NG","region":"LA","city":"Lagos","listeners":154095},{"country":"CA","region":"ON","city":"Brampton","listeners":153478}]}} On Sun, Jun 25, 2023 at 8:38 PM Bentley Humphries < ***@***.***> wrote: > Here's the /playCount endpt object data (partially expanded) as it appears > in the chrome browser, unfortunately I didn't save any of the JSON data for > the endpoints.. > > ▼{success: true, data: {uri: "spotify:album:1ynyQdPQiXdYJNQEDL1S3d", name: > "My Turn",…}} > ▼data: {uri: "spotify:album:1ynyQdPQiXdYJNQEDL1S3d", name: "My Turn",…} > ►additional: {releases: [{uri: "spotify:album:5UWwSyg5f75ZY87bUje6RA", > name: "My Turn",…}]} > ►artists: [{name: "Lil Baby", uri: > "spotify:artist:5f7VJjfbwm532GiveGC0ZK"}] > ►copyrights: ["© ℗ 2020 Quality Control Music, LLC, under exclusive > license to UMG Recordings, Inc."] > ►cover: {uri: " > https://i.scdn.co/image/ab67616d00001e02f46a9ad551acbdab8f72fd89"} > day: 28 > ▼discs: [{number: 1, name: "", tracks: [,…]}] > ▼ 0: {number: 1, name: "", tracks: [,-.]} > name: "" > number: 1 > ▼ tracks: [,...] > ▼1: {uri: "spotify:track:20Yz5dzjdTCVjXte9KrJbi", playcount: 37836909, > name: "Get Ugly", popularity: 53,…} > ►artists: [{name: "Lil Baby”, uri: > "spotify:artist:5f7Vljfbwm532GiveGC0ZK",..}] > duration: 155832 > explicit: true > name: "Get Ugly" > number: 1 > playable: true > playcount: 37836909 > popularity: 53 > uri: "spotify:track:20Yz5dzjdTCVjXte9Krlbi" > ►2:{uri: "spotify:track:7KSSdFCBHCfq4KPzz78ghk", playcount: 165765514, > name: "Heatin Up (feat. Gunna)",…} > ►3:{uri: "spotify:track:01JMnRUs2YOK6DDpdQASGY", playcount: 135812509, > name: "Grace (feat. 42 Dugg)",…} > > > artists > : > [{name: "Lil Baby", uri: "spotify:artist:5f7VJjfbwm532GiveGC0ZK",…},…] > duration > : > 177314 > explicit > : > true > name > : > "Heatin Up (feat. Gunna)" > number > : > 2 > playable > : > true > playcount > : > 165765514 > popularity > : > 70 > uri > : > "spotify:track:7KSSdFCBHCfq4KPzz78ghk" > > ►1: {uri: "spotify:track:7KSSdFCBHCfq4KPzz78ghk", > ►3: {uri: "spotify:track:2b7rt5gCEy2p2zTp656s4U", > > label: "Quality > month: 2 > name: "My Turn" > ►related: {releases: [{uri: "spotify:album:0FYvMdfTfYJxnJnKs1wDb0", name: > "It's Only Me",…},…]} > track_count: 20 > type: "album" > uri: "spotify:album:lynyQdPQiXdYJNQEDLlS3d" > year: 2020 > success: true > > On Sun, Jun 25, 2023 at 8:25 PM triph ***@***.***> wrote: > >> Does anyone have the JSON schema for all the old endpoints (the ones that >> this project uses) by any chance? I'm trying to make sp-playcount as >> backwards-compatible with this project's endpoints as possible, though >> since the old endpoints no longer work, I cannot do that unless someone has >> the JSON schema (or at the very least a sample response from each of the >> endpoints). >> >> — >> Reply to this email directly, view it on GitHub >> <https://github.com/entriphy/sp-playcount-librespot/issues/28#issuecomment-1606355940>, >> or unsubscribe >> <https://github.com/notifications/unsubscribe-auth/AE4Y5PHAHQ5JAIMHNVRJOC3XNDJH5ANCNFSM6AAAAAAZMFYZZE> >> . >> You are receiving this because you commented.Message ID: >> ***@***.***> >> >
Author
Owner

@jpgrovy commented on GitHub (Jun 26, 2023):

Does anyone have the JSON schema for all the old endpoints (the ones that this project uses) by any chance? I'm trying to make sp-playcount as backwards-compatible with this project's endpoints as possible, though since the old endpoints no longer work, I cannot do that unless someone has the JSON schema (or at the very least a sample response from each of the endpoints).

I have the entire schema of all the old endpoints. Do you have an email I can send to. The version I have is quite a large response.

<!-- gh-comment-id:1606538412 --> @jpgrovy commented on GitHub (Jun 26, 2023): > Does anyone have the JSON schema for all the old endpoints (the ones that this project uses) by any chance? I'm trying to make sp-playcount as backwards-compatible with this project's endpoints as possible, though since the old endpoints no longer work, I cannot do that unless someone has the JSON schema (or at the very least a sample response from each of the endpoints). I have the entire schema of all the old endpoints. Do you have an email I can send to. The version I have is quite a large response.
Author
Owner

@SatyF commented on GitHub (Jun 27, 2023):

@jpgrovy Yes but it's paged, which is really annoying. It's

https://api-partner.spotify.com/pathfinder/v1/query?operationName=queryArtistDiscographyAll&variables={"uri":"spotify:artist:{id}","offset":0,"limit":100}&extensions={"persistedQuery":{"version":1,"sha256Hash":"35a699e12a728c1a02f5bf67121a50f87341e65054e13126c03b7697fbd26692"}}

Is there are description / sample available for this endpoint?

<!-- gh-comment-id:1608977081 --> @SatyF commented on GitHub (Jun 27, 2023): > @jpgrovy Yes but it's paged, which is really annoying. It's > > > > > `https://api-partner.spotify.com/pathfinder/v1/query?operationName=queryArtistDiscographyAll&variables={"uri":"spotify:artist:{id}","offset":0,"limit":100}&extensions={"persistedQuery":{"version":1,"sha256Hash":"35a699e12a728c1a02f5bf67121a50f87341e65054e13126c03b7697fbd26692"}}` Is there are description / sample available for this endpoint?
Author
Owner

@entriphy commented on GitHub (Jun 28, 2023):

I have the entire schema of all the old endpoints. Do you have an email I can send to. The version I have is quite a large response.

A GitHub Gist or Pastebin/Hastebin snippet should be fine :)

<!-- gh-comment-id:1610795937 --> @entriphy commented on GitHub (Jun 28, 2023): > I have the entire schema of all the old endpoints. Do you have an email I can send to. The version I have is quite a large response. A GitHub Gist or Pastebin/Hastebin snippet should be fine :)
Author
Owner

@jpgrovy commented on GitHub (Jul 5, 2023):

queryArtistOverview seems to be the only endpoint for retrieving artist data, which does include the top 5 cities.

I'm currently testing sp-playcount on api.t4ils.dev: https://api.t4ils.dev/getArtist?id=1g8HCTiMwBtFtpRR9JXAZR (uses queryArtistOverview) https://api.t4ils.dev/getAlbum?id=5K4YFkTizFoMOyN5Khfp7G (uses getAlbum) https://api.t4ils.dev/getAlbumTracks?id=5K4YFkTizFoMOyN5Khfp7G (uses queryAlbumTracks)

How can we install this version on our own heroku, etc ?

Is there any way you can add the playcounts to the entire discography inside the getArtist call?

<!-- gh-comment-id:1620879679 --> @jpgrovy commented on GitHub (Jul 5, 2023): > `queryArtistOverview` seems to be the only endpoint for retrieving artist data, which does include the top 5 cities. > > I'm currently testing [sp-playcount](https://github.com/entriphy/sp-playcount) on api.t4ils.dev: https://api.t4ils.dev/getArtist?id=1g8HCTiMwBtFtpRR9JXAZR (uses `queryArtistOverview`) https://api.t4ils.dev/getAlbum?id=5K4YFkTizFoMOyN5Khfp7G (uses `getAlbum`) https://api.t4ils.dev/getAlbumTracks?id=5K4YFkTizFoMOyN5Khfp7G (uses `queryAlbumTracks`) How can we install this version on our own heroku, etc ? Is there any way you can add the playcounts to the entire discography inside the getArtist call?
Author
Owner

@jpgrovy commented on GitHub (Jul 12, 2023):

queryArtistOverview seems to be the only endpoint for retrieving artist data, which does include the top 5 cities.

I'm currently testing sp-playcount on api.t4ils.dev: https://api.t4ils.dev/getArtist?id=1g8HCTiMwBtFtpRR9JXAZR (uses queryArtistOverview) https://api.t4ils.dev/getAlbum?id=5K4YFkTizFoMOyN5Khfp7G (uses getAlbum) https://api.t4ils.dev/getAlbumTracks?id=5K4YFkTizFoMOyN5Khfp7G (uses queryAlbumTracks)

Your links don’t work. How can we install this ourselves ?

<!-- gh-comment-id:1631681274 --> @jpgrovy commented on GitHub (Jul 12, 2023): > `queryArtistOverview` seems to be the only endpoint for retrieving artist data, which does include the top 5 cities. > > I'm currently testing [sp-playcount](https://github.com/entriphy/sp-playcount) on api.t4ils.dev: https://api.t4ils.dev/getArtist?id=1g8HCTiMwBtFtpRR9JXAZR (uses `queryArtistOverview`) https://api.t4ils.dev/getAlbum?id=5K4YFkTizFoMOyN5Khfp7G (uses `getAlbum`) https://api.t4ils.dev/getAlbumTracks?id=5K4YFkTizFoMOyN5Khfp7G (uses `queryAlbumTracks`) Your links don’t work. How can we install this ourselves ?
Author
Owner

@jpgrovy commented on GitHub (Jul 15, 2023):

@entriphy What does it mean when is fails and says session is closed?

<!-- gh-comment-id:1636659551 --> @jpgrovy commented on GitHub (Jul 15, 2023): @entriphy What does it mean when is fails and says session is closed?
Author
Owner

@Temoigneur commented on GitHub (Aug 12, 2023):

Ahhhh.. your /getalbum endpt @ https://api.t4ils.dev/getAlbum?id= was working for weeks, now it's giving: {"success": false, "data": "Error while querying: Session is closed"} - will it be back up again?

<!-- gh-comment-id:1676041218 --> @Temoigneur commented on GitHub (Aug 12, 2023): Ahhhh.. your /getalbum endpt @ https://api.t4ils.dev/getAlbum?id= was working for weeks, now it's giving: {"success": false, "data": "Error while querying: Session is closed"} - will it be back up again?
Author
Owner

@katelynjean123 commented on GitHub (Aug 13, 2023):

Ahhhh.. your /getalbum endpt @ https://api.t4ils.dev/getAlbum?id= was working for weeks, now it's giving: {"success": false, "data": "Error while querying: Session is closed"} - will it be back up again?

also having this issue! it works some days and others it gives me this error code. Would love a fix :)

<!-- gh-comment-id:1676283251 --> @katelynjean123 commented on GitHub (Aug 13, 2023): > Ahhhh.. your /getalbum endpt @ https://api.t4ils.dev/getAlbum?id= was working for weeks, now it's giving: {"success": false, "data": "Error while querying: Session is closed"} - will it be back up again? also having this issue! it works some days and others it gives me this error code. Would love a fix :)
Author
Owner

@rishabhbizzle commented on GitHub (Aug 21, 2023):

Ahhhh.. your /getalbum endpt @ https://api.t4ils.dev/getAlbum?id= was working for weeks, now it's giving: {"success": false, "data": "Error while querying: Session is closed"} - will it be back up again?

The endpoint were working fine yesterday but today I'm also having this same issue :(
@entriphy have you figured out this issue ??

<!-- gh-comment-id:1686878740 --> @rishabhbizzle commented on GitHub (Aug 21, 2023): > Ahhhh.. your /getalbum endpt @ https://api.t4ils.dev/getAlbum?id= was working for weeks, now it's giving: {"success": false, "data": "Error while querying: Session is closed"} - will it be back up again? The endpoint were working fine yesterday but today I'm also having this same issue :( @entriphy have you figured out this issue ??
Author
Owner

@Rchrdlss3 commented on GitHub (Aug 24, 2023):

https://api-partner.spotify.com/pathfinder/v1/query?operationName=queryArtistDiscographyAll&variables=

Was working for me fine perfectly this week, just ran into this issue this morning also

<!-- gh-comment-id:1692171062 --> @Rchrdlss3 commented on GitHub (Aug 24, 2023): > https://api-partner.spotify.com/pathfinder/v1/query?operationName=queryArtistDiscographyAll&variables= Was working for me fine perfectly this week, just ran into this issue this morning also
Author
Owner

@jpgrovy commented on GitHub (Oct 11, 2023):

Did they just cut off the top 50 cities now for the insights endpoint? The https://api.t4ils.dev test endpoint here is connecting but only top 5 cities is showing.

I had my own hosted version of this script and as of today it's giving "Bad Credentials" errors

Any one else have any experiences to report as of today ?

<!-- gh-comment-id:1756704977 --> @jpgrovy commented on GitHub (Oct 11, 2023): Did they just cut off the top 50 cities now for the insights endpoint? The https://api.t4ils.dev test endpoint here is connecting but only top 5 cities is showing. I had my own hosted version of this script and as of today it's giving "Bad Credentials" errors Any one else have any experiences to report as of today ?
Author
Owner

@vitorbaptista commented on GitHub (Oct 20, 2023):

@entriphy Here are a sample of the results of all endpoints (they're about 3 years old): https://gist.github.com/vitorbaptista/577934720a554dd271ce5e2a92948174

Do you think it will be possible to update this project, or has Spotify effectively killed it?

<!-- gh-comment-id:1773308331 --> @vitorbaptista commented on GitHub (Oct 20, 2023): @entriphy Here are a sample of the results of all endpoints (they're about 3 years old): https://gist.github.com/vitorbaptista/577934720a554dd271ce5e2a92948174 Do you think it will be possible to update this project, or has Spotify effectively killed it?
Author
Owner

@surfmore commented on GitHub (Oct 20, 2023):

Yes. I am really interested to know if this will be updated. Thanks.

On Fri, Oct 20, 2023, 16:45 Vitor Baptista @.***> wrote:

@entriphy https://github.com/entriphy Here are a sample of the results
of all endpoints:
https://gist.github.com/vitorbaptista/577934720a554dd271ce5e2a92948174

Do you think it will be possible to update this project, or has Spotify
effectively killed it?


Reply to this email directly, view it on GitHub
https://github.com/entriphy/sp-playcount-librespot/issues/28#issuecomment-1773308331,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB5QR6TN5JVUDYJO5WUJ7STYALIG3AVCNFSM6AAAAAAZMFYZZGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONZTGMYDQMZTGE
.
You are receiving this because you commented.Message ID:
@.***>

<!-- gh-comment-id:1773316961 --> @surfmore commented on GitHub (Oct 20, 2023): Yes. I am really interested to know if this will be updated. Thanks. On Fri, Oct 20, 2023, 16:45 Vitor Baptista ***@***.***> wrote: > @entriphy <https://github.com/entriphy> Here are a sample of the results > of all endpoints: > https://gist.github.com/vitorbaptista/577934720a554dd271ce5e2a92948174 > > Do you think it will be possible to update this project, or has Spotify > effectively killed it? > > — > Reply to this email directly, view it on GitHub > <https://github.com/entriphy/sp-playcount-librespot/issues/28#issuecomment-1773308331>, > or unsubscribe > <https://github.com/notifications/unsubscribe-auth/AB5QR6TN5JVUDYJO5WUJ7STYALIG3AVCNFSM6AAAAAAZMFYZZGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONZTGMYDQMZTGE> > . > You are receiving this because you commented.Message ID: > ***@***.***> >
Author
Owner

@caiocinel commented on GitHub (Nov 23, 2023):

I didn't find anything like I needed, so I made a prototype to get this information, if it's useful to anyone: https://github.com/caiocinel/SpotifyPrivateAPI

<!-- gh-comment-id:1824982032 --> @caiocinel commented on GitHub (Nov 23, 2023): I didn't find anything like I needed, so I made a prototype to get this information, if it's useful to anyone: https://github.com/caiocinel/SpotifyPrivateAPI
Author
Owner

@vitorbaptista commented on GitHub (Jun 18, 2024):

@entriphy Sorry for the interruption, but I'm trying to understand how your hosted page still has access to the playcount API, like https://api.t4ils.dev/albumPlayCount?albumid=32tRzmHVO5OxNv7IK36x24.

If I run this locally, I get the error 502. I tried creating a new Spotify account, in case it was because my account wasn't created in my country, but am still having the same error.

Are you running the same code from this repository?

<!-- gh-comment-id:2176992859 --> @vitorbaptista commented on GitHub (Jun 18, 2024): @entriphy Sorry for the interruption, but I'm trying to understand how your hosted page still has access to the playcount API, like https://api.t4ils.dev/albumPlayCount?albumid=32tRzmHVO5OxNv7IK36x24. If I run this locally, I get the error 502. I tried creating a new Spotify account, in case it was because my account wasn't created in my country, but am still having the same error. Are you running the same code from this repository?
Author
Owner

@jpgrovy commented on GitHub (Jun 18, 2024):

It works because the album endpoint still works. Works for me too. It's only the artist endpoint that is broken.

<!-- gh-comment-id:2177018629 --> @jpgrovy commented on GitHub (Jun 18, 2024): It works because the album endpoint still works. Works for me too. It's only the artist endpoint that is broken.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/sp-playcount-librespot#27
No description provided.