---
title: Linear TV Overview
menu_group: Linear TV
menu_order: 5
tab: Linear TV
tab_order: 5
requires_linear_tv: true
summary: Virtual linear television — Live streams, channel playlists, weekly scheduling, compiled EPG, and REST for connected TV apps.
---

# Linear TV Overview

Linear TV (Live Channels) turns MediaBlaster into a **virtual broadcast platform**. You build reusable playlists, schedule them onto channels, compile an electronic program guide (EPG), and expose everything to Roku and other clients via REST.

## Enable the module

1. Open **MediaBlaster → General Settings**.
2. Turn on **Enable Live Channels** (Beta).
3. Save and **reload wp-admin**.

When off: no Live/Channels/Playlists menus, no Linear TV docs in **MediaBlaster → Docs**, no public `/channels` or `/epg` REST routes.

Helper: `wpstv_is_linear_channels_enabled()` — option key `rovidx_smart_tv_live_channels_enabled` in `rovidx_smart_tv_options`.

## Content model

| Type | CPT | Purpose |
|------|-----|---------|
| **Live Stream** | `live` | Always-on or scheduled live events for playlists and `/live` REST |
| **Channel** | `channels` | Branded linear channel with timezone, fallback playlist, and compiled airings |
| **Playlist** | `playlists` | Ordered list of Movies, Episodes, Series, or Live items for scheduling |

**Important:** Channel **Playlists** (`playlists` CPT + `mediablaster_playlist_items` table) are separate from Series episode ordering (`rovidx_smarttv_playlist` meta on Series posts).

## Admin workflow

1. **[Live Streams](live-streams.md)** — Create live content with stream mode and default duration.
2. **[Channel Playlists](channel-playlists.md)** — Build playlists in the Playlist Builder metabox.
3. **[Channels](channels.md)** — Create channels with logo, timezone, fallback playlist, and schedule horizon.
4. **[Channel Scheduler](channel-scheduler.md)** — Three-panel workspace: playlist library, Day/Week calendar, persistent Block Details inspector; **Generate Guide** to compile airings.

## Data flow

```
Playlists (items) → Schedule blocks (weekly grid) → Compiler → Airings (UTC) → REST EPG / now playing
```

Schedule blocks live in `{prefix}mediablaster_channel_schedule`. Compiled airings live in `{prefix}mediablaster_channel_airings`. Schema version: `mediablaster_linear_schema_version` **1.0.0**.

## REST and clients

Public routes: `/live`, `/channels`, `/channels/{id}/now`, `/channels/{id}/schedule`, `/epg`. Discovery adds `features.linear_tv` and `links` when enabled. App config adds `linearTv` URLs for Roku. See [Linear TV REST API](rest-api-linear-tv.md).

## Related guides

| Guide | Topic |
|-------|-------|
| [Live Streams](live-streams.md) | Live CPT and stream modes |
| [Channel Playlists](channel-playlists.md) | Playlist Builder |
| [Channels](channels.md) | Channel settings and fallback |
| [Channel Scheduler](channel-scheduler.md) | Three-panel scheduler (no modal) |
| [Linear TV REST API](rest-api-linear-tv.md) | Public and admin REST |
