Summary
Add playlist/collection feature to organize videos into ordered groups.
Current State
Videos can only be organized by category. No way to create custom ordered collections.
Proposed Features
Playlists
- Create named playlists with ordered videos
- Public or private playlists
- Playlist descriptions and thumbnails
- Auto-play through playlist
Collections
- Curated collections (featured, series, courses)
- Admin-created featured collections
- User-created playlists (if auth enabled)
Database Schema
CREATE TABLE playlists (
id TEXT PRIMARY KEY,
title TEXT NOT NULL,
slug TEXT UNIQUE NOT NULL,
description TEXT,
thumbnail_path TEXT,
visibility TEXT DEFAULT 'public', -- public, private, unlisted
user_id TEXT REFERENCES users(id), -- Optional, for user playlists
created_at TIMESTAMP,
updated_at TIMESTAMP
);
CREATE TABLE playlist_items (
playlist_id TEXT REFERENCES playlists(id),
video_id TEXT REFERENCES videos(id),
position INTEGER,
added_at TIMESTAMP,
PRIMARY KEY (playlist_id, video_id)
);
API Endpoints
GET /api/playlists
GET /api/playlists/{slug}
GET /api/playlists/{slug}/videos
POST /admin/playlists
PUT /admin/playlists/{id}
DELETE /admin/playlists/{id}
POST /admin/playlists/{id}/videos
DELETE /admin/playlists/{id}/videos/{video_id}
POST /admin/playlists/{id}/reorder
UI Features
- Playlist browser page
- Playlist sidebar on video page
- Add to playlist button
- Playlist editor with drag-to-reorder
Use Cases
- Training courses (ordered lessons)
- Video series (episodes in order)
- Curated collections (best of, featured)
- User favorites (if auth enabled)
Priority
Medium - enhances content organization
Summary
Add playlist/collection feature to organize videos into ordered groups.
Current State
Videos can only be organized by category. No way to create custom ordered collections.
Proposed Features
Playlists
Collections
Database Schema
API Endpoints
UI Features
Use Cases
Priority
Medium - enhances content organization