Download latest version 1.4 for windows: dem2json.exe.
Tool parses DEM files. It's based on 'official' parser demoinfo2.exe.
The output of dem2json is JSON file with structure very similar to JSON returned by web method GetMatchDetails
from Dota 2 Web API. Usage:
dem2json.exe 123456789.dem
The output file name is
123456789.json
Comparison to web method GetMatchDetails follows. Missing fields are marked red,
added fields green, identical or similar (with comment) white.
Result object:
"result": {
"players": [...],
"radiant_win": true,
"duration": 3028,
"start_time": 1393955805,
"match_id": 555631285,
"lobby_type": 0, - always 0 so far
"human_players": 8,
"game_mode": 4
"season"
"match_seq_num"
"tower_status_radiant"
"tower_status_dire"
"barracks_status_radiant"
"barracks_status_radiant"
"cluster"
"first_blood_time"
"replay_salt"
"leagueid"
"positive_votes"
"negative_votes"
"radiant_logo"
"radiant_team_complete"
"dire_name"
"dire_logo"
"dire_team_complete"
}
Player object:
{
"account_id": 123456789,
"player_slot": 0, - could be slightly different from GetMatchDetails
"hero_id": 89,
"kills": 9,
"deaths": 3,
"assists": 10,
"leaver_status": 0, - always 0 (we do not leave:)
"last_hits": 184,
"neutrals": 39, - number of neutrals killed, subset of 'last_hits'
"denies": 10,
"hero_damage": 15670, - 'bruto' damage given (without armor and imunity reduction), excluding enemy illusions
"tower_damage": 2995, - " -
"hero_healing": 1800, - " -
"damage_taken": 5660, - 'bruto' damage taken, including owned illusions
"level": 24,
"tower_kills": 1, - tower last hits
"tower_denies": 1, - tower denies
"runes": 0, - runes picked up
"bottled_runes": 0, - runes in bottle
"buybacks": 0, - buybacks count
"wards": 0, - approximated only so far (cannot detect acquisition of more then 2 wards at once)
"is_bot": 0, - player is a bot
"item_0"
"item_1"
"item_2"
"item_3"
"item_4"
"item_5"
"gold"
"gold_per_min"
"xp_per_min"
"gold_spent"
"ability_upgrades"
"additional_units"
},
ChangeLog:
1.0 - initial version
1.1 - parses all heroes, parses wards (limited)
1.2 - added damage taken, fixed crash for replays without a single deny
1.3 - fixes for reworked bloodseeker, fixed meepo's deaths and assists for opposite team
1.4 - added techies, oracle and winter wyvern