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
Metadata
Release files for ps5-updates 0.9.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| ps5_updates-0.9.4.tar.gz | 17.8 kB | With provenance | Details for ps5_updates-0.9.4.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| ps5_updates-0.9.4-py3-none-any.whl | Python 3 | none | any | Details for ps5_updates-0.9.4-py3-none-any.whl |
Total release size: 40.2 kB
Release files / ps5_updates-0.9.4.tar.gz
| Download URL | ps5_updates-0.9.4.tar.gz |
|---|---|
| Size | 17.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a18cc0ac76d5aa4ff2221e0580d352b7e6c43c4d2fdef7a2ca9af4cc5c3f0b36
|
|
BLAKE2b-256 checksum How to use checksums |
963430e846bc6aaa913818bd82f9ed917b72d454b44cd010a34503376d92fb27
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 24, 2026.
Transparency logRelease files / ps5_updates-0.9.4-py3-none-any.whl
| Download URL | ps5_updates-0.9.4-py3-none-any.whl |
|---|---|
| Size | 22.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
37e969a8962ac148a96a1fe54d8317ae0de3b6ea3b53134648c6dbed5f36ab53
|
|
BLAKE2b-256 checksum How to use checksums |
f7b31fea9b7b86e3421dafbd2d213fc4ac060f6727e0162de19febd8ef6568cc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 24, 2026.
Transparency logSecurity for ps5-updates 0.9.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for ps5_updates-0.9.4.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 24, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.