googleplay

package module
v0.0.0-...-4b91b5d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 8, 2025 License: OSL-3.0 Imports: 13 Imported by: 0

README

GooglePlay

Fear plays an interesting role in our lives. How dare we let it motivate us? How dare we let it into our decision-making, into our livelihoods, into our relationships?

It's funny, isn't it, we take a day a year to dress up in costume and celebrate fear?

Spooked (The Office) (2011)

Download APK from Google Play or send API requests

Issues

During this time I am trying to support myself, so I am requiring payment for all issues. That might change at a later date. Any issue without payment of at least 19 USD will be closed immediately. Payment can be made to the PayPal link on this page, or if you want to use another method, mention that in the issue text. For business opportunities, contact me:

How to install?

This module works with Windows, macOS or Linux. First, download Go and extract archive. Then download GooglePlay and extract archive. Then navigate to googleplay-master/cmd/googleplay, and enter:

go build

Tool examples

Before trying these examples, make sure the Google account you are using has logged into the Play Store at least once before. Also you need to have accepted the Google Play terms and conditions. Create a file containing token (aas_et) for future requests:

googleplay -email EMAIL -password PASSWORD

Create a file containing X-DFE-Device-ID (GSF ID) for future requests:

googleplay -device

Get app details:

> googleplay -a com.google.android.youtube
Title: YouTube
Creator: Google LLC
Upload Date: Jun 17, 2022
Version: 17.24.34
Version Code: 1529992640
Num Downloads: 12.038 B
Installation Size: 48.285 MB
File: APK APK APK APK
Offer: 0 USD

Purchase app. Only needs to be done once per Google account:

googleplay -a com.google.android.youtube -purchase

Download APK. You need to specify any valid version code. The latest code is provided by the previous details command. If APK is split, all pieces will be downloaded:

googleplay -a com.google.android.youtube -v 1529992640

API

https://forgejo.s.otusnap.com/otusnap/gp

Documentation

Index

Constants

View Source
const Sleep = 4 * time.Second

Variables

View Source
var Phone = Config{
	Device_Feature: []string{

		"android.hardware.location.gps",

		"android.software.midi",

		"android.hardware.camera.front",

		"android.hardware.microphone",

		"android.software.device_admin",

		"android.hardware.touchscreen",
		"android.hardware.wifi",

		"android.hardware.sensor.gyroscope",

		"android.hardware.sensor.accelerometer",

		"android.hardware.opengles.aep",

		"android.hardware.camera",
		"android.hardware.location",
		"android.hardware.screen.portrait",

		"android.hardware.touchscreen.multitouch",

		"android.hardware.location.network",

		"android.hardware.bluetooth",
		"android.hardware.bluetooth_le",
		"android.hardware.camera.autofocus",
		"android.hardware.usb.host",

		"android.hardware.sensor.compass",

		"android.hardware.telephony",

		"android.hardware.screen.landscape",
	},
	Shared_Library: []string{

		"org.apache.http.legacy",

		"android.test.runner",

		"global-miui11-empty.jar",
	},

	GL_ES_Version: 0x9_9999,
	GL_Extension: []string{

		"GL_OES_compressed_ETC1_RGB8_texture",

		"GL_KHR_texture_compression_astc_ldr",
	},
}
View Source
var Platforms = Native_Platform{

	0: "x86",

	1: "armeabi-v7a",

	2: "arm64-v8a",
}

Functions

This section is empty.

Types

type Auth

type Auth struct {
	url.Values
}

func New_Auth

func New_Auth(email, password string) (*Auth, error)

You can also use host "android.clients.google.com", but it also uses TLS fingerprinting.

func (Auth) Create

func (a Auth) Create(name string) error

func (*Auth) Exchange

func (a *Auth) Exchange() error

func (Auth) Get_Auth

func (a Auth) Get_Auth() string

func (Auth) Get_Token

func (a Auth) Get_Token() string

type Config

type Config struct {
	Device_Feature      []string
	Five_Way_Navigation uint64
	GL_ES_Version       uint64
	GL_Extension        []string
	Hard_Keyboard       uint64
	Keyboard            uint64
	Navigation          uint64
	Screen_Density      uint64
	Screen_Layout       uint64
	Shared_Library      []string
	Touch_Screen        uint64
}

These can use default values, but they must all be included

func (Config) Checkin

func (c Config) Checkin(platform string) (*Device, error)

A Sleep is needed after this.

type Delivery

type Delivery struct {
	protobuf.Message
}

func (Delivery) Additional_File

func (d Delivery) Additional_File() []File_Metadata

func (Delivery) Download_URL

func (d Delivery) Download_URL() (string, error)

.downloadUrl

func (Delivery) Split_Data

func (d Delivery) Split_Data() []Split_Data

type Details

type Details struct {
	protobuf.Message
}

func (Details) Creator

func (d Details) Creator() (string, error)

should work with any ABI

func (Details) Currency_Code

func (d Details) Currency_Code() (string, error)

should work with any ABI

func (Details) File

func (d Details) File() []File_Metadata

will fail with wrong ABI

func (Details) Installation_Size

func (d Details) Installation_Size() (uint64, error)

will fail with wrong ABI

func (Details) MarshalText

func (d Details) MarshalText() ([]byte, error)

func (Details) Micros

func (d Details) Micros() (uint64, error)

should work with any ABI

func (Details) Num_Downloads

func (d Details) Num_Downloads() (uint64, error)

should work with any ABI

func (Details) Time

func (d Details) Time() (time.Time, error)

This only works with English. You can force English with: Accept-Language: en

func (Details) Title

func (d Details) Title() (string, error)

should work with any ABI

func (Details) Upload_Date

func (d Details) Upload_Date() (string, error)

func (Details) Version

func (d Details) Version() (string, error)

will fail with wrong ABI

func (Details) Version_Code

func (d Details) Version_Code() (uint64, error)

will fail with wrong ABI

type Device

type Device struct {
	protobuf.Message
}

func (Device) Create

func (d Device) Create(name string) error

func (Device) ID

func (d Device) ID() (uint64, error)

type File

type File struct {
	Package_Name string
	Version_Code uint64
	Platform     string
}

func (File) APK

func (f File) APK(id string) string

func (File) OBB

func (f File) OBB(file_type uint64) string

type File_Metadata

type File_Metadata struct {
	protobuf.Message
}

func (File_Metadata) Download_URL

func (f File_Metadata) Download_URL() (string, error)

.downloadUrl

func (File_Metadata) File_Type

func (f File_Metadata) File_Type() (uint64, error)

.fileType

type Header struct {
	Auth   Auth   // Authorization
	Device Device // X-Dfe-Device-Id
	Single bool
}

func (Header) Delivery

func (h Header) Delivery(app string, ver uint64) (*Delivery, error)

func (Header) Details

func (h Header) Details(app string) (*Details, error)

func (*Header) Open_Auth

func (h *Header) Open_Auth(name string) error

func (*Header) Open_Device

func (h *Header) Open_Device(name string) error

func (Header) Purchase

func (h Header) Purchase(app string) error

Purchase app. Only needs to be done once per Google account.

func (Header) Set_Agent

func (h Header) Set_Agent(head http.Header)

func (Header) Set_Auth

func (h Header) Set_Auth(head http.Header)

func (Header) Set_Device

func (h Header) Set_Device(head http.Header) error

type Native_Platform

type Native_Platform map[int64]string

func (Native_Platform) String

func (n Native_Platform) String() string

type Split_Data

type Split_Data struct {
	protobuf.Message
}

func (Split_Data) Download_URL

func (s Split_Data) Download_URL() (string, error)

.downloadUrl

func (Split_Data) ID

func (s Split_Data) ID() (string, error)

.id

Directories

Path Synopsis
cmd
badging command
example command
googleplay command

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL