Skip to content

Playlists and collections #223

@filthyrake

Description

@filthyrake

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

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions