A Home Assistant custom integration that lets you cast media to multiple Google Cast / Chromecast devices simultaneously, with playback synchronization.
- Cast to multiple devices at once — play the same media on all selected Cast devices simultaneously
- YouTube support — paste a YouTube URL and it plays on all devices via the YouTube Cast app
- Local media & cameras — browse and cast HA local media files and camera feeds
- Playback sync — periodic position correction keeps all devices aligned (configurable interval and thresholds)
- Playlist management — queue multiple items with single play, repeat, and shuffle modes
- Auto-retry — if a device fails to start, the integration retries for up to 2 minutes
- Auto-reconnect — disconnected devices are re-discovered every 5 minutes
- Overlapping groups — multiple groups can share devices; casting to one group transfers ownership of shared devices
- Full HA integration — exposed as a
media_playerentity with play, pause, stop, seek, volume, next/previous track
- Open HACS in Home Assistant
- Go to Integrations
- Click the + button and search for MultiCast
- Download and restart Home Assistant
- Copy the
custom_components/multicastfolder to your HAconfig/custom_components/directory - Restart Home Assistant
- Go to Settings → Integrations → Add Integration
- Search for MultiCast
- Enter a name for your cast group
- Select 2 or more Cast devices from the discovered list
- Configure sync options (optional)
| Service | Description |
|---|---|
multicast.play_media |
Play a URL or YouTube link on the group |
multicast.add_to_playlist |
Add media URL to the playlist queue |
multicast.clear_playlist |
Clear the playlist |
multicast.set_playlist_mode |
Set mode: single, repeat, or shuffle |
multicast.sync_now |
Force immediate position sync |
service: multicast.play_media
data:
media_url: "https://www.youtube.com/watch?v=dQw4w9WgXcQ"service: multicast.play_media
data:
media_url: "/media/local/my_video.mp4"service: multicast.play_media
data:
media_url: "https://example.com/song.mp3"
entity_id: "media_player.multicast_living_room"After setup, click Configure on the integration to adjust:
- Enable Sync — toggle position synchronization on/off
- Sync Interval — how often to check positions (5–60 seconds)
- Soft Sync Threshold — drift before seeking individual devices (0.5–5.0s)
- Hard Sync Threshold — drift before pause-seek-play all devices (2.0–30.0s)
- Uses
pychromecastto maintain connections to Cast devices - Reads device states from HA's built-in Cast integration (reliable, no duplicate connections)
- Sends play/pause/seek/stop commands in parallel via
asyncio.gather() - Position sync uses median position as reference to correct drifting devices
MIT