Auch verfügbar in:
DE Deutsch
Features Overview
Zuletzt aktualisiert: 30.09.2026
Core Capabilities
ITSWEBER Play is a self-hosted video platform built for small to medium communities. It provides a full creator workflow (upload, transcode, publish), a viewer experience comparable to mainstream platforms (HLS player, comments, reactions, subscriptions), and a powerful live theming system that makes it trivially easy to brand the instance without touching code.
The platform ships as a single container — no orchestration required — and is designed to run on a NAS or homelab server alongside other services.
Feature Status
Legend: The status is spelled out in the table as Available, In progress, Planned or Not planned.
Video
| Feature |
Status |
Since |
Notes |
| Direct upload (file picker in the browser) |
Available |
v0.1 |
Drag & drop is not implemented in the upload form |
| FFmpeg HLS transcoding |
Available |
v0.1 |
H.264, 480p always, 720p and 1080p only if the source is that tall |
| HLS.js player + Safari native HLS |
Available |
v0.1 |
|
| 3 quality levels (480p / 720p / 1080p) |
Available |
v0.1 |
Levels depend on source resolution, there is no 360p |
| Extra codecs AV1 / VP9 |
Available |
— |
Optional via TRANSCODE_EXTRA_CODECS, high CPU cost |
| 5 thumbnail candidates + picker |
Available |
v0.2 |
Extracted at 10/30/50/70/90 % of duration |
| Custom thumbnail upload |
In progress |
v0.3 |
Upload route exists in the code, the repo's feature matrix still lists it as planned |
| Video chapters |
Available |
v0.2 |
|
| Tags |
Available |
v0.2 |
|
| Manual caption upload |
In progress |
v0.3 |
Route exists in the code, SRT is converted to WebVTT |
| Auto-captions (Whisper) |
In progress |
v1.0 |
whisper.cpp ships in the image, active only with AUTO_CAPTIONS_ENABLED=1 |
| Resumable uploads (tus.io) |
Planned |
v0.3 |
|
| View tracking (session-deduplicated) |
Available |
v0.2 |
|
| Video format classification (LONG / SHORT) |
Available |
v0.2 |
|
Import
| Feature |
Status |
Since |
Notes |
| yt-dlp external import |
Available |
v0.2 |
YouTube, Vimeo, and any yt-dlp-supported source |
| Default visibility: private after import |
Available |
v0.2 |
Copyright-safe default |
Visibility
| Feature |
Status |
Since |
Notes |
| Public |
Available |
v0.1 |
|
| Unlisted (link-only) |
Available |
v0.1 |
|
| Logged-in only |
Available |
v0.1 |
|
| Private (creator only) |
Available |
v0.1 |
|
Channels
| Feature |
Status |
Since |
Notes |
| Multi-creator channels |
Available |
v0.1 |
One default channel per user on registration |
| Channel pages |
Available |
v0.2 |
|
| Channel avatars |
Available |
v0.2 |
|
| Channel banners |
In progress |
v0.3 |
Upload route /api/studio/banner exists in the code |
Channel directory /channels |
Available |
v0.2 |
|
Playlists
| Feature |
Status |
Since |
Notes |
| Ordered playlists |
In progress |
v0.3 |
Playlist router and Studio pages exist in the code |
| Drag-reorder |
In progress |
v0.3 |
playlist.reorder exists in the code |
Shorts
| Feature |
Status |
Since |
Notes |
Shorts grid /shorts |
Available |
v0.2 |
Vertical short-form videos |
| Vertical swipe feed (full-screen, loop) |
In progress |
v0.3 |
/shorts already uses scroll snapping and loop in the code |
Search
| Feature |
Status |
Since |
Notes |
| Title / tag / description search |
Available |
v0.2 |
|
| Postgres full-text search indexes |
Planned |
v0.3 |
|
| Meilisearch integration |
Planned |
Backlog |
|
Auth
| Feature |
Status |
Since |
Notes |
| Email + password |
Available |
v0.1 |
Better Auth |
| Session cookies (HTTP-only, SameSite=Lax) |
Available |
v0.1 |
|
Admin bootstrap via INITIAL_ADMIN_EMAIL |
Available |
v0.1 |
|
| Email verification |
In progress |
v1.0 |
Verification mail is sent on sign-up but not required |
| Password reset |
In progress |
v1.0 |
Reset by mail is wired in the code, requires SMTP |
| OIDC (Authentik, Keycloak) |
Planned |
v1.0 |
|
| Passkeys (WebAuthn) |
Planned |
v1.0 |
|
Roles
| Feature |
Status |
Since |
Notes |
| Admin |
Available |
v0.1 |
Full platform access |
| Moderator |
Available |
v0.1 |
Role exists, moderation queue and takedowns are currently admin-only in the code |
| Creator |
Available |
v0.1 |
Upload, studio, own videos |
| Viewer |
Available |
v0.1 |
Watch, comment, react, subscribe |
| Feature |
Status |
Since |
Notes |
| Threaded comments (2 levels) |
Available |
v0.2 |
|
| Likes / reactions |
Available |
v0.2 |
|
| Channel subscriptions |
Available |
v0.2 |
|
| Report flow (7 reasons) |
Available |
v0.2 |
|
| In-app notifications (header bell) |
Available |
v0.2 |
|
| New upload notifications to subscribers |
Available |
v0.2 |
|
| Comment reply notifications |
Available |
v0.2 |
|
| Watch later + history |
In progress |
v0.3 |
watchLater and history routers exist in the code |
| Email notifications |
In progress |
v1.0 |
Per-user mail settings and the digest-mail job exist in the code |
Theming
| Feature |
Status |
Since |
Notes |
| 6-layer token system |
Available |
v0.1 |
Primitive → Semantic → Admin live editor → Preset → Custom CSS → Layout blocks |
| Admin live editor (color picker + sliders) |
Available |
v0.2 |
|
| Preset switch (dark / light / brand / high-contrast / retro) |
Available |
v0.2 |
|
| Preset export / import (JSON) |
Available |
v0.2 |
|
| Custom CSS sandbox + revisions |
Available |
v0.2 |
|
| Logo upload + logo filter (10 presets) |
Available |
v0.2 |
|
| SSE live sync (cross-tab) |
Available |
v0.2 |
|
| Layout block editor (drag-reorder, hero picker) |
Available |
v0.3 |
|
| Theme marketplace |
Not planned |
— |
Out of scope |
Admin Panel
| Feature |
Status |
Since |
Notes |
| Dashboard (stats, quick actions, audit feed) |
Available |
v0.2 |
|
| User management (role, ban) |
Available |
v0.1 |
Self-lockout protection |
| Global video management |
Available |
v0.2 |
|
| Category management + icon picker |
Available |
v0.2 |
|
| Moderation queue + takedown flow |
Available |
v0.2 |
|
| System health (DB, queue, env) |
Available |
v0.2 |
|
| Audit log |
Planned |
v0.3 |
|
| Site settings (name, locale, SEO) |
In progress |
v0.3 |
/admin/settings with site name, language, registration, video defaults and SMTP exists in the code, SEO fields do not |
Legal
| Feature |
Status |
Since |
Notes |
| Impressum / Datenschutz / AGB stubs |
Available |
v0.2 |
|
| StaticPage CMS (admin pages) |
In progress |
v0.3 |
/admin/pages exists in the code, content is edited as HTML |
| Cookie consent banner |
In progress |
v0.3 |
Exists in the code with two tiers (essential, all) |
| GDPR data export |
In progress |
v0.3 |
userSettings.exportMyData exists in the code |
| GDPR account deletion |
In progress |
v0.3 |
userSettings.requestAccountDeletion anonymizes the account |
Infrastructure
| Feature |
Status |
Since |
Notes |
| All-in-one container (s6-overlay) |
Available |
v0.1 |
|
| Single exposed port (3000) |
Available |
v0.1 |
Nginx multiplexes internally |
| First-run wizard |
Available |
v0.2 |
|
| Auto-migrations on startup |
Available |
v0.1 |
Prisma |
| Backup script (pg_dump + MinIO sync) |
Available |
v0.1 |
|
| PWA (Progressive Web App) |
In progress |
v1.0 |
Web app manifest exists, no service worker found in the code |
| AI moderation |
In progress |
v1.0 |
Comment check via Ollama in the worker, active only with OLLAMA_URL |
Prometheus /metrics |
Planned |
v1.0 |
|
| Sentry error tracking |
Planned |
v1.0 |
|
Comparison
|
ITSWEBER Play |
PeerTube |
MediaCMS |
| Deployment |
Single container, 1 port |
Multi-container, complex |
Multi-container |
| Theming |
Live 6-layer token editor |
Limited |
Limited |
| HLS transcoding |
Built-in (FFmpeg) |
Built-in |
Built-in |
| Federation (ActivityPub) |
Not planned |
Yes |
No |
| yt-dlp import |
Yes |
No |
No |
| Single-host simplicity |
High |
Medium |
Medium |
| All-in-one Docker image |
Yes |
No |
No |
| Custom branding |
Full (tokens + CSS + logo) |
Partial |
Partial |
| Shorts / vertical video |
Yes |
No |
No |
| Open source license |
AGPL-3.0 |
AGPL-3.0 |
AGPL-3.0 |