Channel Creation Guide - roto31/EXStreamTV GitHub Wiki
Channel Creation Guide
A comprehensive guide to creating TV channels in EXStreamTV, from the simplest setup to advanced multi-block scheduled programming.
Table of Contents
- Introduction
- Quick Start: Your First Channel in 5 Minutes
- Method 1: Basic Manual Channel
- Method 2: AI-Powered Channel Creation
- Method 3: Scheduled Channel
- Method 4: Advanced Multi-Block Channel
- Method 5: Import and Customize
- Best Practices
- Troubleshooting
Introduction
What is a Channel in EXStreamTV?
A channel in EXStreamTV represents a continuous stream of video content, similar to a traditional TV channel. Each channel consists of:
- Content Source - Where your media comes from (playlists, collections, or individual items)
- Schedule (optional) - Rules for when specific content plays
- Playout - The active playback configuration
- Branding (optional) - Logos, watermarks, and overlays
Channel Components
Channel
├── Basic Info (name, number, logo, group)
├── Content
│ ├── Playlist (ordered list of items)
│ └── Collection (filtered set of media)
├── Schedule (optional)
│ ├── Time Blocks
│ ├── Recurring Patterns
│ └── Filler/Commercials
├── Playout
│ ├── Mode (continuous, scheduled, loop)
│ └── Anchor Points
└── Deco (optional)
├── Watermarks
└── Bumpers
Choosing the Right Method
| Method | Complexity | Best For |
|---|---|---|
| Quick Start | Beginner | Single playlist, continuous playback |
| Basic Manual | Beginner | Simple channel with custom settings |
| AI-Powered | Intermediate | Complex themed channels, scheduling help |
| Scheduled | Intermediate | Time-based programming |
| Multi-Block | Advanced | Full broadcast-style scheduling |
| Import | Varies | Migration from other platforms |
Quick Start: Your First Channel in 5 Minutes
Get a channel up and running as fast as possible.
Animated walkthrough of the basic channel creation process
Prerequisites
- At least one media source connected (Plex, Jellyfin, or local folder)
- Some media scanned into the system
Step-by-Step
Step 1: Navigate to Channels
Go to Channels > Manage Channels in the sidebar.
The channels management page showing the toolbar with Add Channel and AI Create buttons
Step 2: Click Add Channel
Click the Add Channel button in the toolbar. You'll see both "Add Channel" for manual creation and "AI Create" for guided setup.
The Create Channel dialog with empty form fields
Step 3: Fill Basic Information
Example: Creating "Classic Movies" channel (101) in the Entertainment group
- Channel Number: Enter a number (e.g., "101")
- Channel Name: Give it a name (e.g., "Movies")
- Group: Optional category (e.g., "Entertainment")
Step 4: Select Content
Under "Content Source," choose:
- Playlist: Select an existing playlist, OR
- Collection: Choose a collection, OR
- Quick Setup: The system will create a playlist for you
Step 5: Save and Enable
- Click Save to create the channel
- Toggle the channel to Enabled
- Your channel is now streaming!
Test Your Channel
- Go to Player in the sidebar
- Select your new channel from the dropdown
- Press play to verify it works
Congratulations! You've created your first channel.
Method 1: Basic Manual Channel
For more control over channel settings while keeping things simple.
When to Use
- You want a single collection or playlist to play continuously
- No complex scheduling needed
- Simple 24/7 playback of similar content
Step-by-Step Guide
1. Prepare Your Content
Before creating the channel, organize your content:
- Go to Content > Playlists or Content > Collections
- Create a new playlist/collection if needed
- Add media items to your playlist
Tip: Playlists maintain order, collections are more dynamic.
2. Create the Channel
- Navigate to Channels > Manage Channels
- Click Add Channel
- Fill in the form:
| Field | Description | Example |
|---|---|---|
| Number | Unique channel number | 201 |
| Name | Display name | Classic Movies |
| Group | Category for organization | Movies |
| Logo | Upload or URL to channel logo | (optional) |
| Enabled | Whether channel is active | On |
3. Configure Content Source
- Playlist Mode: Choose an existing playlist for ordered playback
- Collection Mode: Select a collection for dynamic content
- Playback Order: Chronological, random, or shuffle
4. Set Playback Options
- Continuous: Plays forever, looping when content ends
- Keep Position: Remember where viewers left off
- Episode Tracking: For TV shows, track episode progression
5. Save and Test
- Click Save
- Enable the channel if not already enabled
- Go to Player and test playback
Best Practices for Basic Channels
- Name clearly: Use descriptive names like "80s Action Movies"
- Group logically: Use groups to organize similar channels
- Add a logo: Channels with logos look more professional
- Test playback: Always verify your channel works before sharing
Method 2: AI-Powered Channel Creation
Use the AI Channel Creator for guided setup with expert personas specialized in different content types.
Animated preview of the AI Channel Creator interface
When to Use
- You want guidance on channel setup
- Creating themed channels (e.g., "1970s Nostalgia")
- Need help with scheduling and commercial breaks
- Want best practices built-in
Accessing AI Create
- Go to Channels > AI Create Channel, OR
- Click AI Create in the channels toolbar, OR
- Use the AI Create quick action from the dashboard
The AI Channel Creator with expert persona selection
Choose from 6 expert personas, each specialized in different content types
Available Expert Personas
Choose from specialized AI experts for different content types:
| Persona | Specialty | Best For |
|---|---|---|
| Max Sterling | TV Programming Executive | Classic TV, scheduling, dayparts |
| Howard Kowalski | Sports Savant | Sports, classic games, documentaries |
| Steve Nakamura | Tech Savant | Technology, Apple, computing |
| Vincent & Clara | Movie Critics | Films, film history, directors |
| Professor Chen | Kids Programming | Children, Disney, animation |
| Dr. Eleanor Marsh | PBS Expert | Documentary, educational, PBS |
How It Works
You'll chat with your selected expert, who will:
- Asks questions about your channel concept
- Suggests scheduling approaches
- Recommends content organization
- Handles technical configuration
Example Conversation
You: "I want a 1970s and 1980s TV channel with commercials"
Max: "Ah, the golden age of television! Let me ask you a few questions:
- What's your content library situation? Do you have TV shows from Plex?
- Are you looking for a 24-hour schedule or specific dayparts?
- Should we include Saturday morning cartoons?
- Any particular genres you want to emphasize?"
You: "I have Plex with classic TV shows. I want 24-hour with Saturday cartoons. Primetime should be dramas and comedies."
Max: "Perfect! Here's how I'd structure this..."
The AI Process
- Describe Your Vision: Tell the AI what kind of channel you want
- Answer Questions: The AI asks clarifying questions
- Review Specification: See a preview of the channel structure
- Create Channel: Let the AI build everything for you
The right panel shows a live preview of your channel specification as you chat, updating in real-time as Max gathers information about your preferences.
AI-Created Components
The AI can automatically create:
- The channel with proper settings
- Smart collections for content filtering
- Schedules with daypart assignments
- Filler presets for commercials
- Playout configuration
Tips for AI Channel Creation
- Be specific about eras: "1970s-1980s" works better than "old"
- Describe your library: Tell the AI what content you have
- Mention preferences: Commercials, start times, special blocks
- Ask for suggestions: The AI knows classic TV programming patterns
Method 3: Scheduled Channel
Create channels with time-based programming.
Overview of the scheduling interface
When to Use
- Different content at different times of day
- Specific shows at specific times
- Weekly programming patterns
- More broadcast-like experience
Understanding Schedules
A schedule defines WHEN content plays:
Schedule
├── Monday-Friday
│ ├── 6:00 AM - Morning News
│ ├── 9:00 AM - Talk Shows
│ ├── 12:00 PM - Soap Operas
│ ├── 6:00 PM - Evening News
│ └── 8:00 PM - Primetime Dramas
└── Saturday
├── 8:00 AM - Cartoons
└── 8:00 PM - Movies
Step-by-Step
1. Create a Schedule
- Go to Scheduling > Schedules
- Click Add Schedule
- Give it a descriptive name (e.g., "Classic TV Daily Schedule")
The Schedules management page with Add Schedule button
The Create Schedule dialog with options for multi-part episodes and shuffle settings
2. Add Schedule Items
For each time slot:
- Click Add Item
- Set the Start Time
- Choose the Content Source (collection/playlist)
- Set Duration or let it auto-calculate
- Configure playback options
3. Configure Recurring Patterns
- Daily: Same schedule every day
- Weekdays: Monday-Friday only
- Weekends: Saturday-Sunday only
- Specific Days: Choose individual days
4. Create the Channel
- Go to Channels > Manage Channels
- Create a new channel
- Under Playout settings, select Scheduled Mode
- Choose your created schedule
5. Create a Playout
- Go to Scheduling > Playouts
- Click Create Playout
- Link your channel and schedule
- Set to Active
Schedule Tips
- Plan on paper first: Sketch your schedule before building
- Use collections: Easier to manage than individual items
- Buffer time: Add a few minutes between shows for flexibility
- Test transitions: Make sure shows switch correctly
Method 4: Advanced Multi-Block Channel
Full broadcast-style channel with blocks, filler, and branding.
When to Use
- Replicating traditional TV experience
- Complex programming with commercials
- Multiple themed blocks per day
- Professional presentation with branding
Architecture Overview
Channel: "Retro TV"
├── Schedule: "Retro TV Master Schedule"
│ ├── Morning Block
│ │ ├── 6:00 - Wake Up Cartoons
│ │ └── Commercial Break (Filler Preset A)
│ ├── Daytime Block
│ │ ├── 9:00 - Game Shows
│ │ ├── 12:00 - Soaps
│ │ └── Commercial Breaks (Filler Preset B)
│ └── Primetime Block
│ ├── 8:00 - Drama Hour
│ ├── 9:00 - Comedy Block
│ └── Commercial Breaks (Filler Preset C)
├── Filler Presets
│ ├── Preset A: Short breaks (30 sec)
│ ├── Preset B: Standard breaks (2 min)
│ └── Preset C: Long breaks (3 min)
└── Deco
├── Channel Watermark (logo)
└── Bumpers (station ID)
Building It Step by Step
Phase 1: Organize Your Content
-
Create Collections by genre and era:
- "70s-80s Cartoons"
- "Classic Game Shows"
- "Daytime Soaps"
- "Primetime Dramas"
- "Sitcoms"
-
Create a Filler Collection for commercials:
- Archive.org Prelinger collection
- Custom bumpers/promos
Phase 2: Create Programming Blocks
- Go to Scheduling > Blocks
- Create blocks for each daypart:
The Blocks management page for creating time-based programming blocks
Morning Cartoon Block
- Name: "Saturday Morning Cartoons"
- Duration: 4 hours
- Source: "70s-80s Cartoons" collection
- Shuffle: Yes
Primetime Drama Block
- Name: "Drama Hour"
- Duration: 1 hour
- Source: "Primetime Dramas" collection
- Shuffle: No (chronological)
Phase 3: Configure Filler Presets
- Go to Scheduling > Filler Presets
- Create presets for different contexts:
The Filler Presets page for configuring commercial breaks and filler content
Standard Commercial Break
- Duration: 2 minutes
- Frequency: Every 15 minutes
- Source: Filler collection
- Shuffle: Yes
Phase 4: Build the Schedule
- Go to Scheduling > Templates (optional: create reusable template)
The Templates page for creating reusable schedule patterns
- Go to Scheduling > Schedules
- Create master schedule
- Add blocks and filler:
6:00 AM - Morning Block
→ Insert Filler Preset: Short Breaks
9:00 AM - Daytime Block
→ Insert Filler Preset: Standard Breaks
8:00 PM - Primetime Block
→ Insert Filler Preset: Long Breaks
11:00 PM - Late Night
→ Movies with minimal breaks
Phase 5: Add Branding (Deco)
- Go to Scheduling > Deco
The Deco page for bumpers, station IDs, and promotional content
-
Create channel watermark:
- Upload logo image
- Position: Bottom-right
- Opacity: 70%
-
Create station ID bumpers:
- 5-second clips between shows
- "You're watching Retro TV"
Phase 6: Connect Everything
- Create the channel at Channels > Manage Channels
- Create playout at Scheduling > Playouts:
- Link channel to schedule
- Enable filler presets
- Enable deco
Phase 7: Test Thoroughly
- Use Diagnostics > Test Stream
- Verify:
- Content plays in correct order
- Commercial breaks insert properly
- Watermark displays correctly
- Bumpers play between shows
Advanced Tips
- Use templates: Create schedule templates for consistency
- Time alignment: Set shows to start on the hour or half-hour
- Vary filler: Mix commercial lengths for authenticity
- Preview schedule: Check the visual timeline before going live
Method 5: Import and Customize
Migrate from other platforms or M3U sources.
The Import Channels page for importing from YAML configuration files
Importing from ErsatzTV
- Go to Channels > Import Channels
- Select ErsatzTV as source
- Provide your ErsatzTV database or export file
- Map channels to local media sources
- Review and import
Importing from M3U
- Go to Channels > Import M3U
- Paste your M3U playlist URL or content
- Configure import options:
The Import M3U page for importing from M3U playlists or the curated stream library
- Channel number assignment
- Group mapping
- Logo handling
- Review channels before import
- Click Import
Post-Import Customization
After importing, you may want to:
- Update channel logos
- Reassign content sources to local media
- Adjust channel numbers
- Modify playback settings
Best Practices
Content Organization
- Use descriptive names: "80s Action Movies" not "Movies 1"
- Create smart collections: Filter by genre, year, rating
- Separate content types: Don't mix movies and TV episodes
- Maintain metadata: Good metadata = better filtering
Schedule Design
-
Know your dayparts:
- Morning (6-9 AM): Light content
- Daytime (9 AM-5 PM): Talk shows, soaps
- Early fringe (5-8 PM): Transition content
- Primetime (8-11 PM): Best content
- Late night (11 PM+): Movies, adult content
-
Lead-in strategy: Put popular shows before new content
-
Consistent timing: Start shows at predictable times
-
Genre flow: Similar content should flow together
Commercial Breaks
- Period-appropriate: Match commercials to content era
- Varied length: 30 seconds to 3 minutes
- Natural breaks: Insert at logical story breaks
- Don't overdo it: 8-12 minutes per hour maximum
Performance
- Test before publishing: Always verify playback
- Monitor resources: Watch CPU/memory during transcoding
- Use hardware acceleration: Enable GPU encoding if available
- Optimize source files: Pre-transcode if possible
Channel Maintenance
- Refresh content: Update collections regularly
- Monitor playback: Check logs for errors
- Update schedules: Seasonal or holiday changes
- Backup configuration: Export settings regularly
Troubleshooting
Channel Not Playing
Symptoms: Black screen, buffering, or error message
Check:
- Is the channel enabled?
- Is the playout active?
- Does the content source have items?
- Are media files accessible?
Fix:
- Enable channel and playout
- Verify playlist/collection has content
- Check media source connectivity
- Review streaming logs for errors
Content Not Appearing
Symptoms: Empty playlist, missing items
Check:
- Is the media source connected?
- Has the library been scanned?
- Are collection filters correct?
Fix:
- Refresh media source
- Rescan libraries
- Adjust collection filter criteria
Schedule Not Following
Symptoms: Wrong content at wrong times
Check:
- Is the schedule linked to the channel?
- Are schedule items correctly configured?
- Is the time zone correct?
Fix:
- Verify playout connects schedule to channel
- Check schedule item times
- Verify server time zone setting
AI Not Responding
Symptoms: AI Channel Creator not working
Check:
- Is Ollama installed and running?
- Is the AI model downloaded?
- Check Diagnostics > AI Troubleshooting
Fix:
- Install Ollama following the guide
- Download required AI model
- Check Ollama connection in settings
Using AI Troubleshooting
For persistent issues:
- Go to Diagnostics > AI Troubleshooting
- Describe your problem
- Include relevant error messages
- The AI will analyze and suggest fixes
Next Steps
After creating your first channels:
- Set up HDHomeRun - Share channels with TV apps
- Configure EPG - Electronic program guide for clients
- Add more sources - Connect additional media libraries
- Explore scheduling - Try more complex programming
Last updated: January 2026