Channel Feed

Channel Feed displays a predefined collection of videos from a specific channel. Users will only see videos that are part of the channel, making it ideal for brand-specific or curated content.

Overview

A channel can be created in two ways:

  1. Creator Channel - If you have your own content (you are a creator), there's automatically a channel associated with your creator account on Firework. All videos you upload form the Channel Feed.

  2. Curated Channel - You don't need to be a creator to have a channel. You can create a channel and repost/add videos from the Firework content library.

Content Ordering

Videos in a Channel Feed are served by Firework's recommendation engine. The engine determines the order based on what it predicts users are most likely to engage with, rather than serving videos in a fixed order.

Usage

Required Parameter

  • channelId - Your encoded channel identifier (required, non-empty)

XML Configuration

<com.firework.videofeed.FwVideoFeedView
    android:id="@+id/videoFeedView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

Programmatic Configuration

val viewOptions = viewOptions {
    baseOptions {
        feedResource(
            FeedResource.Channel(channelId = "Your_Encoded_Channel_Id")
        )
    }
    layoutOptions {
        feedLayout(FeedLayout.HORIZONTAL)
    }
}

val videoFeedView = findViewById<FwVideoFeedView>(R.id.videoFeedView)
videoFeedView.init(viewOptions)

Complete Example

class BrandChannelActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_brand_channel)
        
        val videoFeedView = findViewById<FwVideoFeedView>(R.id.videoFeedView)
        
        val viewOptions = viewOptions {
            baseOptions {
                feedResource(
                    FeedResource.Channel(channelId = "abc123xyz")
                )
            }
            layoutOptions {
                feedLayout(FeedLayout.GRID)
                columnCount(2)
            }
            titleOptions {
                showFeedTitle(true)
            }
        }
        
        videoFeedView.init(viewOptions)
    }
}

Dynamic Channel Loading

class ChannelListActivity : AppCompatActivity() {
    private fun loadChannel(channelId: String) {
        val videoFeedView = findViewById<FwVideoFeedView>(R.id.videoFeedView)
        
        val viewOptions = viewOptions {
            baseOptions {
                feedResource(
                    FeedResource.Channel(channelId = channelId)
                )
            }
            layoutOptions {
                feedLayout(FeedLayout.VERTICAL)
            }
        }
        
        videoFeedView.init(viewOptions)
    }
}

Important Notes

  • Encoded IDs Required - Channel IDs must be encoded values provided by Firework

  • Empty String Exception - Providing an empty channelId will throw an exception

  • Content Scope - Only videos within the channel are displayed

  • Smart Ordering - Videos are ordered by recommendation algorithm, not chronologically

  • Channel Management - Channels can be managed through the Firework CMS

Tip: Refer to the Firework documentation or contact your partner success team to learn how to find your encoded channel ID.

See Also

Last updated