Releases: filthyrake/vlog
Releases · filthyrake/vlog
v0.0.5
What's New in v0.0.5
🎬 Studio Phase 2
- Full broadcaster dashboard with VOD management, live chat, moderation tools, and analytics
- Real-time WebSocket chat with message queuing and reconnection handling
- Stream moderation: bans, timeouts, word filters, and moderator management
🔐 Security Enhancements
- Admin API now requires authentication by default
- Restrictive CORS defaults for Admin API
- Consistent error sanitization (no internal path leaks)
- PostgreSQL compatibility fixes for production deployments
💾 New Features
- Backup/Restore: Complete system backup and restore functionality
- Comments & Ratings: Social engagement features for videos
- API Key Rotation: Worker API keys now support expiration and rotation
- Video Embeds: Embed videos on external sites
- Structured Logging: JSON logging with request context for better observability
🛠 Reliability Improvements
- Health server tests and improved Docker healthchecks
- Circuit breaker race condition fix in worker HTTP client
- N+1 query optimizations in moderator and moderation log endpoints
- WebSocket message queue limits to prevent memory growth
📚 Documentation
- Watermark API documentation
- Kubernetes configuration guidance
- Database schema documentation with rationale for magic numbers
Breaking Changes
- Admin API endpoints now require authentication (set
VLOG_ADMIN_API_SECRET) - Password reset endpoints disabled by default (set
VLOG_PASSWORD_RESET_ENABLED=truewhen email is configured)
Full Changelog: v0.0.4...v0.0.5
v0.0.4
What's New in v0.0.4
Major Features
- Webhook Notifications - Event-driven notifications for external integrations (video.ready, video.failed, etc.)
- Video Downloads - Allow users to download video files with rate limiting
- Playlists & Collections - Organize videos into playlists, series, or courses
- Video Chapters - Timeline navigation with chapter markers
- Sprite Sheets - Thumbnail previews for timeline scrubbing
- Featured Videos - Mark videos for homepage prominence
Security Improvements
- argon2id API Key Hashing - Upgraded from SHA-256 for worker authentication
- CSP Hardening - Removed unsafe-inline and unsafe-eval from Content Security Policy
- Alpine.js CSP Build - Using CSP-compliant Alpine.js for public pages
Infrastructure
- Circuit Breaker - Worker HTTP client resilience pattern
- Streaming Segment Upload - Progressive upload during transcoding
- Cursor-based Pagination - Improved API performance for large datasets
- Table Partitioning - playback_sessions partitioned by month
API Changes
- New webhook management endpoints
- New download endpoints with rate limiting
- New playlist/collection management endpoints
- New chapter management endpoints
- Session-based admin authentication
See UPGRADING.md for migration instructions.
v0.0.3
What's New in v0.0.3
🎨 Public UI Design Overhaul (Issue #413)
Complete 7-phase redesign of the public-facing website:
- Modern, responsive layout with improved navigation
- Redesigned video cards with hover effects and progress indicators
- Enhanced player with chapters support and timeline thumbnails
- Full accessibility compliance (WCAG 2.1 AA)
- Mobile-optimized experience
🖥️ Admin UI Redesign (Issue #412)
- New component library with consistent design language
- Modular API client and state management
- Worker management interface
- Improved settings management
📋 Playlists & Collections (Issue #223)
- Create and manage video playlists
- Drag-and-drop reordering
- Public playlist pages
⚡ Performance Improvements (Issue #463)
- Cursor-based pagination for large datasets
- Table partitioning for analytics data
- Database connection pooling and query optimization
- Streaming segment upload eliminates tar.gz blocking (Issue #478)
🛡️ Reliability & Security
- Circuit breaker pattern for worker HTTP client
- TAR extraction timeout and orphan cleanup
- Redis connection pool leak fix
- Security scanning in CI/CD
- Kubernetes security hardening
⚙️ Configuration
- Display settings (view counts, tagline) configurable via admin UI
- Settings API improvements for easier configuration
🐛 Bug Fixes
- Frontend API response parsing
- DASH manifest generation
- Admin UI console errors
- Various worker and transcoding fixes
Full Changelog: v0.0.2...v0.0.3
v0.0.2 - Custom Fields, CDN Support & DASH Streaming
What's New
Features
-
Custom Metadata Fields (Issue #224)
- Define custom fields (text, number, date, select, multi-select, URL) for videos
- Fields can be global or category-specific
- Full API support for field management and bulk updates
-
CDN Support (Issue #222)
- Configure CDN domain for video streaming content
- Automatic URL rewriting for HLS/DASH manifests and segments
-
DASH/CMAF Streaming (Issue #212)
- Added Shaka Player for DASH playback
- CMAF container format support with HEVC codec
- Auto-detection between HLS.js and Shaka Player based on content
-
Deferred Retranscode Cleanup (Issue #408)
- Videos remain playable while queued for re-transcoding
- Old files only deleted when worker claims the job
- Prevents videos from becoming unavailable while waiting in queue
-
Re-encode Queue System
- Queue videos for re-encoding with priority levels
- HTTP-based re-encode support for remote workers
- Admin UI tab for queue management
Security
- CSRF Protection (#404)
- Added CSRF tokens to all admin forms
- Prevents cross-site request forgery attacks
Bug Fixes
- Fix remote worker CMAF/HEVC support
- Fix settings validation and CLI settings set command
- Fix watermarkSettings null initialization in admin UI
- Fix re-encode queue database operations
- Fix duplicate variable declarations in watch.html
Documentation
- Updated DATABASE.md with new tables and columns
- Updated TRANSCODING_ARCHITECTURE.md with deferred cleanup pattern
- Updated API.md with custom fields endpoints
- Comprehensive documentation refresh
Upgrading
# Pull latest code
git pull origin main
# Run database migrations
source venv/bin/activate
alembic upgrade head
# Restart services
sudo systemctl restart vlog-admin vlog-public vlog-worker-apiFull Changelog: v0.0.1...v0.0.2
v0.0.1 - Initial Public Release
VLog - Self-Hosted Video Platform
Initial public release of VLog, a lightweight self-hosted video platform with:
- 4K Video Support - Transcode to multiple quality levels (2160p down to 360p)
- HLS Adaptive Streaming - Smooth playback on any connection
- Distributed Transcoding - Kubernetes-ready containerized workers
- Auto-Transcription - Automatic subtitles via faster-whisper
- Modern UI - Clean Alpine.js + Tailwind CSS frontend
- CLI Tools - Upload, manage, and download videos from the command line
Built with FastAPI, ffmpeg, and a whole lot of AI pair-programming.
🤖 Generated with Claude Code