Results 1 to 7 of 7

Thread: Laning Information

  1. #1
    Basic Member
    Join Date
    Aug 2013
    Posts
    22

    Laning Information

    How is dotabuff getting laning information, are they parsing replays? GetMatchDetails doesn't have a replay_salt field anymore, so how do you get replays from the API?

  2. #2
    Basic Member scottrick's Avatar
    Join Date
    Dec 2011
    Location
    Minnesota, USA
    Posts
    138
    They are definitely parsing replays.

  3. #3
    Basic Member
    Join Date
    Jul 2012
    Posts
    6,033
    It's only available in Dotabuff Plus which costs money. Dotabuff Plus does replay parsing.

    A free alternative is Yasp. It's free and open source.
    James "2GD" Harding's career as a Dota 2 host on Valve events
    * 25.02.16 - 26.02.16
    Spoiler: 



  4. #4
    Basic Member
    Join Date
    May 2015
    Posts
    11
    taking a quick look through yasp's code :

    https://github.com/yasp-dota/yasp/se...2%9C%93&q=Salt

    it looks like they're relying on this:
    Code:
     "STEAM_USER": "", //for getting replay salt/profile data, in retriever
    and still using this function:

    Code:
    var url = "http://replay" + body.match.cluster + ".valve.net/570/" + match.match_id + "_" + body.match.replaySalt + ".dem.bz2";
    so while the salt doesn't appear available strictly in the context of dota2, it does appear to be available from steam.

  5. #5
    Basic Member MuppetMaster42's Avatar
    Join Date
    Nov 2011
    Location
    Australia
    Posts
    585
    Quote Originally Posted by ptdel View Post
    so while the salt doesn't appear available strictly in the context of dota2, it does appear to be available from steam.
    It's not available via the WebAPI, no.

    But as far as I know you can get all that sort of detail from steam if you spoof the client.

    You have to spoof the client, connect to the game coordinator (GC) and tell it you're playing dota2.
    Then you can send dota2 client packets (for example you can request the details of a match).
    somewhere in the data you'd either be able to directly download, or get the download details for the replay file.

    edit: had a quick squiz..
    if you're interested, most of the grunt work for client spoofing has been done by the SteamRE guys with their SteamKit2 library.
    you can see in the protobuf that the replay salt is easily accessible in the match response: https://github.com/SteamRE/SteamKit/...ent.proto#L631

  6. #6
    Basic Member
    Join Date
    May 2015
    Posts
    11
    .NET …(•̩̩̩̩_•̩̩̩̩) Hey it's better than paying for replays still :-p

  7. #7
    Basic Member MuppetMaster42's Avatar
    Join Date
    Nov 2011
    Location
    Australia
    Posts
    585
    the library is .NET, but the protobufs can be compiled/their concepts used by any language (search for google protobuf for more details).

    The main concept is that there is a set of protobuf messages that need to be sent in a certain order (with credentials) in order to login to steam, then you need to do another set to tell the game coordinator you're playing, then you need to do another set to tell the servers to give you the match history data.
    it's really simple, I managed to get something working before I knew what .NET really was.

    edit: I'll have a look for the code when I get home tonight.
    Last edited by MuppetMaster42; 06-08-2015 at 04:47 PM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •