# Short Videos Feed

> Source: https://docs.recombee.com/recipes/video/feed/swiping-feed

> For the complete documentation index, see [llms.txt](/llms.txt).

**Table of contents**

* [Introduction](#introduction)
* [Sending Interactions](#sending-interactions)
* [Scenario Setup](#scenario-setup)
* [Logic](#logic)  
   * [Content Freshness](#content-freshness)  
   * [Optimization Weights](#optimization-weights)
* [Filters](#filters)
* [Requesting Recommendations](#requesting-recommendations)

# Short Videos Feed

![](/img/recipes/video/short-videos-feed.png) 

## Introduction

A short videos feed (TikTok / Instagram Reels / YouTube Shorts–style) is a continuously personalized stream of bite-sized videos, where each item is selected and ranked in real time to match the user’s immediate interests and engagement patterns.

The feed is consumed one video at a time, with each next recommendation optimized for relevance and engagement.

## Sending Interactions

To achieve high-quality real-time personalization, it is essential to continuously send user interactions as they consume the feed.

* Send [View Portions](/api#set-view-portion) for consumed content, with the [autoPresented parameter](/api#set-view-portion-param-autoPresented) set to `true` and [timeSpent](/api#set-view-portion-param-timeSpent) specified.  
   * Interactions should be sent periodically (e.g., every few seconds)  
   * For short videos, the `portion` parameter can be set to `0` at the start of playback and to `1` afterwards
* Send likes and dislikes as +1 / -1 [Ratings](/api#add-rating)

These signals allow Recombee to quickly adapt the feed to the user’s current preferences.

## Scenario Setup

In the Recombee Admin UI, navigate to the **[Scenarios](/scenarios)** section and choose **Create Scenario**.

1. Enter a **Scenario ID**, such as _"short-videos-feed"_
2. Choose **Recommendation type** \- _[Items to User](/api#recommend-items-to-user)_

![Admin UI - Scenario Setup](/img/recipes/video/short-videos-feed-create-scenario.png)

## Logic

The [Logic](/recommendation_logics) defines the behavior of the recommendation engine.

* Choose the [**recombee:swiping-feed**](/recommendation_logics#recombee-swiping-feed) Logic type from the **Default** models

This Logic is designed for infinite swiping feed experiences, where users continuously browse short-form content and can express feedback through likes or dislikes.

### Content Freshness

The Logic can prioritize newer content using the following parameter:

* `creationTimestamp` \- property representing the creation time of an item, allowing the Logic to evaluate and boost more recent content

### Optimization Weights

Recommendations are optimized in real time based on a configurable combination of user engagement signals, such as likes, number of viewed items, purchases, and time spent watching content.

You can control the importance of these signals using the following parameters:

* `timeSpentWeight` \- weight controlling the importance of [time spent](/api#set-view-portion-param-timeSpent) watching content
* `likeWeight` \- weight controlling the importance of user likes, sent as positive [Ratings](/api#add-rating)
* `itemsShownWeight` \- weight controlling the importance of maximizing the number of items consumed by the user
* `purchaseWeight` \- weight controlling the importance of maximizing the number of [Purchases](/api#add-purchase) (of e.g., premium gated content)

![Admin UI - Logic](/img/recipes/video/short-videos-feed-logic.png)

## Filters

Available Assets (Global Settings)

You always want to recommend only movies, series, and episodes that are currently available to watch for your users. Therefore you need to apply a [**Filter**](/scenarios#filters) rule to allow only such assets.

As it would be tedious and prone to error to add this rule to all the Scenarios, this rule shall be added to the [**Global Settings**](/scenarios#global-settings), so it is always applied everywhere.

**The particular filter depends on how you specify such assets in your catalog:**

* If you have a **boolean property** that marks the asset as available you can use the predefined _Available items \[boolean\]_ rule.
* If you have a **timestamp property** that specifies when the asset is published (becomes available) you can use the predefined _Published items rule_.
* Or if you have a **licensing window (start date, end date)** you can use the predefined _Items within their licensing window_ rule.
* In every other case, you can create a [**custom filter rule**](/reql) to allow only the available assets according to your own logic.

![Admin UI - Global Settings - Filter](/img/recipes/video/filter.png)

## Requesting Recommendations

There are three ways to get recommendations.

1. **[No-Code Widget](/no-code-widgets)**  
   * create an _Infinite Feed_ No-Code Widget using the visual editor in the Admin UI.
2. **[Widget SDKs](/widget-sdks)**  
   * use the SDK for a [Feed](/widget-sdks#feed) to display the recommendations in the design of your choice.  
   * use the [Recommend Items to User endpoint](/api#recommend-items-to-user) when initializing the widget.
3. **[API SDK](/api_clients)**  
   * request the [Recommend Items to User endpoint](/api#recommend-items-to-user) of the Recombee API using an SDK of your choice.  
   * as the user continues browsing, use [Recommend Next Items](/api#recommend-next-items) to retrieve the next batch of content

For more information navigate to the Integration tab of the Scenario in the Admin UI.