A package for accessing PS5 title update information
Project description
PS5 Title Update Information
This Python package retrieves information about updates available for a PS5 title. The information is stored in a Ps5TitleUpdate object which you can integrate into your application.
A similar package for PS4 title updates is available here: https://pypi.org/project/ps4-updates/
Installation
pip install ps5-updates
Typical Usage
An example implementation is included in src/demo.py.
Create a Ps5TitleUpdate object using the titles update XML URL or a the URL to a specific updates _sc.pkg file.
Invoke get_update() on the object to download information about all currently available update packages. This will partially download the update .pkg file to extract
the param.json where metadata about the update is stored.
The latest update is available as a ContentPackage object in the latest attribute. If the title has multiple updates currently available (ie. there is a pre-download for an upcoming update, or a pre-release update) then each individual update is available as a ContentPackage object in the packages attribute.
Within the ContentPackage object, information about the update .pkg file is available as a PKG object on the pkg attribute.
Within the PKG object the param.json data is available as a PKG_Param object. Any information from this file which is not specifically mapped to attributes on the object can be accessed by invoking get_property('name').
Titles can also include Additional Content (ie. DLC). If any Additional Content is available then it is available as an AdditionalContent object in the additional_content attribute of the Ps5TitleUpdate object. Accessing the update information then mirrors the above except it is accessed via the AdditionalContent objects latest or packages attributes.
Limitations
This package is not intended for downloading entire PS5 title update files, although it can be used to download and save files from within an updates _sc.pkg file.
Only information about the currently available update version can be retrieved. However if you have the URL for an specific updates _sc.pkg file then you can create a PKG object directly from that and parse some information about the update.
Keep in mind when considering the attributes of a PKG (the features that it is flagged as supporting) that it does not necessarily mean that the game has a mode available which actually implements the feature. This is true at least for features like 120hz and PSSR; whereas other features like VRR, HDR, and Power Saver do always seem to be available whenever the PKG is flagged as supporting them.
Unlike PS4 and earlier titles the update XML URLs are not predetermined. They can only be obtained from the app_sc.pkg file on a PS5 game disc, from the entitlement.db file on an exploitable console, or from the _sc.pkg of an already known update.
Usage Examples
An example implementation is included in src/demo.py.
Create Ps5TitleUpdate object and retrieve latest update information
from ps5_updates import title as ps5up
url = 'https://sgst.prod.dl.playstation.net/sgst/prod/00/np/PPSA07632_00/53d40bc7-7b1a-403c-8260-4b293b1711fd-version.xml'
title = ps5up.Ps5TitleUpdate.from_url(url)
title.get_update()
print(f'Title Id: {title.title_id}')
print(f'Content Id: {title.content_id}')
print(f'Name: {title.latest.pkg.param.name}')
print(f'Version: {title.latest.version}')
print(f'Creation Date: {title.latest.pkg.param.creation_date}')
print(f'System Version: {title.latest.system_version}')
print(f'Size: {title.latest.update_size}')
Console Output
Title Id: PPSA07632_00
Content Id: UP9000-PPSA07632_00-SAROS00000000000
Name: SAROS
Version: 01.004.003
Creation Date: 2026-05-14 00:37:26
System Version: 13.20.00.06
Size: 78.27 GiB
Create a PKG object and retrieve information about a specific update
from ps5_updates import pkg as ps5pkg
url = 'https://sgst.prod.dl.playstation.net/sgst/prod/00/PPSA18654_00/app/info/95/f_23e129465f761a049d5477f4f4ec67db738a31927e981faa7ffb5b7eec9cb4c5/UP6312-PPSA18654_00-0220083948426038_sc.pkg'
pkg = ps5pkg.PKG.from_url(url)
print(f'Title Id: {pkg.param.title_id}')
print(f'Content Id: {pkg.param.content_id}')
print(f'Name: {pkg.param.name}')
print(f'Version: {pkg.param.content_version}')
print(f'Creation Date: {pkg.param.creation_date}')
print(f'System Version: {pkg.param.required_system_version}')
print(f'Update URL: {pkg.param.version_url}')
Console Output
Title Id: PPSA18654
Content Id: UP6312-PPSA18654_00-0220083948426038
Name: Age of Empires II: Definitive Edition
Version: 01.029.000
Creation Date: 2026-04-24 19:24:29
System Version: 13.00.00.00
Update URL: https://sgst.prod.dl.playstation.net/sgst/prod/00/np/PPSA18654_00/935e23b3-169e-439b-99d8-ae2b8b534b37-version.xml
Development
All commands after step 1 should be run from the root of the git repo
1. Clone the repo
git clone git@github.com:andshrew/PS5-Updates-Python.git
2. Create and load a virtual python environment
python -m venv .venv
source .venv/bin/activate
3. Install the package in editable mode
pip install -e ".[test]"
4. Build the package
pip install build
python -m build
Additional Thanks
psdevwiki - documentation on PKG file format and param.json files
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ps5_updates-0.9.2.tar.gz.
File metadata
- Download URL: ps5_updates-0.9.2.tar.gz
- Upload date:
- Size: 16.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec6bf1ac92f9388108754aae21d2edfdb922655bb0e7670af0d3cc8df5d5b3dc
|
|
| MD5 |
0d69db0bf604810bfb09b191e425a1d5
|
|
| BLAKE2b-256 |
931c618870bdc067ea7618ae02bdd674b855b10cf16e3de264093a7e6f39d447
|
Provenance
The following attestation bundles were made for ps5_updates-0.9.2.tar.gz:
Publisher:
publish-to-pypi.yml on andshrew/PS5-Updates-Python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ps5_updates-0.9.2.tar.gz -
Subject digest:
ec6bf1ac92f9388108754aae21d2edfdb922655bb0e7670af0d3cc8df5d5b3dc - Sigstore transparency entry: 1615281053
- Sigstore integration time:
-
Permalink:
andshrew/PS5-Updates-Python@1b5c0090ec7f5f1149cecfeaef5645c000c25668 -
Branch / Tag:
refs/tags/v0.9.2 - Owner: https://github.com/andshrew
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@1b5c0090ec7f5f1149cecfeaef5645c000c25668 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file ps5_updates-0.9.2-py3-none-any.whl.
File metadata
- Download URL: ps5_updates-0.9.2-py3-none-any.whl
- Upload date:
- Size: 21.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
730c88adaf22a3969899034ad5c1a59480f3659440602962011daab7ae5d6c96
|
|
| MD5 |
e6ab07d77c7a6fbb32e9a9bc948b7dd3
|
|
| BLAKE2b-256 |
3ede821e78e9f04f5b204f112e77405138e07ac1610aa0c439d9f8e0474f6f10
|
Provenance
The following attestation bundles were made for ps5_updates-0.9.2-py3-none-any.whl:
Publisher:
publish-to-pypi.yml on andshrew/PS5-Updates-Python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ps5_updates-0.9.2-py3-none-any.whl -
Subject digest:
730c88adaf22a3969899034ad5c1a59480f3659440602962011daab7ae5d6c96 - Sigstore transparency entry: 1615281058
- Sigstore integration time:
-
Permalink:
andshrew/PS5-Updates-Python@1b5c0090ec7f5f1149cecfeaef5645c000c25668 -
Branch / Tag:
refs/tags/v0.9.2 - Owner: https://github.com/andshrew
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@1b5c0090ec7f5f1149cecfeaef5645c000c25668 -
Trigger Event:
workflow_dispatch
-
Statement type: