Skip to main content

Replay Mode

Replay Mode lets you watch historical F1 sessions with full Home Assistant integration. When you play back a recorded race or qualifying from F1 TV or another service, your automations and dashboards can follow the session in a way that is much closer to a live broadcast.

Your lights can react to a red flag. Your dashboard can show live timing. Race Control messages can still drive notifications while you watch the session later.

Experimental replay catch-up

Replay Mode now includes experimental 30-second catch-up controls in Version 1. The feature is being tested in real setups, and additional refinement may still be needed in later updates.

Watching it later? Keep your dashboard spoiler-free

If you cannot watch a session live, turn on No Spoiler Mode before the session starts. Your dashboard stays frozen until you are ready. Then load the session in Replay Mode, press play when your broadcast begins, and experience everything as if it were live — without any spoilers.


How it works

Replay Mode downloads session data from Formula 1's public archive and plays it back through the same data pipeline used during live sessions. By starting playback at the same moment the session begins on your TV, your live entities can follow the broadcast closely.

Standard entity IDs

This page uses the standard Replay Mode entity IDs for new installations, such as select.f1_replay_year and media_player.f1_replay_player.

If you upgraded from an older release and already have different registry IDs, keep using those existing entities. The integration does not rename installed entities automatically.


Entities

Replay Mode adds several control entities to Home Assistant.

Configuration entities

EntityPurpose
select.f1_replay_yearSelect the season year
select.f1_replay_sessionSelect which session to replay
select.f1_replay_start_referenceChoose where playback starts
button.f1_replay_loadDownload and prepare the selected session
button.f1_replay_playStart or resume playback
button.f1_replay_pausePause playback
button.f1_replay_stopStop playback and return to idle
button.f1_replay_back_30Experimental: move replay back 30 seconds
button.f1_replay_forward_30Experimental: move replay forward 30 seconds
button.f1_replay_refreshRefresh the session list

Media player

EntityPurpose
media_player.f1_replay_playerStandard media player with play, pause, stop and position tracking

The media player entity lets you control replay using any media player integration or remote control. It reports current position, duration, and playback state, making it easy to integrate with other media players in your setup.

Status sensor

EntityPurpose
sensor.f1_replay_statusShows current replay state and progress

Using Replay Mode

Step 1 - Select a session

  1. Use select.f1_replay_year to choose the season
  2. Use select.f1_replay_session to pick a session from that year

The session list shows all completed sessions from the selected year, with the most recent first.

Data availability

Session data is typically available 15–60 minutes after a session ends. If you just finished watching a live session, wait a bit before the replay data becomes available.

Step 2 - Choose the start reference

Use select.f1_replay_start_reference to choose where playback begins:

  • Formation start (race/sprint) - Playback starts from the formation lap. This is the default and recommended for races and sprints, since you can focus on watching the start rather than pressing a button at lights out.
  • Session live - Playback starts from lights out (races) or pit exit open (practice/qualifying). This is the most precise option but requires you to press play at the exact moment.
info

The formation start option only applies to race and sprint sessions. For practice and qualifying, playback always starts from when the session went live.

Formation lap timing

The formation lap start point is estimated with approximately one second accuracy. The live data stream does not provide an exact marker for when the formation lap begins, so there may be a small offset compared to your broadcast.

Step 3 - Load the session

Press button.f1_replay_load to download the session data.

The sensor.f1_replay_status shows download progress. Session data is cached locally, so loading the same session again is faster.

Step 4 - Sync with your broadcast

Start the session on your TV or streaming service. When you see the session begin, press button.f1_replay_play or use media_player.f1_replay_player at that exact moment.

For races and sprints (with formation start reference): Press play when the formation lap begins.

For practice and qualifying (or session live reference): Press play when the pit exit opens and cars start leaving the garage.

From this point, the replayed live sensors follow what you see on screen.

Step 5 - Control playback

If you pause your TV, pause the replay to stay in sync. When you resume, resume the replay.

  • Pause - Press button.f1_replay_pause or pause media_player.f1_replay_player
  • Resume - Press button.f1_replay_play or play media_player.f1_replay_player
  • Back 30 seconds - Press button.f1_replay_back_30 to move replay back 30 seconds
  • Forward 30 seconds - Press button.f1_replay_forward_30 to move replay forward 30 seconds
  • Stop - Press button.f1_replay_stop to end playback and return to idle

Replay Catch-Up

Experimental feature

The replay catch-up controls in Replay Mode are experimental.

You can now move replay backward or forward in fixed 30-second steps with Back 30 seconds and Forward 30 seconds. This is an early version that is being tested in real setups, so more refinement may still be needed in future updates.

The Version 1 replay catch-up controls are designed to help you manually line up Replay Mode with your broadcaster when the video is ahead or behind.

How the 30-second buttons work

When you press Forward 30 seconds, the integration does not simply skip to a new position and ignore what happened in between. It quickly replays the events inside that 30-second window first, then continues from the new position.

That means important state changes still land correctly. If a red flag, Race Control update, session clock change, or other tracked event happens inside those 30 seconds, the related entities still end up in the right state after the jump.

When you press Back 30 seconds, Replay Mode rebuilds the replay state from the selected replay start point and then replays forward to the new position.

What to expect in Version 1

  • Catch-up uses fixed 30-second steps only
  • There is no free drag-to-seek slider yet
  • The feature is intended to make manual catch-up simpler, not to guarantee perfect sync with every broadcaster
  • Rewinding can replay the same historical event again, which means automations and notifications may trigger again by design

Best way to use it

If your TV or streaming replay is slightly out of sync, pause Replay Mode and use the 30-second buttons until the on-screen action matches your Home Assistant entities again. A practical reference point is the session clock, track status, or the latest Race Control message.

info

This feature is experimental. Real-world feedback will be used to improve the behavior, controls, and timing in later updates.


Replay Catch-Up

Experimental feature

The replay catch-up controls in Replay Mode are experimental.

You can now move replay backward or forward in fixed 30-second steps with Back 30 seconds and Forward 30 seconds. This is an early version that is being tested in real setups, so more refinement may still be needed in future updates.

The Version 1 replay catch-up controls are designed to help you manually line up Replay Mode with your broadcaster when the video is ahead or behind.

How the 30-second buttons work

When you press Forward 30 seconds, the integration does not simply skip to a new position and ignore what happened in between. It quickly replays the events inside that 30-second window first, then continues from the new position.

That means important state changes still land correctly. If a red flag, Race Control update, session clock change, or other tracked event happens inside those 30 seconds, the related entities still end up in the right state after the jump.

When you press Back 30 seconds, Replay Mode rebuilds the replay state from the selected replay start point and then replays forward to the new position.

What to expect in Version 1

  • Catch-up uses fixed 30-second steps only
  • There is no free drag-to-seek slider yet
  • The feature is intended to make manual catch-up simpler, not to guarantee perfect sync with every broadcaster
  • Rewinding can replay the same historical event again, which means automations and notifications may trigger again by design

Best way to use it

If your TV or streaming replay is slightly out of sync, pause Replay Mode and use the 30-second buttons until the on-screen action matches your Home Assistant entities again. A practical reference point is the session clock, track status, or the latest Race Control message.

info

This feature is experimental. Real-world feedback will be used to improve the behavior, controls, and timing in later updates.


Media Player Entity

The media_player.f1_replay_player entity provides standard media player controls for replay.

State (enum)

  • One of: idle, buffering, playing, paused

Features

  • Play, pause, and stop controls
  • Position and duration tracking
  • Works with any media player card or remote integration

Attributes

AttributeTypeDescription
media_titlestringName of the selected session
media_positionnumberCurrent position in seconds
media_durationnumberTotal duration in seconds
replay_statestringReplay state (idle, selected, loading, ready, playing, paused, seeking)
selected_sessionstringName of the selected session
selected_session_idstringInternal session identifier (best effort)
playback_position_snumberCurrent position in seconds
playback_remaining_snumberRemaining time in seconds
playback_total_snumberTotal playback duration in seconds
session_start_offset_snumberStart offset in seconds from the underlying session archive (best effort)

Replay Status Sensor

The sensor.f1_replay_status entity tracks the current state and provides detailed attributes.

State (enum)

  • One of: idle, selected, loading, ready, playing, paused, seeking

Attributes

AttributeTypeDescription
selected_sessionstringName of the selected session
download_progressnumberDownload progress percentage (0–100)
download_errorstringError message if download failed
playback_position_snumberCurrent playback position in seconds
playback_position_formattedstringCurrent position as HH:MM:SS
playback_total_snumberTotal playback duration in seconds
playback_total_formattedstringTotal duration as HH:MM:SS
session_start_offset_snumberStart offset in seconds from the underlying session archive (best effort)
pausedbooleanTrue when playback is paused
sessions_availablenumberNumber of sessions available for the selected year
selected_yearnumberCurrently selected year
index_yearnumberYear that the session index was loaded from (best effort)
index_statusstringIndex status such as ok, no_data, or error (best effort)
index_errorstringError details when index fetch fails (best effort)

Example: Sync with Apple TV

This automation keeps replay in sync with your Apple TV. When you pause the Apple TV, the replay pauses. When you play, it resumes.

automation:
- alias: "Pause F1 replay when Apple TV pauses"
trigger:
- platform: state
entity_id: media_player.apple_tv
to: "paused"
condition:
- condition: state
entity_id: media_player.f1_replay_player
state: "playing"
action:
- service: media_player.media_pause
target:
entity_id: media_player.f1_replay_player

- alias: "Resume F1 replay when Apple TV plays"
trigger:
- platform: state
entity_id: media_player.apple_tv
to: "playing"
condition:
- condition: state
entity_id: media_player.f1_replay_player
state: "paused"
action:
- service: media_player.media_play
target:
entity_id: media_player.f1_replay_player

Replace media_player.apple_tv with your actual media player entity. This works with any media player that reports play and pause states.


Limitations

  • While replay is active, the integration does not receive live data. Stop the replay to return to live mode.
  • The live delay calibration feature is disabled during replay.
  • The experimental catch-up controls currently support fixed 30-second jumps only.
  • Rewinding can replay historical events again, so replay-driven automations and notifications may run again.
  • Replay Mode does not protect you from spoilers on its own. Use No Spoiler Mode to keep your dashboard frozen until you are ready to watch.