pubg-python
A python wrapper for the PUBG Developer API
PUBG Developer API Official Documentation
Installation
To install the wrapper, simply use pip
pip install pubg-python
or pipenv
pipenv install pubg-python
Usage
Specifying a shard
The PUBG API shards data by platform and region, and therefore requires a shard to be specified in the URL for most requests.
from pubg_python import PUBG, Shard
api = PUBG('<api-key>', Shard.PC_NA)
A list of shards can be found here and the wrapper constants here
Samples
- Samples
A sample of matches can be retrieved as a starting point
sample = api.samples().get()
for match in sample.matches:
print(match.id)
Samples can also be filtered by a creation date
sample = api.samples().filter(created_at_start='2018-01-01T00:00:00Z').get()
for match in sample.matches:
print(match.id)
Players
- Players
Retrieving a single player
player = api.players().get('account.3654e255b77b409e87b10dcb086ab00d')
for match in player.matches:
match_data = api.matches().get(match.id)
Retrieving a list of players filtering by names
players = api.players().filter(player_names=['Name1', 'Name2'])
for player in players:
player_id = player.id
Retrieving a list of players filtering by ids
players = api.players().filter(player_ids=['account.3654e255b77b409e87b10dcb086ab00d'])
for player in players:
player_name = player.name
Matches
- Matches
Retrieving a single match
match = api.matches().get('276f5bcb-a831-4e8c-a610-d2073692069e')
Retrieving a list of matches filtering by ids
Still unavailable in the API
match_ids = [
'276f5bcb-a831-4e8c-a610-d2073692069e',
'fasf9082-21de-dkle-13ke-qlamd13nab3a',
]
matches = api.matches().filter(match_ids=match_ids)
for match in matches:
print(match)
Telemetry
- Telemetry events
- Event objects
Processing a match Telemetry data
match = api.matches().get('276f5bcb-a831-4e8c-a610-d2073692069e')
asset = match.assets[0]
telemetry = api.telemetry(asset.url)
print(len(telemetry.events))
>> 16871
Filtering specific events in a telemetry object
Sometimes you're interested in a set of very specific events, so there is a helper function to filter those for you:
match = api.matches().get('276f5bcb-a831-4e8c-a610-d2073692069e')
asset = match.assets[0]
telemetry = api.telemetry(asset.url)
player_kill_events = telemetry.events_from_type('LogPlayerKill')
player_position_events = telemetry.events_from_type('LogPlayerPosition')
Loading a local Telemetry file
If you want to load a previously downloaded telemetry file, there is a helper method to create a Telemetry object from it:
from pubg_python import Telemetry
telemetry = Telemetry.from_json('telemetry.json', shard='pc')
shard defaults to pc but you need to specify if you're loading a xbox telemetry file.
Matches
- Matches
Retrieving a single tournament
tournament = api.tournaments().get('na-ppc')
Retrieving a list of tournaments
tournaments = api.tournaments()
for tournament in tournaments:
print(tournament)
Playing around with data
An example of how you can manipulate the data: The domain is all specified here
players = api.players().filter(player_names=['epickitten'])
player = players[0]
player.matches
>> [<Match bd6aae34-be05-4094-981c-083285c7e861>, <Match 276f5bcb-a831-4e8c-a610-d2073692069e>, ..]
match = api.matches().get(player.matches[0].id)
match.game_mode
>> 'solo'
match.duration
>> 1899
match.rosters
>> [<Roster d542eaee-cd02-4f4e-ad7f-ed5ea71a17cf>, <Roster e9f0962a-ebd4-4d86-b134-95783b713800>, ..]
roster = match.rosters[0]
roster.participants
>> [<Participant 7cc76d1b-a80e-4997-8eb8-d4b3c1ed4f44>]
participant = roster.participans[0]
participant.name
>> 'urdaddyYO'
participant.damage_dealt
>> 291.08
participant.kills
>> 2
participant.ride_distance
>> 3204.53467
participant.walk_distance
>> 2262.81714
participant.time_survived
>> 1367
participant.player_id
>> account.edb9910f1e9c4f3b9addb87d9329b57c
player = api.players().get(participant.player_id)
player
>> account.edb9910f1e9c4f3b9addb87d9329b57c
player.matches
>> [<Match b3dcd7e8-2270-4fdd-8389-af77acf2d6c2>, <Match 2ebb1a9c-ab5e-4264-971f-df77a00918a9>, ..]
Limits and Offsets
Currently disabled from the official API
Offsetting 5 matches and limitting by 10
matches = api.matches().limit(10).offset(5)
Sorting
Currently disabled from the official API
sort defaults to ascending, you can use ascending=False for a descending sort
matches = api.matches().limit(10).sort('createdAt')
matches = api.matches().limit(10).sort('createdAt', ascending=False)
Filtering
Some endpoints allow you to apply filters, for example, filtering players by names:
players = api.players().filter(player_names=['Name1', 'Name2'])
Or filtering players by ids:
players = api.players().filter(player_ids=['account.3654e255b77b409e87b10dcb086ab00d'])
Pagination
Use next() for the next page and prev() for the previous one:
matches = api.matches()
next_matches = matches.next()
previous_matches = matches.prev()
Changelog
Metadata
Release files for back-pubg-python 0.5.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| back-pubg-python-0.5.2.tar.gz | 12.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| back_pubg_python-0.5.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 30.0 kB
Release files / back-pubg-python-0.5.2.tar.gz
| Download URL | back-pubg-python-0.5.2.tar.gz |
|---|---|
| Size | 12.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3e3be8c987596b739a7918194f713e09dc8748714ae23de9726645ef6e462775
|
|
BLAKE2b-256 checksum How to use checksums |
0fa29de12cbecef4591ac5a020b46948de0b69c67b6c1dd4ff9bf53e838d9f14
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.7.2 requests-toolbelt/0.9.1 tqdm/4.30.0 CPython/3.7.2
|
Release files / back_pubg_python-0.5.2-py3-none-any.whl
| Download URL | back_pubg_python-0.5.2-py3-none-any.whl |
|---|---|
| Size | 17.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a2f3e3b7d51da267314d546fd9367c74f5ee7cd79e90862fa5ab5e4ab88fdb2e
|
|
BLAKE2b-256 checksum How to use checksums |
30a1785745fe91f6cb8ddb7f86f2e07a82238f58250febdde79cbc89b85d0e45
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.7.2 requests-toolbelt/0.9.1 tqdm/4.30.0 CPython/3.7.2
|