Playfff is the middleware to deliver recommendations for Play SRG mobile applications.
Since July 2018, Play Android (2.0.207 and more) and Play iOS (2.8.3-272 and more) applications currently use this recommendation service.
The API doesn't not support paginations, therefore mobile applications didn't implement pagination. The media recommendation list must have at least 49 items, the 50th is the requested media, put on the first position of the list. If there is no recommended media, the returned list is empty.
By default, here are the used recommendation engines (RE). RTS_RECOMMENDATION_USED
and SRF_RECOMMENDATION_USED
environment variables can fallback to default Pfff RE recommendation engine.
continuousPlayback
is used to display one proposition, with a count down and an autoplay.relatedContent
is used to display some propositions in a swimlane or a grid, without an autoplay.
BU Content | Continuous playback | Related content |
---|---|---|
RSI audios | Pfff RE | Pfff RE |
RSI videos | Pfff RE | Pfff RE |
RTR audios | Pfff RE | Pfff RE |
RTR videos | Pfff RE | Pfff RE |
RTS audios | Pfff RE | Pfff RE |
RTS videos | RTS RE | RTS RE |
SRF audios | Pfff RE | SRF RE |
SRF videos | Pfff RE | SRF RE |
SWI videos | Pfff RE | Pfff RE |
Event videos | N/A | N/A |
Swisstxt videos | Pfff RE | Pfff RE |
- For RTS videos, it can ask
rts-datalab.azure-api
recommendationcontinuous_playback_endscreen
service, without personalization.
- For SRF videos and SRF audios, it can ask
IL-MediaList
recommendationRecommended-byUrn
service, without personalization.
- For RSI, RTR, RTS, SRF, SWI on demand videos and RSI, RTR, RTS, SRF on demand audios, it can ask
Playfff
recommendation. - Based on IL requests, without personalization. Here is how it works:
- Get
IL-Media
. It returns an empty list if it's aLIVESTREAM
or aSCHEDULED_LIVESTREAM
. - Get
IL-EpisodeComposition
with last 100 episodes. Sort episodes with a published date ascending order, then episode ascending order if same published date. It's assumed that clips are ascendant sorting. - Determine if the media is a full length or a clip.
- Separate in a full length list and a clip (audio only) list.
- Get the requested media position in the related list. Split oldests and newests.
- Recommendation list:
- Newest medias in the date ascending order.
- Then (
ASCENDING_EPISODES_MAX
value is set on the server, default is 25):- If more than
ASCENDING_EPISODES_MAX
episodes exists, oldest medias in date descending order. - Else (show has as many or fewer than
ASCENDING_EPISODES_MAX
episodes), oldest medias in the date ascending order.
- If more than
- Get
- It can get
IL-MediaComposition
if the media urn isn't found, and has not theCLIP
type. - It does not return clips if
VIDEO
media type andstandalone == false
. - If clips are not in
IL-EpisodeComposition
, it fallbacks to full lengths.
- For RSI, RTS, SRF swisstxt videos, it can ask
Playfff
recommendation. - Based on IL requests, without personalization. Here is how it works:
- Get
IL-MediaList
from Liceventer for scheduled livestreams. Filter only current playable livestreams. - Get
IL-MediaList
from Liceventer for episodes. Filter only current playable replay content. - First livestream content, then replay content are returned.
- Get
- The
standalone == false
parameter is ignored.
- No recommendation provided. It returns an empty list.
The API doesn't not support paginations, therefore mobile applications didn't implement pagination. The media recommendation list must have at least 50 items.
- With and without an
userId
, it asksrts-datalab.azure-api
recommendationplay_home_personal_rec
service.
- Nothing implemented.