# 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](https://docs.firework.com/firework-for-developers/android-sdk/integration-guide/feed-sources/discovery-feed)

***

### 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](https://docs.firework.com/firework-for-developers/android-sdk/integration-guide/feed-sources/channel-feed)

***

### 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](https://docs.firework.com/firework-for-developers/android-sdk/integration-guide/feed-sources/playlist-feed)

***

### 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](https://docs.firework.com/firework-for-developers/android-sdk/integration-guide/feed-sources/hashtag-playlist-feed)

***

### 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](https://docs.firework.com/firework-for-developers/android-sdk/integration-guide/feed-sources/sku-feed)

***

### 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](https://docs.firework.com/firework-for-developers/android-sdk/integration-guide/feed-sources/channel-video-feed)

***

### 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](https://docs.firework.com/firework-for-developers/android-sdk/integration-guide/feed-sources/single-content-feed)

***

### 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](https://docs.firework.com/firework-for-developers/android-sdk/integration-guide/feed-sources/dynamic-content-feed)

***

### 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](https://docs.firework.com/firework-for-developers/android-sdk/integration-guide/feed-sources/share-url-feed)

***

## 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](https://docs.firework.com/firework-for-developers/android-sdk/integration-guide/configuration/base-options) - Detailed feed resource configuration
* [FwVideoFeedView](https://docs.firework.com/firework-for-developers/android-sdk/integration-guide/configure-video-feed) - Video feed widget
* [FireworkSdk.startPlayer](https://docs.firework.com/firework-for-developers/android-sdk/integration-guide/fullscreen-player) - Fullscreen player
* [ViewOptions Overview](https://docs.firework.com/firework-for-developers/android-sdk/integration-guide/configuration) - Complete configuration system
