Skip to contents

Player card: position, height, weight, birth date, age, country and photo.

Usage

vhl_player(player_id, return_parsed = TRUE)

Arguments

player_id

Player id (player_id in any VHL frame), e.g. 34526.

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 player (one row):

col_nametypedescription
player_idintegerPlayer id, read from the page's own /players/{id}/games/ tab link; equals the requested id or the capture refuses.
namecharacterPlayer name, 'Surname Given' (Latin), from h1 without the number.
jerseyintegerCurrent jersey number (the h1 '#79' badge); null when the page shows none.
positioncharacterPosition in English (h2.player-card__subtitle): Forward and Goalkeeper seen; the defence label is unverified.
height_cmintegerHeight in centimetres (Height).
weight_kgintegerWeight in kilograms (Weight).
borncharacterBirth date 'DD.MM.YYYY' as the public page prints it.
ageintegerAge in years on the capture date (from '24 years old').
countrycharacterCountry (English); null when the card omits it.
photo_urlcharacterPhoto URL on img.khl.ru, /teamplayers/{team_season_id}/{player_id}/320.jpg. The team-season id is the one the photo was filed under, not the current team: 34526's photo uses 15424 = Magnitka in tn 1375 (25/26 playoffs, verified on /en/stats/players/1375/) while his newest row is 15516 (Dynamo-Altai, 1430).

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

Details

Source: GET https://www.vhlru.ru/en/players/{player_id}/ (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_player(player_id = 34526))
#> ── VHL Player Information from vhlru.ru ────────────── fastRhockey 1.0.0.9000 ──
#> ℹ Data updated: 2026-10-13 02:00:24 UTC
#> # A tibble: 1 × 10
#>   player_id name         jersey position height_cm weight_kg born    age country
#>       <int> <chr>         <int> <chr>        <int>     <int> <chr> <int> <chr>  
#> 1     34526 Mirzabalaye…     NA Forward        182        79 27.0…    24 NA     
#> # ℹ 1 more variable: photo_url <chr>
# }