Managing Channels
Channels are the top-level containers for your educational content. Each channel maps to a Roku streaming channel and holds series, episodes, and associated learning materials.
Channel Lifecycle
Channels progress through several stages from creation to active use:
Figure 3: Channel Lifecycle -- Draft to Active on Roku
Creating a Channel
-
Navigate to Channels
From the sidebar, click Channels or go to /channels.
-
Click "Create Channel"
The blue Create Channel button is in the top-right corner. A modal form will open.
-
Fill in Channel Details
Enter the required and optional fields:
- Channel Name (required) -- A unique, descriptive name (max 255 characters)
- Description -- Brief summary of the channel content
- Category -- Educational, Entertainment, Documentary, Tutorial, or Kids
- Language -- en, es, fr, de
- Theme Color -- Hex color for branding (e.g., #1a1a2e)
-
Save the Channel
Click Create Channel. The system will create a backing collection in the COLLECTIONS API and a local channel record. You should see a success toast.
API Example: Create Channel
curl -X POST http://localhost:8065/api/channels \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"channel_name": "Science 101",
"channel_description": "Introductory science topics for beginners",
"category": "Educational",
"language": "en",
"theme_color": "#0f3460"
}'
Channel Settings
After creating a channel, you can configure additional settings via the Edit modal:
| Setting | Type | Default | Description |
|---|---|---|---|
| channel_name | String | -- | Display name (1-255 chars, required) |
| channel_description | Text | null | Long description for the channel |
| category | Enum | Educational | Content classification |
| language | String | en | Primary language code |
| theme_color | Hex | #1a1a2e | Branding color (used on cards and feed) |
| is_published | Boolean | false | Toggle channel visibility |
| roku_channel_id | String | null | Roku-specific channel identifier |
| channel_poster_url | URL | null | Poster image for channel card |
| channel_banner_url | URL | null | Wide banner image |
| channel_logo_url | URL | null | Square logo image |
| splash_screen_url | URL | null | Splash screen for Roku device |
| certification_status | String | draft | Roku certification status |
Editing and Deleting
Editing a Channel
Hover over any channel card in the grid to reveal the Edit (pencil) icon. Click it to open the edit modal with pre-filled values. Modify the fields you want and click Save Changes.
curl -X PUT http://localhost:8065/api/channels/{channel_id} \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"channel_name": "Science 101 - Updated",
"is_published": true
}'
Deleting a Channel
Click the Delete (trash) icon on a channel card. You will be asked to confirm. Deletion is a soft-delete (records are flagged, not permanently removed). The backing collection in COLLECTIONS API is also deleted.
curl -X DELETE http://localhost:8065/api/channels/{channel_id} \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
# Returns 204 No Content on success
Publishing a Channel
When is_published is set to true:
- The channel appears with a green Published badge on the card
- A public Roku JSON feed becomes available at /api/roku/feed/{channel_id}
- Students can enroll and start watching content