-
Notifications
You must be signed in to change notification settings - Fork 36
NGDP
NGDP (Next Generation Download Protocol) is a new content distribution system introduced together with CASC.
The system provides configuration and data files for all recent Blizzard games, including the following (source):
| Code | Description |
|---|---|
| agent | Battle.net Agent |
| bna | Battle.net App |
| bnt | Heroes of the Storm Alpha (Deprecated) |
| d3 | Diablo 3 Retail |
| d3cn | Diablo 3 China |
| d3t | Diablo 3 Test |
| demo | ? (Partial) |
| hero | Heroes of the Storm Retail |
| herot | Heroes of the Storm Test |
| hsb | Hearthstone |
| pro | Overwatch Retail |
| prodev | Overwatch Dev |
| sc2 | StarCraft II (Partial) |
| s2 | StarCraft II |
| s2t | StarCraft II Test (Partial) |
| s2b | StarCraft II Beta |
| test | ? (Partial) |
| storm | Heroes of the Storm (Deprecated) |
| war3 | Warcraft III (Partial) |
| wow | World of Warcraft Retail |
| wowt | World of Warcraft Test |
| wow_beta | World of Warcraft Beta |
Global configuration files can be obtained from the following URLs (where ProgramCode is a value from the above table):
- http://us.patch.battle.net:1119/(ProgramCode)/cdns - table of domains and paths containing game data, per region
- http://us.patch.battle.net:1119/(ProgramCode)/versions - table of current game versions and CDN configs per region
All global configuration files share the same table format. Here is an example of a /cdns file:
Name!STRING:0|Path!STRING:0|Hosts!STRING:0
us|tpr/d3|blzddist1-a.akamaihd.net blzddist2-a.akamaihd.net
eu|tpr/d3|blzddist1-a.akamaihd.net blzddist2-a.akamaihd.net
kr|tpr/d3|blzddistkr1-a.akamaihd.net blizzard.nefficient.co.kr blzddist1-a.akamaihd.net
tw|tpr/d3|blzddist1-a.akamaihd.net blzddist2-a.akamaihd.net
cn|tpr/d3|client01.pdl.wow.battlenet.com.cn client02.pdl.wow.battlenet.com.cn client03.pdl.wow.battlenet.com.cn client04.pdl.wow.battlenet.com.cn blzddist1-a.akamaihd.net
The first line describes the column names and formats, and can be ignored as it is always the same for a given file. The rest of the lines cointain table data, separated by vertical bars.
/cdns file (example above) lists available domains per region, and the download paths for the rest of configuration files and data. All files are accessed by a 16-byte MD5 hash, formatted as a 32-character hex string. The download URLs are formatted as follows:
http://host/path/type/first-byte/second-byte/full-hash
Where host and path are taken from the /cdns table, and first-byte and second-byte repeat the first two and second two characters of the hash string.
Known types include:
-
config- contains build config, CDN config and patch config files -
data- contains game data files; smaller files are bundled together in archives -
patch- contains patch data
An example URL:
http://blzddist1-a.akamaihd.net/tpr/d3/data/5a/6b/5a6b94ec102ce72e917f7284232ba6bb
The /versions table contains the current build config and CDN config hashes per region, along with build ID and version strings. An example file (http://us.patch.battle.net:1119/d3t/versions):
Region!STRING:0|BuildConfig!HEX:16|CDNConfig!HEX:16|BuildId!DEC:4|VersionsName!String:0
us|e583b35f5a4de27d3b35cf484b439ee7|2505e067a5ef12d869fcaf406e5e6360|35056|2.4.0.35056
xx|e583b35f5a4de27d3b35cf484b439ee7|2505e067a5ef12d869fcaf406e5e6360|35056|2.4.0.35056
eu|e583b35f5a4de27d3b35cf484b439ee7|2505e067a5ef12d869fcaf406e5e6360|35056|2.4.0.35056
kr|e583b35f5a4de27d3b35cf484b439ee7|2505e067a5ef12d869fcaf406e5e6360|35056|2.4.0.35056
cn|e583b35f5a4de27d3b35cf484b439ee7|2505e067a5ef12d869fcaf406e5e6360|35056|2.4.0.35056
tw|e583b35f5a4de27d3b35cf484b439ee7|2505e067a5ef12d869fcaf406e5e6360|35056|2.4.0.35056