Difference between revisions of "NUS"

From WiiBrew
Jump to navigation Jump to search
(→‎Response structure: noted which domain is used by the Wii)
(More info on prefixes, as the DSi server seems to have Wii titles as well)
 
(One intermediate revision by the same user not shown)
Line 26: Line 26:
 
:'''DeviceId''' - same as DeviceId from client
 
:'''DeviceId''' - same as DeviceId from client
 
:'''ErrorCode''' - 0 on success
 
:'''ErrorCode''' - 0 on success
:'''ContentPrefixURL''' - always https://nus.cdn.shop.wii.com/ccs/download (HTTP before [[2.0rev02]])
+
:'''ContentPrefixURL''' - always https://nus.cdn.shop.wii.com/ccs/download (HTTP before [[2.0rev03]])
:'''UncachedPrefixURL''' - always http://ccs.shop.wii.com/ccs/download (HTTP before 2.0rev02, this is the URL the Wii uses)
+
:'''UncachedPrefixURL''' - always https://ccs.shop.wii.com/ccs/download (HTTP before 2.0rev03, this is the URL the Wii uses)
 
:Several '''TitleVersion''' structs:
 
:Several '''TitleVersion''' structs:
 
::'''TitleId''' - 16-digit title ID in hex
 
::'''TitleId''' - 16-digit title ID in hex
Line 35: Line 35:
  
 
== Download a TMD, ticket, or content ==
 
== Download a TMD, ticket, or content ==
 +
There are a few prefixes that point to NUS. HTTP and HTTPS do not matter.
 +
* https://nus.cdn.shop.wii.com/ccs/download (does not seem to work)
 +
* https://ccs.shop.wii.com/ccs/download
 +
* https://ccs.cdn.c.shop.nintendowifi.net/ccs/download
 +
 
These can be downloaded from <prefix>/<titleid>/<name>, where prefix is the base URL returned from the SOAP request, titleid is the title ID in hex, and name is one of three things:
 
These can be downloaded from <prefix>/<titleid>/<name>, where prefix is the base URL returned from the SOAP request, titleid is the title ID in hex, and name is one of three things:
 
* tmd[version] - downloads the TMD for the version provided, or the latest version if no version is provided
 
* tmd[version] - downloads the TMD for the version provided, or the latest version if no version is provided

Latest revision as of 02:51, 1 December 2021

NUS (short for Nintendo Update Server) is a set of HTTP servers used to serve updates for Nintendo's consoles. For the Wii and Wii U, this server is located at http://nus.cdn.shop.wii.com.

Protocol

The Wii uses user agent wii libnup/1.0 for all requests.

Query a list of titles

To query a list of titles, a SOAP request is sent to /nus/services/NetUpdateSOAP, with action urn:nus.wsapi.broadon.com/. The result is an XML structure containing all titles that require updating.

Request structure

GetSystemUpdateRequest xmlns=urn:nus.wsapi.broadon.com

Version - always 1.0?
MessageId - unknown
DeviceId - unknown
RegionId - USA, JAP, EUR, or KOR
CountryCode - unknown
Several TitleVersion structs:
TitleId - 16-digit title ID in hex
Version - decimal version
Attribute - unknown
AuditData - unknown

Response structure

GetSystemUpdateResponse xmlns=urn:nus.wsapi.broadon.com

Version - same as version in request?
MessageId - same as MessageId from client
DeviceId - same as DeviceId from client
ErrorCode - 0 on success
ContentPrefixURL - always https://nus.cdn.shop.wii.com/ccs/download (HTTP before 2.0rev03)
UncachedPrefixURL - always https://ccs.shop.wii.com/ccs/download (HTTP before 2.0rev03, this is the URL the Wii uses)
Several TitleVersion structs:
TitleId - 16-digit title ID in hex
Version - latest title version available
FsSize - size in bytes?
UploadAuditData - unknown, possibly boolean?

Download a TMD, ticket, or content

There are a few prefixes that point to NUS. HTTP and HTTPS do not matter.

These can be downloaded from <prefix>/<titleid>/<name>, where prefix is the base URL returned from the SOAP request, titleid is the title ID in hex, and name is one of three things:

  • tmd[version] - downloads the TMD for the version provided, or the latest version if no version is provided
  • cetk - downloads the ticket (free titles only)
  • <contentid> - downloads a specific content