NUS
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.
https://ccs.shop.wii.com suddenly went offline with no announcement around 2022/3/16 21:40 UTC. NUS clients have since modified to download using a different method, although Nintendo has since announced the maintenance. There has been no further information from Nintendo, and the status reports on Nintendo's website still say everything is operational. The servers came back on July 6.
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.
- 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:
- tmd - downloads the TMD for the latest version
- tmd.<version> - downloads the TMD for a given version
- cetk - downloads the ticket (free titles only)
- <contentid> - downloads a specific content
The TMDs and ticket are stored as contents with large IDs on the server. Information about these special content IDs is available on DSiBrew.