Comments (13)
Basically I introduced tokens in gplaycli to have an outofbox working apk downloader. Moreover, it was designed to be shipped in Debian, and providing default login and password was something unwanted. Also, having an unique instance providing tokens can handle the privacy issue: as far as you use proxy or Tor, Google cannot know who you are.
from googleplay-api.
Very interested to see @NoMore201's comments on reusing GSFIDs without duplicating them every time the API runs.
from googleplay-api.
GSFIDs are reused in gplaycli until they expire.
I don't think it's the job of this api to check for token validity as it should remain simple.
from googleplay-api.
@matlink you are only storing one gsfid in your token cache file. I don't understand how your code allows for multiple gsfids for a single google account.
Also, I agree the API should remain simple, but it currently already grabs tokens. It already has this functionality right now.
from googleplay-api.
Why would need you multiple gsfid for one account ?
from googleplay-api.
When you want to download multiple APKs for different devices?
from googleplay-api.
-
There are multi-APKs with different DPIs, architectures, and minAPIs. Here's YouTube with 40 variants https://www.apkmirror.com/apk/google-inc/youtube/youtube-13-03-58-release/.
-
APK device compatibility could very widely. Some APKs can only be downloaded by specific makers (Samsung apps by Samsung devices, HTC by HTC, etc), some are Android TV-only, some are Android Wear only, etc.
There are many reasons to use multiple profiles and GSF IDs, and it seems gpapi already realized this because https://github.com/NoMore201/googleplay-api/blob/e05d126f6b61942cedc8003c9dcd154569bfc0f2/gpapi/device.properties contains many different profiles.
from googleplay-api.
If I remember well, GSF ID is not bound to a specific device. So you can use the same GSF ID to download different apk for different devices.
from googleplay-api.
That is something I'd like to know for sure. Can you or anyone confirm this?
from googleplay-api.
I've never heard this - GSF ID has always been specific to a registered device under a certain account. You then use the GSF ID to download an app, and it's what tells Google Play what device is downloading.
For example, DummyDroid http://www.onyxbits.de/dummydroid registers a device and gives you a GSF ID you can then use.
Various GSF ID apps on the Play Store show you GSF IDs, which vary with devices under your account https://play.google.com/store/search?q=gsf%20id&c=apps. Device A will show a different GSF ID from device B.
How else would you tell the Google Play API what device is trying to download a given APK? As far as I know, GSF ID is basically a device identifier.
from googleplay-api.
In the request User-Agent there is a 'device=' argument to specify the device making the request.
from googleplay-api.
@matlink Yes, that's indeed used by Google API as well, but it's nowhere near enough for the real full compatibility. It also looks at features, libraries, arch, DPI information, and other things that were used to create the GSF ID to see if it should serve you a given APK or not. The user agent alone, while important, is only a small piece of the puzzle.
from googleplay-api.
I've made a pull request with token reuse capability but I'm not sure either my request will be merged or not as I'm basically a PHP developer with limited Python understanding. BTW if someone still needs this feature, then here is my fork: https://github.com/rehmatworks/googleplay-api
Use do_login()
method instead login()
to create (a device-specific) cache of gsfid and token and reuse it if valid.
from googleplay-api.
Related Issues (20)
- num_of_results is not coming more than 7 when listing category apps HOT 6
- How do we get country specific top categories app?
- Download Support for Region Restricted apps HOT 6
- Voting applications HOT 1
- Security check is needed DisplayUnlockCaptcha HOT 18
- constant 'BadAuthentication' HOT 20
- Bad Authentication Error HOT 10
- Download old app versions HOT 1
- Bad Authentication Error HOT 1
- Add Review\feedback HOT 1
- Help in Covering more PlayStore endpoints (adding features/functionality) HOT 2
- Error retrieving information from server. DF-DFERH-01
- Cannot download free app that is not purchased HOT 2
- Help me! HOT 2
- Adding new devices HOT 2
- Cannot download
- URGENT!!! after more than a year started getting bad authentication HOT 8
- HELP, how to see if an app is TV compatible? HOT 2
- List constantly returns Error retrieving information from server. DF-DFERH-01 HOT 1
- gpapi.googleplay.LoginError: 'server says: BadAuthentication' HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from googleplay-api.