라이엇 API에서는 게임 데이터를 제공할뿐 아니라 타임라인 데이터도 제공합니다.
타임라인 데이터는 게임이 진행되는 중간에 수집한 정보입니다.
롤의 경우 경기가 시작되고 나서 1분(60000 밀리세컨드) 단위로 데이터를 제공합니다.
각 시점에 사용자별로 챔피언 레벨, 미니언 킬, 위치, 아이템 구입 내역 등 상세한 정보를 알 수 있습니다.
경기 중간에 실시간으로 파악하는 통계(타임라인 데이터)라서, 경기가 끝난 시점에 파악하는 경기 전체 통계(게임 데이터)로 얻을 수 없는 정보가 포함돼 있습니다. 예를 들어 사용자가 경기 중간에 아이템을 사고 팔면서 빌드 업을 해나가는 과정은 타임라인 데이터를 통해서만 파악할 수 있습니다.
타임라인 데이터는 라이엇 개발자 페이지 MATCH-V5 세 번째 줄에서 얻을 수 있습니다.
/lol/match/v5/matches/{matchId}/timeline
API 사용 방법은 게임 데이터 수집 방식과 유사합니다.
연습삼아 페이커 선수의 match id를 이용해서 타임라인 데이터를 수집해봅시다.
"KR_6064073180"
코드
import requests import pickle api_key = "본인의 API KEY를 입력하세요" headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36", "Accept-Language": "ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7", "Accept-Charset": "application/x-www-form-urlencoded; charset=UTF-8", "Origin": "https://developer.riotgames.com", "X-Riot-Token": api_key } matchid_list = [ "KR_6064073180", "KR_6063075412", "KR_6062986134", "KR_6063004225", "KR_6062981865", "KR_6062848010", "KR_6062875092", "KR_6062871162", "KR_6061081047", "KR_6060968162" ] for matchid in matchid_list: url = f"https://asia.api.riotgames.com/lol/match/v5/matches/{matchid}/timeline" data = requests.get(url, headers=headers).json() print(data) path = f"faker_timeline/{matchid}.pickle" with open(path, "wb") as f: pickle.dump(data, f)