# Feed Sources

The Firework Android SDK provides multiple types of feed sources (`FeedResource`) to display different video content in your application. Each feed type serves specific use cases and can be configured through `ViewOptions`.

## Overview

Feed sources determine which videos are displayed in your video widgets. You configure the feed source using the `feedResource` property in `BaseOption`.

```kotlin
val viewOptions = viewOptions {
    baseOptions {
        feedResource(FeedResource.Discovery)
    }
}
```

## Available Feed Types

### Discovery Feed

Curated content from the Firework platform that learns user preferences over time.

**Use Cases:** Homepage, explore section, general content discovery

👉 [Learn more about Discovery Feed](/firework-for-developers/android-sdk/integration-guide/feed-sources/discovery-feed.md)

***

### Channel Feed

All videos from a specific channel, either your own content or curated collections.

**Use Cases:** Brand-specific content, creator channels, category videos

👉 [Learn more about Channel Feed](/firework-for-developers/android-sdk/integration-guide/feed-sources/channel-feed.md)

***

### Playlist Feed

Videos from a specific playlist within a channel for curated collections.

**Use Cases:** Featured content, topic-specific playlists, seasonal collections

👉 [Learn more about Playlist Feed](/firework-for-developers/android-sdk/integration-guide/feed-sources/playlist-feed.md)

***

### Hashtag Playlist Feed

Videos from a channel filtered by hashtag expressions for targeted content.

**Use Cases:** Campaign videos, trend-based feeds, topic-specific content

👉 [Learn more about Hashtag Playlist Feed](/firework-for-developers/android-sdk/integration-guide/feed-sources/hashtag-playlist-feed.md)

***

### SKU Feed

Videos associated with a single or multiple product SKUs.

**Use Cases:** Product detail pages, shopping experiences, product videos

👉 [Learn more about SKU Feed](/firework-for-developers/android-sdk/integration-guide/feed-sources/sku-feed.md)

***

### Channel Video Feed

Videos from a specific channel filtered by video IDs for precise content selection.

**Use Cases:** Curated video collections, specific video showcases, editorial picks

👉 [Learn more about Channel Video Feed](/firework-for-developers/android-sdk/integration-guide/feed-sources/channel-video-feed.md)

***

### Single Content Feed

Display a single specific video or livestream.

**Use Cases:** Featured video, video details page, direct video links

👉 [Learn more about Single Content Feed](/firework-for-developers/android-sdk/integration-guide/feed-sources/single-content-feed.md)

***

### Dynamic Content Feed

Videos based on dynamic parameters for personalized content targeting.

**Use Cases:** Personalized content, user segment targeting, A/B testing

👉 [Learn more about Dynamic Content Feed](/firework-for-developers/android-sdk/integration-guide/feed-sources/dynamic-content-feed.md)

***

### Share URL Feed

Content from a Firework share URL with customizable domain.

**Use Cases:** Deep link handling, social media shares, branded URLs

👉 [Learn more about Share URL Feed](/firework-for-developers/android-sdk/integration-guide/feed-sources/share-url-feed.md)

***

## Quick Comparison

| Feed Type        | Required Parameters                    | Personalization | Use Case                  |
| ---------------- | -------------------------------------- | --------------- | ------------------------- |
| Discovery        | None                                   | ✅ High          | General content discovery |
| Channel          | `channelId`                            | ⚡ Medium        | Brand/creator specific    |
| Playlist         | `channelId`, `playlistId`              | ❌ None          | Curated collections       |
| Hashtag Playlist | `channelId`, `hashtagFilterExpression` | ❌ None          | Filtered content          |
| SKU              | `channelId`, `productIds`              | ❌ None          | Product videos            |
| Channel Video    | `channelId`, `videoIds`                | ❌ None          | Specific video selection  |
| Single Content   | `contentId`                            | ❌ None          | Specific video            |
| Dynamic Content  | `channelId`, `parameters`              | ✅ High          | Personalized targeting    |
| Share URL        | `url`                                  | ❌ None          | Shared links              |

## Configuration

All feed sources are configured through `BaseOption` in `ViewOptions`:

```kotlin
val viewOptions = viewOptions {
    baseOptions {
        feedResource(/* Your FeedResource here */)
    }
    // Other configurations...
}
```

### With FwVideoFeedView

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

### With Fullscreen Player

```kotlin
FireworkSdk.startPlayer(
    activity = this,
    viewOptions = viewOptions
)
```

### With FwStoryBlockView

```kotlin
val storyBlockView = findViewById<FwStoryBlockView>(R.id.storyBlockView)
storyBlockView.init(viewOptions)
```

## Important Notes

* All channel IDs, playlist IDs, and content IDs must be **encoded values** provided by Firework
* Empty strings will throw an exception during initialization
* Some feed types require specific backend configuration
* Feed resources are serializable and can be passed between activities

## See Also

* [BaseOption Configuration](/firework-for-developers/android-sdk/integration-guide/configuration/base-options.md) - Detailed feed resource configuration
* [FwVideoFeedView](/firework-for-developers/android-sdk/integration-guide/configure-video-feed.md) - Video feed widget
* [FireworkSdk.startPlayer](/firework-for-developers/android-sdk/integration-guide/fullscreen-player.md) - Fullscreen player
* [ViewOptions Overview](/firework-for-developers/android-sdk/integration-guide/configuration.md) - Complete configuration system


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.firework.com/firework-for-developers/android-sdk/integration-guide/feed-sources.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
