Skip to contents

Game header of a report: date, attendance, score by period, teams, coaches and officials.

Usage

vhl_game_info(season, game_id, stage = "regular", return_parsed = TRUE)

Arguments

season

Season END year (2026 = 2025/26; the calendar covers 2010/11 on). With stage it is mapped to the site's tournament id, see vhl_tn().

game_id

Required. Game id (game_id in vhl_schedule; the report's and the broadcast's idgame), e.g. 899223.

stage

Season stage: "regular" (default) or "playoff".

return_parsed

TRUE (default) returns the parsed tibble; FALSE returns the page's parsed record (a named list, the sdv-internal-refs capture shape, plus _request with the season, stage, tn and the ids asked for).

Value

A fastRhockey_data tibble with one row per game (one row):

col_nametypedescription
game_idintegerGame id (the calendar's game_id; the report's and the broadcast's idgame). The report and broadcast pages do not print it: it comes from the request.
seasonintegerSeason END year (2026 = 2025/26).
stagecharacterSeason stage: regular or playoff.
game_numberintegerOfficial game number (from 'No.984'); checked against the request.
tnintegerTournament id of the season stage (2025/26 regular season = 1374, playoffs = 1375); vhl_tn maps season + stage to it.
datecharacterGame date, ISO 'YYYY-MM-DD', parsed from date_text.
local_timecharacterStart time 'HH:MM' from date_text; local time zone unverified (likely Moscow).
date_textcharacterDate line verbatim; RUSSIAN month and weekday even on /en/ ('18 Mart 2026, Sreda, 17:00'). The time datetime attribute is a constant placeholder (2020-01-23 18:00) and is ignored.
attendanceintegerAttendance (from '910 sp').
scorecharacterFinal score 'home:away' (the shootout counts as one goal).
home_scoreintegerHome final goals.
away_scoreintegerAway final goals.
decisioncharacterOT or SO when the game went past regulation; null otherwise.
period_scoreslist of characterScore of each period 'home:away', overtime and shootout included (SO game: '0:2','0:0','2:0','0:0','0:1').
home_team_page_idintegerHome team page id. Team page id (vhlru.ru only): the {team_id} of /en/teams/{team_id}/ (Toros = 390). Neither a club id nor a team-season id; it joins nothing else (bridge: the calendar row of the same game_id).
home_teamcharacterHome team name (Latin, FULL form: 'Kristall S'; the report's tables use the short 'Kristall').
home_shortcharacterHome team short name (the report tables' form).
home_citycharacterHome team city.
home_coachcharacterHome head coach, 'Surname Given'.
away_team_page_idintegerAway team page id. Team page id (vhlru.ru only): the {team_id} of /en/teams/{team_id}/ (Toros = 390). Neither a club id nor a team-season id; it joins nothing else (bridge: the calendar row of the same game_id).
away_teamcharacterAway team name (Latin, FULL form).
away_shortcharacterAway team short name (the report tables' form).
away_citycharacterAway team city.
away_coachcharacterAway head coach, 'Surname Given'.
referee1_numberintegerFirst referee's sweater number.
referee1characterFirst referee, 'Surname Given'.
referee2_numberintegerSecond referee's sweater number.
referee2characterSecond referee, 'Surname Given'.
linesman1_numberintegerFirst linesman's sweater number.
linesman1characterFirst linesman, 'Surname Given'.
linesman2_numberintegerSecond linesman's sweater number.
linesman2characterSecond linesman, 'Surname Given'.

With return_parsed = FALSE, the page's parsed record (a named list) instead.

Details

Source: GET https://www.vhlru.ru/en/report/{season}/ (server-rendered HTML, keyless; parsed with rvest). Unofficial use of a public source; payloads are not redistributed.

Owner flag (sanctions)

The VHL is run by Russian league operators, and several clubs are owned or sponsored by sanctioned state companies. Fetching on your own machine is fine; a published data release or a hosted mirror of this data needs the owner's sanctions / legal sign-off first.

Errors

  • fastRhockey_no_data: the VHL has nothing for the request (a season without that stage, a game not in the season's calendar, an unknown game, player or team page).

  • fastRhockey_bad_request: a bad season / stage / id, a missing argument, or HTTP 400 / 422.

  • fastRhockey_asset_fetch: the page could not be fetched, or it is not the page asked for (another season, game or player; a missing table or header drift).

Examples

# \donttest{
  try(vhl_game_info(season = 2026, game_id = 899223))
#> ── VHL Game Info Information from vhlru.ru ─────────── fastRhockey 1.0.0.9000 ──
#> ℹ Data updated: 2026-10-13 02:00:15 UTC
#> # A tibble: 1 × 32
#>   game_id season stage   game_number    tn date  local_time date_text attendance
#>     <int>  <int> <chr>         <int> <int> <chr> <chr>      <chr>          <int>
#> 1  899223   2026 regular         984  1374 2026… 17:00      18 Март …        910
#> # ℹ 23 more variables: score <chr>, home_score <int>, away_score <int>,
#> #   decision <chr>, period_scores <list>, home_team_page_id <int>,
#> #   home_team <chr>, home_short <chr>, home_city <chr>, home_coach <chr>,
#> #   away_team_page_id <int>, away_team <chr>, away_short <chr>,
#> #   away_city <chr>, away_coach <chr>, referee1_number <int>, referee1 <chr>,
#> #   referee2_number <int>, referee2 <chr>, linesman1_number <int>,
#> #   linesman1 <chr>, linesman2_number <int>, linesman2 <chr>
# }