What it does
FCast is an open protocol for sending audio and video from one device to another — the same job as Chromecast or AirPlay, without the closed ecosystem. Anyone can write a sender or a receiver.
This add-on turns Kodi into an FCast receiver. It listens on TCP port 46899
and advertises itself over mDNS as _fcast._tcp, so senders on the same network
find it by themselves. Senders that cannot discover it can be pointed at the box by IP address.
-
Video and audio
DASH, HLS and direct streams, with the HTTP headers the sender attaches — so streams from CDNs that check
RefererorUser-Agentplay. -
Photos
Cast pictures go to Kodi's picture viewer, downloaded before they are shown so the screen never goes black waiting, and they hold off the screensaver while they are up.
-
Queues that move
The receiver reports each item as it finishes, so a sender's own queue advances. It also walks playlists handed to it whole, pictures included.
-
Two-way control
Volume, seek, pause and playback speed in both directions, and several senders stay in step with each other through
PlayUpdate.
Tested senders. Grayjay, the official FCast senders, and CastLab for Android (beta — see Troubleshooting).
Install
You need Kodi 21 (Omega) or newer, and
inputstream.adaptive 21.5.9 or newer for HLS and DASH streams.
Which version will I get? The repository serves the current release, and everything described above is in it. Install the repository rather than a zip and Kodi keeps the add-on up to date on its own, without your having to come back here.
From the add-on repository recommended
Installing the repository once lets Kodi update the receiver on its own, on every device.
-
In Kodi, allow add-ons from unknown sources:
Settings → System → Add-ons → Unknown sources -
Download the repository zip:
repository.fcast.ozankiratli-1.0.0.zip Downloading on the Kodi box itself? Kodi's own file browser can reach this URL directly in step 3. - Settings → Add-ons → Install from zip file, and pick that zip
- Settings → Add-ons → Install from repository → FCast Receiver Repository → Services → FCast Receiver
That is it — the service starts with Kodi. Kodi then checks for new versions on its own schedule, as long as Settings → System → Add-ons → Updates is set to Install updates automatically.
From a zip
Grab the add-on zip from the releases page and use Settings → Add-ons → Install from zip file. Updates are then yours to do by hand.
Already running a zip install? A zip install has no repository behind it, so Kodi has nothing to check for new versions. Install the repository as above and Kodi picks up newer releases for the add-on you already have — there is no need to uninstall it first.
Test builds
Bigger changes go to testers first, as a build marked pre-release on the releases page. There may or may not be one at any given moment. The repository always serves the current release, and that is what you get unless you go looking for the other thing.
A test build is never published to the add-on repository, so no installed Kodi is offered one as an update — you install the zip by hand with Settings → Add-ons → Install from zip file, over whatever you already have. There is nothing to uninstall first.
Their version carries a ~, as in 1.1.0~beta1, which Kodi sorts
below the release that follows it. So the real release supersedes a test build on
its own, through the repository, and you are not left stranded on a version that outranks
it.
Anything odd in one — a sender that will not connect, a photo that never appears, a queue that stops — is worth an issue on GitHub, with the log lines from Reading the log.
Manual
Casting to Kodi
Leave Kodi running. In your sender — Grayjay, an official FCast sender, CastLab — open the cast menu and the Kodi box appears in the device list, named after the machine. Pick it, and what you were watching starts on the television.
Nothing found in the list? The sender is not seeing the mDNS advertisement. Every sender can
also connect straight to an address: enter the Kodi machine's IP and port 46899
by hand. See Discovery below.
One Kodi setting to decide about
The receiver needs nothing changed in Kodi to work. There is one setting worth knowing about, because it is a trade-off rather than an improvement — Settings → Player → Videos → Sync playback to display, which Kodi leaves off:
- Off — audio and video stay in step for the length of a film. Playback speed sent from a sender does nothing.
- On — playback speed from a sender works. Audio and video drift apart over a long playback, often far enough to notice somewhere after the forty minute mark.
The drift is Kodi's doing with that setting rather than the receiver's, and nothing else in the add-on depends on it. Leave it off unless you change playback speed from your phone.
Add-on settings
Settings → Add-ons → My add-ons → Services → FCast Receiver → Configure
- Show on-screen notifications
- The messages shown when a sender connects, disconnects, or starts something playing. Turn them off to keep the screen clear; errors are always shown regardless.
- Download pictures before showing them
- Kodi's picture viewer clears the screen the moment it is told to show something else, so casting a second photo used to leave the screen black for the length of the download. With this on, the picture already up stays there while the next one is fetched, and they swap when it is ready. The last dozen pictures are kept, so stepping back through a slideshow, or casting the same photo twice, downloads nothing again. Turn it off to hand the URL straight to Kodi.
- Keep the screen awake while a picture is showing
- Kodi treats a single picture as an idle screen rather than as something playing, so its screensaver starts up behind the picture, cannot come to the front past the picture viewer, and on some skins that refusal is audible. With this on, a picture on screen counts as the box being in use. Turn it off to let the screen sleep over a cast picture.
- Picture duration (seconds)
-
How long a picture in a cast playlist stays on screen before the queue moves on.
A sender that asks for a duration of its own gets it, unless
Ignore the duration the sender asks for is set. Zero leaves each picture up until the
sender moves on.
A picture cast on its own is never closed automatically, whatever this is set to. It stays up until a sender stops it, or you close it from Kodi.
Reading the log
Connections and failures are logged. To see everything the add-on has to say, turn on Settings → System → Logging → Enable debug logging, then on the Kodi machine:
grep "FCast Receiver:" ~/.kodi/temp/kodi.log
On LibreELEC and CoreELEC the log lives at /storage/.kodi/temp/kodi.log.
Troubleshooting
The Kodi box does not appear in my sender's device list
Discovery is done over mDNS, through Avahi, so the receiver only advertises itself on Linux
hosts — LibreELEC, CoreELEC, Raspbian, Debian and friends. On Windows, macOS and Android the
receiver works, but senders have to be pointed at it by IP address and port
46899.
On Linux, check that the sender and the Kodi box are on the same network segment — many routers keep a guest network, or a wireless band with client isolation, away from the rest of the LAN. From another machine on the network:
avahi-browse -rt _fcast._tcp
If the service is not listed there, the log lines from Reading the log say which discovery backend was tried and why it failed.
Audio drifts out of sync during long playback
After a long pause, or roughly forty minutes in, the audio can begin skipping seconds while
the video speeds up to catch it. This is an inputstream.adaptive problem rather
than a receiver one: it reproduces with any add-on playing adaptive streams, whether or not
FCast is involved (xbmc/xbmc#22625).
There is no workaround available from this add-on.
A CastLab photo album does not advance by itself
CastLab keeps its queue on the phone and sends one photo at a time, so each arrives as a single cast rather than as a playlist. Picture duration does not apply to those, by design: a photo cast on its own stays up until something dismisses it. Use CastLab's own autoplay, or a sender that sends a real playlist.
I cannot reach the Kodi menus while a photo is on screen
Kodi's picture viewer is a modal dialog and draws above everything, Settings included, so nothing else is reachable while a photo is up. This is Kodi's own behaviour — the official FCast receiver behaves the same way. Stop the cast from the sender, or close the picture from Kodi, and the interface comes back.
Audio and video drift apart during a long film
Turn Settings → Player → Videos → Sync playback to display off. With that setting on, the audio can start skipping seconds while the video speeds up to catch up, usually somewhere after the forty minute mark; with it off, playback stays in step. It happens with any add-on playing adaptive streams, whether or not FCast is involved, and the receiver does not need the setting for anything but speed control.
Playback speed from the sender does nothing
Speed control needs Settings → Player → Videos → Sync playback to display turned on. Kodi supports speeds between 0.8× and 1.5×; anything a sender asks for outside that range is clamped to the nearest end rather than rejected.
Turning it on has a cost of its own — see audio and video drifting apart above. Nothing else about the receiver needs it, so if you do not change speed from your phone, leave the setting alone.
Something else? Open an issue on GitHub, with the version you are running and the log lines from Reading the log.