Difference between revisions of "NUS"

From WiiBrew
Jump to navigation Jump to search
(→‎Protocol: condensed the downloading part)
(2.0rev03)
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
'''NUS''' (short for '''Nintendo Update Server''') is a set of HTTP servers used to serve [[System Update|updates]] for Nintendo's consoles. For the Wii and Wii U, this server is located at http://nus.cdn.shop.wii.com.
 
'''NUS''' (short for '''Nintendo Update Server''') is a set of HTTP servers used to serve [[System Update|updates]] for Nintendo's consoles. For the Wii and Wii U, this server is located at http://nus.cdn.shop.wii.com.
  
== Protocol ==
+
= Protocol =
 
The Wii uses user agent <code>wii libnup/1.0</code> for all requests.
 
The Wii uses user agent <code>wii libnup/1.0</code> for all requests.
  
=== Query a list of titles ===
+
== 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.
+
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.
  
=== Download a TMD, ticket, or content===
+
=== Request structure ===
These can be downloaded from /ccs/download/<titleid>/<name>, where titleid is the title ID in hex, and name is one of three things:
+
'''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 http://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 ==
 +
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
* cetk - downloads the ticket
+
* cetk - downloads the ticket (free titles only)
 
* <contentid> - downloads a specific content
 
* <contentid> - downloads a specific content
  
 
[[Category:Online services]]
 
[[Category:Online services]]

Revision as of 23:11, 3 October 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 http://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

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