rehmatworks / gplaydl Goto Github PK
View Code? Open in Web Editor NEWCommand Line Google Play APK downloader. Download APK files to your PC directly from Google Play Store.
License: MIT License
Command Line Google Play APK downloader. Download APK files to your PC directly from Google Play Store.
License: MIT License
First, i want to thank you for your amazing work.
This tool going to save me a lot of time
I would like to ask an option to give it alternate device.properties
file using the cli
Thanks!
Hi,
While trying to download the apk for the following bundle
https://play.google.com/store/apps/details?id=ru.skillcap.dominoes
I always get the error that the item wasn't found. i can tell for sure that i've tried several --devices and used VPNs and still no luck.
Any idea how to better understand the issue?
Respected author, please add a license! I suggest MIT License
OK, so for starters, i'm pretty sure I have over 100 paid apps, and I don't have time to try to download them all with gplaydl. So far i've tried a handful, and the error I get every time is:
Attempting to download
Download failed: "Can't install, please try again later".
That is pretty much how it looks on my screen. It's not a network issue on my end, mobile data/WiFi are reliable for me. Furthermore, I've tried with free apps, they download fine. But it seems that as soon as I try to download an app I've bought, I get the above message.
I can download my paid apps from Play Store just fine too, but it oftentimes sends me pesky split APKs, which I don't want.
When entering the commands, I'm not using any advanced switches like changing device, excluding split APKs, or excluding obb expansion files.
The example paid game I'd like to download has the package name:
kemco.hitpoint.armdgolempremium (Premium RPG Armed Emeth is the app's published name). I just bought this game yesterday afternoon.
Currently using this tool require to supply email&password for google account, this issue is about avoiding it by supporting Anonymous mode that use shared account, see for example other projects that implement this:
gplaycli: https://github.com/matlink/gplaycli
By default, gplaycli fetches a token from a token dispenser server located at https://matlink.fr/token/ to login in Google Play.
AuroraStore app: https://gitlab.com/AuroraOSS/AuroraStore
Anonymous accounts — You can log in and download with anonymous accounts so you don't have to use your own account
YalpStore app: https://github.com/yeriomin/YalpStore
By default Yalp Store connects to Google services using a built-in account, so you do not have to own a Google account to use it
Hi
When I want to use gplaydl configure
command to configure initial setup, this error has been show to me:
'server says: BadAuthentication'
I use app password for Gmail and I'm pretty sure I typed it correctly!
First, thank you for your amazing project!
I have a given device, And i want to create device.properties entry for it.
What is the most simple way to do so?
Is there any script that can do that?
Thanks!
I tried to download, but I get "Download failed. gplaydl cannot download some apps that are paid or incompatible." error.
Any solution?
Thanks,
It would be great to be able to use gplaydl without a google account, which can be achieved by using a token dispenser server. An example of this is matlink/gplaycli, which is also written in Python.
With main apk also downloaded apk configs, for example config.arm64_8a.apk
, config.xxxhdpi.apk
and etc.
It's possible skiped on gplaydl?
D:\Downloader APK\gplaydl>pip install --upgrade --force-reinstall gplaydl==1.3.5
Collecting gplaydl==1.3.5
Using cached gplaydl-1.3.5.tar.gz (3.8 kB)
Preparing metadata (setup.py) ... done
Collecting certifi==2020.4.5.1 (from gplaydl==1.3.5)
Using cached certifi-2020.4.5.1-py2.py3-none-any.whl (157 kB)
Collecting cffi==1.14.0 (from gplaydl==1.3.5)
Using cached cffi-1.14.0.tar.gz (463 kB)
Preparing metadata (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [20 lines of output]
Traceback (most recent call last):
File "<string>", line 2, in <module>
File "<pip-setuptools-caller>", line 34, in <module>
File "C:\Users\fazep\AppData\Local\Temp\pip-install-gnytea0a\cffi_16a75588f9684082a4d873fd6b4ae30e\setup.py", line 127, in <module>
if sys.platform == 'win32' and uses_msvc():
File "C:\Users\fazep\AppData\Local\Temp\pip-install-gnytea0a\cffi_16a75588f9684082a4d873fd6b4ae30e\setup.py", line 105, in uses_msvc
return config.try_compile('#ifndef _MSC_VER\n#error "not MSVC"\n#endif')
File "C:\Python310\lib\distutils\command\config.py", line 225, in try_compile
self._compile(body, headers, include_dirs, lang)
File "C:\Python310\lib\distutils\command\config.py", line 132, in _compile
self.compiler.compile([src], include_dirs=include_dirs)
File "C:\Python310\lib\distutils\_msvccompiler.py", line 323, in compile
self.initialize()
File "C:\Python310\lib\distutils\_msvccompiler.py", line 220, in initialize
vc_env = _get_vc_env(plat_spec)
File "C:\Python310\lib\site-packages\setuptools\msvc.py", line 316, in msvc14_get_vc_env
return _msvc14_get_vc_env(plat_spec)
File "C:\Python310\lib\site-packages\setuptools\msvc.py", line 270, in _msvc14_get_vc_env
raise distutils.errors.DistutilsPlatformError(
distutils.errors.DistutilsPlatformError: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
Hello there!
I'm getting the following error message when I try to download an app from the Google Play Store:
Security check is needed, try to visit https://accounts.google.com/b/0/DisplayUnlockCaptcha to unlock, or setup an app-specific password
I tried the following:
$ pip3 install --upgrade --force-reinstall gplaydl
Defaulting to user installation because normal site-packages is not writeable
Collecting gplaydl
Downloading gplaydl-1.3.5.tar.gz (3.8 kB)
Preparing metadata (setup.py) ... done
Collecting certifi==2020.4.5.1
Downloading certifi-2020.4.5.1-py2.py3-none-any.whl (157 kB)
|████████████████████████████████| 157 kB 3.2 MB/s
Collecting cffi==1.14.0
Downloading cffi-1.14.0.tar.gz (463 kB)
|████████████████████████████████| 463 kB 7.1 MB/s
Preparing metadata (setup.py) ... done
Collecting chardet==3.0.4
Downloading chardet-3.0.4-py2.py3-none-any.whl (133 kB)
|████████████████████████████████| 133 kB 6.4 MB/s
Collecting cryptography==2.9
Downloading cryptography-2.9-cp35-abi3-manylinux2010_x86_64.whl (2.7 MB)
|████████████████████████████████| 2.7 MB 7.2 MB/s
Collecting decorator==4.4.2
Downloading decorator-4.4.2-py2.py3-none-any.whl (9.2 kB)
Collecting gpapidl==1.0.2
Downloading gpapidl-1.0.2.tar.gz (91 kB)
|████████████████████████████████| 91 kB 6.4 MB/s
Preparing metadata (setup.py) ... done
Collecting idna==2.9
Downloading idna-2.9-py2.py3-none-any.whl (58 kB)
|████████████████████████████████| 58 kB 4.5 MB/s
Collecting protobuf==3.14.0
Downloading protobuf-3.14.0-py2.py3-none-any.whl (173 kB)
|████████████████████████████████| 173 kB 8.6 MB/s
Collecting pycparser==2.20
Downloading pycparser-2.20-py2.py3-none-any.whl (112 kB)
|████████████████████████████████| 112 kB 7.0 MB/s
Collecting requests==2.23.0
Downloading requests-2.23.0-py2.py3-none-any.whl (58 kB)
|████████████████████████████████| 58 kB 3.3 MB/s
Collecting six==1.14.0
Downloading six-1.14.0-py2.py3-none-any.whl (10 kB)
Collecting termcolor==1.1.0
Downloading termcolor-1.1.0.tar.gz (3.9 kB)
Preparing metadata (setup.py) ... done
Collecting urllib3==1.25.8
Downloading urllib3-1.25.8-py2.py3-none-any.whl (125 kB)
|████████████████████████████████| 125 kB 6.7 MB/s
Collecting validators==0.14.3
Downloading validators-0.14.3.tar.gz (25 kB)
Preparing metadata (setup.py) ... done
WARNING: The candidate selected for download or install is a yanked version: 'validators' candidate (version 0.14.3 at https://files.pythonhosted.org/packages/9b/15/f6bab21c3b54ae2025d886890831ebe790e59b57671b8fb96073cb84a5ed/validators-0.14.3.tar.gz#sha256=6a0d9502219aee486f1ee12d8a9635e4a56f3dbcfa204b4e0de3a038ae35f34f (from https://pypi.org/simple/validators/))
Reason for being yanked: Missing python_requires in setup.py
Using legacy 'setup.py install' for gplaydl, since package 'wheel' is not installed.
Using legacy 'setup.py install' for cffi, since package 'wheel' is not installed.
Using legacy 'setup.py install' for gpapidl, since package 'wheel' is not installed.
Using legacy 'setup.py install' for termcolor, since package 'wheel' is not installed.
Using legacy 'setup.py install' for validators, since package 'wheel' is not installed.
Installing collected packages: pycparser, urllib3, six, idna, chardet, cffi, certifi, requests, protobuf, decorator, cryptography, validators, termcolor, gpapidl, gplaydl
Attempting uninstall: urllib3
Found existing installation: urllib3 1.26.7
Uninstalling urllib3-1.26.7:
Successfully uninstalled urllib3-1.26.7
Attempting uninstall: six
Found existing installation: six 1.16.0
Uninstalling six-1.16.0:
Successfully uninstalled six-1.16.0
Attempting uninstall: idna
Found existing installation: idna 3.3
Uninstalling idna-3.3:
Successfully uninstalled idna-3.3
WARNING: The script chardetect is installed in '/home/heath/.local/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Running setup.py install for cffi ... error
ERROR: Command errored out with exit status 1:
command: /usr/bin/python3 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-uj2du9cm/cffi_62adf2a3598b4cf290e0cda58ae6ef0a/setup.py'"'"'; __file__='"'"'/tmp/pip-install-uj2du9cm/cffi_62adf2a3598b4cf290e0cda58ae6ef0a/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-kjouduu8/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /home/heath/.local/include/python3.10/cffi
cwd: /tmp/pip-install-uj2du9cm/cffi_62adf2a3598b4cf290e0cda58ae6ef0a/
Complete output (56 lines):
running install
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.10
creating build/lib.linux-x86_64-3.10/cffi
copying cffi/vengine_cpy.py -> build/lib.linux-x86_64-3.10/cffi
copying cffi/model.py -> build/lib.linux-x86_64-3.10/cffi
copying cffi/commontypes.py -> build/lib.linux-x86_64-3.10/cffi
copying cffi/error.py -> build/lib.linux-x86_64-3.10/cffi
copying cffi/backend_ctypes.py -> build/lib.linux-x86_64-3.10/cffi
copying cffi/cparser.py -> build/lib.linux-x86_64-3.10/cffi
copying cffi/ffiplatform.py -> build/lib.linux-x86_64-3.10/cffi
copying cffi/pkgconfig.py -> build/lib.linux-x86_64-3.10/cffi
copying cffi/vengine_gen.py -> build/lib.linux-x86_64-3.10/cffi
copying cffi/api.py -> build/lib.linux-x86_64-3.10/cffi
copying cffi/lock.py -> build/lib.linux-x86_64-3.10/cffi
copying cffi/__init__.py -> build/lib.linux-x86_64-3.10/cffi
copying cffi/setuptools_ext.py -> build/lib.linux-x86_64-3.10/cffi
copying cffi/cffi_opcode.py -> build/lib.linux-x86_64-3.10/cffi
copying cffi/verifier.py -> build/lib.linux-x86_64-3.10/cffi
copying cffi/recompiler.py -> build/lib.linux-x86_64-3.10/cffi
copying cffi/_cffi_include.h -> build/lib.linux-x86_64-3.10/cffi
copying cffi/parse_c_type.h -> build/lib.linux-x86_64-3.10/cffi
copying cffi/_embedding.h -> build/lib.linux-x86_64-3.10/cffi
copying cffi/_cffi_errors.h -> build/lib.linux-x86_64-3.10/cffi
running build_ext
building '_cffi_backend' extension
creating build/temp.linux-x86_64-3.10
creating build/temp.linux-x86_64-3.10/c
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC -DUSE__THREAD -DHAVE_SYNC_SYNCHRONIZE -I/usr/include/python3.10 -c c/_cffi_backend.c -o build/temp.linux-x86_64-3.10/c/_cffi_backend.o
c/_cffi_backend.c: In function ‘ctypedescr_dealloc’:
c/_cffi_backend.c:407:23: error: lvalue required as left operand of assignment
407 | Py_REFCNT(ct) = 43;
| ^
c/_cffi_backend.c:410:23: error: lvalue required as left operand of assignment
410 | Py_REFCNT(ct) = 0;
| ^
c/_cffi_backend.c: In function ‘prepare_callback_info_tuple’:
c/_cffi_backend.c:6185:5: warning: ‘PyEval_InitThreads’ is deprecated [-Wdeprecated-declarations]
6185 | PyEval_InitThreads();
| ^~~~~~~~~~~~~~~~~~
In file included from /usr/include/python3.10/Python.h:130,
from c/_cffi_backend.c:2:
/usr/include/python3.10/ceval.h:122:37: note: declared here
122 | Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
| ^~~~~~~~~~~~~~~~~~
c/_cffi_backend.c: In function ‘b_callback’:
c/_cffi_backend.c:6245:5: warning: ‘ffi_prep_closure’ is deprecated: use ffi_prep_closure_loc instead [-Wdeprecated-declarations]
6245 | if (ffi_prep_closure(closure, &cif_descr->cif,
| ^~
In file included from c/_cffi_backend.c:15:
/usr/include/ffi.h:347:1: note: declared here
347 | ffi_prep_closure (ffi_closure*,
| ^~~~~~~~~~~~~~~~
error: command '/usr/bin/gcc' failed with exit code 1
----------------------------------------
ERROR: Command errored out with exit status 1: /usr/bin/python3 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-uj2du9cm/cffi_62adf2a3598b4cf290e0cda58ae6ef0a/setup.py'"'"'; __file__='"'"'/tmp/pip-install-uj2du9cm/cffi_62adf2a3598b4cf290e0cda58ae6ef0a/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-kjouduu8/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /home/heath/.local/include/python3.10/cffi Check the logs for full command output.
I've tried downloading a split apk, but I couldn't get any language file to download. Do you know how to force it to download them?
This used to work. Now it doesn't, even with valid credentials.
$ gplaydl -id com.whatsapp
Login failed. Ensure that correct credentials are provided.
Hi,
Is still working this Repo?
I've got Bad Authentication.
How can I debug this module in python?
import re
import io
import click
from gpapidl.googleplay import GooglePlayAPI
from dotenv import dotenv_values
dictfilter = lambda fun, _dict: dict(filter(lambda x: fun(x[1]) if fun else x[1], _dict.items()))
dictfilterkey = lambda fun, _dict: dict(filter(lambda x: fun(x[0]) if fun else x[0], _dict.items()))
dictmap = lambda fun, _dict: dict(map(lambda x: (x[0], fun(x[1])), _dict.items()))
dictmapkey = lambda fun, _dict: dict(map(lambda x: (fun(x[0]), x[1]), _dict.items()))
def sizeof_fmt(num):
num = float(num)
for x in ['bytes','KB','MB','GB','TB']:
if num < 1024.0:
return "%3.1f%s" % (num, x)
num /= 1024.0
def download_package(packagename_or_url, output=None, country="us"):
""" download a package from the Google Play Store """
# Parse arguments
if re.fullmatch(r"([A-Za-z]{1}[A-Za-z\d_]*\.)+[A-Za-z][A-Za-z\d_]*", packagename_or_url):
packagename = packagename_or_url
elif re.match(r".*\?id=([A-Za-z]{1}[A-Za-z\d_]*\.)+[A-Za-z][A-Za-z\d_]*", packagename_or_url):
packagename = re.match(r".*\?id=(([A-Za-z]{1}[A-Za-z\d_]*\.)+[A-Za-z][A-Za-z\d_]*)", packagename_or_url)[1]
else:
exit("Wrong APPID or URL.")
if country not in COUNTRY_CODES.keys():
exit("Wrong country code.")
# Read config from .env
config = dictmap(lambda v: v or None, dotenv_values(".env"))
proxies_config = dictfilterkey(lambda k: k in ["HTTP_PROXY", "HTTPS_PROXY"], dictfilter(None, config))
proxies_config = dictmapkey(lambda k: k.lower(), proxies_config)
# Connect to Google Play Store
api = GooglePlayAPI(locale=config['LOCALE'], device_codename="shamu", proxies_config=proxies_config)
api.login(config['GOOGLE_LOGIN'], config['GOOGLE_PASSWORD'], config['GOOGLE_AUTH_TOKEN'])
# Get the version code and the offer type from the app details
m = api.details(packagename)
vc = m["details"]["appDetails"]["versionCode"]
ot = m["offer"][0]["offerType"]
if output == None:
output = f"{packagename}_{vc}.apk"
# Download
print("Downloading to file %s with size %s..." % (output, sizeof_fmt(m["details"]["appDetails"]["installationSize"])))
data = api.download(output, vc, ot)
io.open(output, "wb").write(data)
print("Done")
x@192-168-10-195 ******* % python -m ******* gp download com.smartprojects.MemoryLocker
Downloading to file com.smartprojects.MemoryLocker_35.apk with size 2.7MB...
[!] RequestError: Error retrieving information from server. DF-DFERH-01
x@192-168-10-195 ******* % python -m ******* gp download com.smartprojects.MemoryLocker --trace
Downloading to file com.smartprojects.MemoryLocker_35.apk with size 2.7MB...
Traceback (most recent call last):
File "/Users/x/.pyenv/versions/3.9.0/lib/python3.9/runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/Users/x/.pyenv/versions/3.9.0/lib/python3.9/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/Users/x/Downloads/Projects/*******/*******/__main__.py", line 35, in <module>
cli()
File "/Users/x/Downloads/Projects/*******/*******/__main__.py", line 23, in cli
cli_commands()
File "/Users/x/.pyenv/versions/3.9.0/lib/python3.9/site-packages/click/core.py", line 1137, in __call__
return self.main(*args, **kwargs)
File "/Users/x/.pyenv/versions/3.9.0/lib/python3.9/site-packages/click/core.py", line 1062, in main
rv = self.invoke(ctx)
File "/Users/x/.pyenv/versions/3.9.0/lib/python3.9/site-packages/click/core.py", line 1668, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/Users/x/.pyenv/versions/3.9.0/lib/python3.9/site-packages/click/core.py", line 1668, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/Users/x/.pyenv/versions/3.9.0/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/Users/x/.pyenv/versions/3.9.0/lib/python3.9/site-packages/click/core.py", line 763, in invoke
return __callback(*args, **kwargs)
File "/Users/x/Downloads/Projects/*******/*******/cli/gp.py", line 207, in download
download_package(**kwargs)
File "/Users/x/Downloads/Projects/*******/*******/cli/gp.py", line 114, in download_package
data = api.download(output, vc, ot)
File "/Users/x/.pyenv/versions/3.9.0/lib/python3.9/site-packages/gpapidl/googleplay.py", line 625, in download
raise RequestError(response.commands.displayErrorMessage)
gpapidl.googleplay.RequestError: 'Error retrieving information from server. DF-DFERH-01'
An error occurrs when trying to install gplaydl via pipx:
└─$ pipx install gplaydl
Fatal error from pip prevented installation. Full pip output in file: /home/user/.local/state/pipx/log/cmd_2024-04-20_23.44.04_pip_errors.log
pip failed to build package:
cffi
Some possibly relevant errors from pip install:
error: subprocess-exited-with-error
c/_cffi_backend.c:407:23: error: lvalue required as left operand of assignment c/_cffi_backend.c:410:23: error: lvalue required as left operand of assignment error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1
Error installing gplaydl.
Try running pipx install gplaydl
Hello!!!
First of all thanks for this great package.
I'm having troubles downloading few apks and i'm assuming its due to either language/store.
Is there an easy way to modify the language? like --lang es_mx
Thanks a lot!!!
Despite the authentication is correct and I've checked it with different Gmail accounts upon running the script I get: 'server says: BadAuthentication'
Traceback (most recent call last):
File "/usr/local/bin/gplaydl", line 11, in <module>
load_entry_point('gplaydl==1.3.5', 'console_scripts', 'gplaydl')()
File "/usr/local/lib/python3.7/dist-packages/gplaydl/gplaydl.py", line 224, in main
configureauth()
File "/usr/local/lib/python3.7/dist-packages/gplaydl/gplaydl.py", line 74, in configureauth
os.makedirs(CONFIGDIR, exist_ok=True)
File "/usr/lib/python3.7/os.py", line 211, in makedirs
makedirs(head, exist_ok=exist_ok)
File "/usr/lib/python3.7/os.py", line 221, in makedirs
mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: '/usr/local/lib/python3.7/dist-packages/gplaydl/.gplaydl'
Nothing more was done outside of sudo pip3 install gplaydl
.
Currently running Debian Buster.
Says the account was deleted
Even after providing a valid email and password, and Enabled the "less secure app use".
while trying to install on mac mini with m1 chip, the installation failed (cryptography packages issues)
anyone was able to overcome it?
Hello, i want to thank you for your amazing work.
I have a problem with this script when i use my phone to install the APK file. Some apk files cant install and got this error: Application is not Installed.
Do you know what's the problem with the APK file ?
Example package: com.nimble.petsafety
when trying to configure using
gplaydl configure and entering email and password (tried both 2FA and no 2FA) and getting the following error
'Security check is needed, try to visit https://accounts.google.com/b/0/DisplayUnlockCaptcha to unlock, or setup an app-specific password'
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.