Skip to content

Releases: thejudge22/youtube-watcher

v2026-05-08 - QuickPlay and API keys

08 May 23:59

Choose a tag to compare

What's New

QuickPlay Integration

  • QuickPlay tab — A new dedicated tab in the main app for fast access to your oldest unwatched content. Shows the oldest 50 saved videos and oldest 50 saved shorts side-by-side with one-click playlist buttons.
  • Standalone QuickPlay client — A self-contained quickplay.html file that can be copied to your desktop and opened directly in a browser. Uses API key auth and opens oldest saved content as YouTube playlists.

Authentication

  • API key support — Protected endpoints now accept X-API-Key header for programmatic access. Generate keys via ./scripts/generate-api-key.sh.
  • CORS configuration — New CORS_ORIGINS env var to enable cross-origin access when needed (e.g. for the standalone QuickPlay client).

Developer Experience

  • Version numbering switched to date-based format (vYYYY-MM-DD) for clearer release tracking.
  • Health endpoint now includes version and api_version fields.
  • workflow_dispatch trigger added to the Docker build action for manual image builds.

Upgrade Notes

  • Add API_KEY to your .env if you want to use the standalone QuickPlay client or other API key integrations.
  • If opening quickplay.html directly via file://, set CORS_ORIGINS=null in your .env.

v2026-04-20: Updated Shorts Support

20 Apr 18:51

Choose a tag to compare

This release includes updates to the shorts detection system, correcting a longstanding bug. Options also included to detect shorts automatically upon refresh of feeds. Allows sorting shorts from other long-form videos.

Closes issue #55

Note about versions: I'm moving from numbered releases to date releases. I never liked version numbers anyway.

Full Changelog: v1.13.0...v2026-04-20

v1.13.0 - Auto-Refresh & Inbox Improvements

16 Apr 18:11

Choose a tag to compare

What's New in v1.13.0

This release adds automatic scheduled feed refresh so you never miss new videos, an inbox count badge for quick visibility, and several dependency updates and fixes.

🚀 Major Features

Automatic Feed Refresh (#54)

Automatically check your channels for new videos on a schedule

Inbox Count Badge (#54)

See your unread video count at a glance

🐛 Bug Fixes

  • Fixed adding channels by handle only (without full URL) (#49)
  • Removed 100-video limit on Inbox page (#50)

Full Changelog: v1.12.0...v1.13.0

v1.12.0 - PWA Support, Authentication & Dark Mode

11 Feb 22:21

Choose a tag to compare

What's New in v1.12.0

This release brings major new features including Progressive Web App (PWA) support, optional authentication, dark/light mode theming, and several UI improvements.

NOTE: This release is the first to have the .env file for configuration. Previous versions set variables inside of the docker compose, but these have been moved to the .env file. Look at the .env.example file for reference.

🚀 Major Features

Progressive Web App (PWA) Support (#40)

YouTube-Watcher can now be installed as a Progressive Web App on desktop and mobile devices.

Optional Authentication (#41)

Secure your instance when exposing to public networks:

  • JWT-based authentication with 14-day token expiry
  • PBKDF2-SHA256 password hashing with Base64 encoding
  • Login page with dark/light mode support
  • Logout button in header when auth is enabled
  • New helper script: scripts/generate-password-hash.sh

Dark/Light Mode Toggle (#43)

Choose your preferred theme:

  • Theme toggle with animated sun/moon icons
  • Persistent preference stored in localStorage
  • Full theme support for all UI components
  • Proper contrast ratios for both themes

🐛 Bug Fixes

  • Fixed EU cookie consent blocking channel additions for EU users
  • Fixed compact mode video card clickability issues
  • Fixed channel groups jumping around when saving videos

📝 Changes

  • Updated Docker Compose files to support .env configuration

Full Changelog: v1.11.0...v1.12.0

v1.11.0 - UI Refresh and Mobile Improvements

30 Jan 01:12

Choose a tag to compare

✨ New Features

Modernized User Interface

  • Complete visual refresh with glassmorphism header effects and backdrop blur

Enhanced Video Cards

  • Play button overlay on thumbnail hover for quick access
  • Shimmer loading animation while thumbnails load

Improved Channel Cards

  • Actions now appear on hover for cleaner interface
  • Added online indicator with green status dot
  • Better typography and spacing

Navigation Enhancements

  • Added icons to all navigation items
  • Animated active state indicator with gradient underline
  • Smooth hover transitions

🐛 Bug Fixes

Mobile Touch Selection

  • Fixed touch selection issues on mobile devices by partitioning cards into select zone (left) and scroll zone (right)
  • Prevents accidental selections while scrolling on touch devices

🔧 Changes

Settings Page

  • Removed "Remove All Saved Videos" button for safety

Full Changelog: v1.10.0...v1.11.0

v1.10.0 Playlist Import and Mobile Device Improvements

28 Jan 16:31

Choose a tag to compare

What's New

🎥 YouTube Playlist Import

Import videos directly from YouTube playlists! This new feature allows you to quickly add all videos from a playlist to your saved collection.

How to use:

  1. Go to Settings → Import/Export
  2. Click "Import from Playlist"
  3. Paste a YouTube playlist URL
  4. All videos from the playlist will be imported

🖱️ Touch Drag Selection (Mobile Support)

Mobile users can now select multiple videos using touch drag gestures!

How to use:

  1. Enable selection mode on mobile
  2. Touch and drag across videos to select multiple at once
  3. Visual preview shows which videos will be selected
  4. Release to complete selection

Other updates

Desktop users can now select a range of videos using shift-click!

Selection mode now persists after playing videos from playlists!

Updated Docker configuration files for improved deployment.

Upgrade Notes

Database

No database migrations required for this release.

Breaking Changes

None.

Configuration

No new configuration changes required.

Full Changelog: v1.9.0...v1.10.0

v1.9.0: Automated Docker Builds

27 Jan 17:37

Choose a tag to compare

Automated docker builds are now working. Rebuilds on every push. Stable versions are available with a tag based on the release number.

Bug Fixes:

781d983 - Fix #33: Use stable alphabetical sort for Inbox channel groups
Ensures consistent ordering of channels in the inbox view

dfb4d30 - Fix #34: Use case-insensitive sorting for channel names
Improves user experience by sorting channel names regardless of letter case

e9aa1cc - Fix #35: Display user-friendly message when adding duplicate channel
Provides clear feedback when attempting to add a channel that's already being tracked

Full Changelog: v1.8.0...v1.9.0

v1.8.0 - Bug Fixes and Pagination

21 Jan 15:40

Choose a tag to compare

Saved Videos Pagination (Issue #32)

What's Changed

This release adds pagination to the Saved Videos page, allowing you to browse collections larger than 100 videos.

Bug Fixes

  • Fixed video imports to process in batches of 10 to allow for video metadata processing.

Full Changelog: v1.7.0...v1.8.0

v1.7.0 - Main Features Complete

20 Jan 20:18

Choose a tag to compare

I'm considering the application "Baseline" feature complete. All the basic features that I want are implemented. I'm not done with maintaining it, but all the features are in place for now. Feel free to open issues / PR if you want to see a specific feature in place.

What's Changed

Issue #8: YouTube Shorts Separation

  • Shorts Detection: Automatically detect YouTube Shorts based on the URL.

Issue #12: Scheduled Backups

  • Automatic Backups: Configure daily, weekly, or monthly scheduled backups

Issue #14: Saved Videos / Channels Separation

  • Independent Entities: Saved videos and channels are now separate
  • Flexible Saving: Save videos without requiring channel association

Technical Improvements

  • Added mappers.py for video data transformation
  • Enhanced RSS parser with channel information extraction
  • New video_service.py for video-related business logic

Full Changelog: v1.6.1...v1.7.0

v1.6.1 - More Backend Updates

19 Jan 22:51
48dc851

Choose a tag to compare

What's New

This release focuses on technical debt resolution, improving code quality, infrastructure, and operational capabilities.

🔧 Tech-Debt Improvements

Separate Test Dependencies (#21)

  • Removed pytest dependencies from production requirements
  • Created backend/requirements-dev.txt for development dependencies
  • Updated Dockerfile.dev to install development dependencies
  • Added test running instructions to README.md
  • Benefit: Production Docker images are now smaller and build faster without test dependencies

YouTube Video ID Index (#17)

  • Added explicit index=True to youtube_video_id column in Video model
  • Generated and applied Alembic migration for explicit index
  • Documented indexing strategy with explanatory comments
  • Benefit: Improved query performance and code clarity for video lookups by YouTube ID

Enhanced Health Check Endpoint (#22)

  • Updated /api/health endpoint to verify database connectivity
  • Added SELECT 1 query to test database connection
  • Returns {"status":"ok","database":"connected"} on success
  • Returns HTTP 503 with error details on database failure
  • Benefit: Better monitoring, observability, and container orchestration support (Docker health checks, Kubernetes probes)

🧪 Test Improvements

  • Fixed 10 pre-existing test failures
  • Updated error response format assertions to match structured ErrorResponse format
  • Updated path parameter tests to use valid UUID formats
  • Result: All 47 tests now pass with 0 failures

📦 Files Changed

Modified:

  • backend/requirements.txt - Removed test dependencies
  • Dockerfile.dev - Updated to use requirements-dev.txt
  • README.md - Added test running instructions
  • backend/app/models/video.py - Added explicit index to youtube_video_id
  • backend/app/main.py - Enhanced health check endpoint
  • backend/tests/test_api_channels.py - Fixed 4 tests
  • backend/tests/test_api_videos.py - Fixed 6 tests

Created:

  • backend/requirements-dev.txt - Development dependencies file
  • backend/alembic/versions/20260119_2214_63e6b77c0da0_add_explicit_index_to_youtube_video_id.py - Database migration

🔗 Related

  • Closes #17
  • Closes #21
  • Closes #22
  • Closes #23 (via documentation in previous release)

Full Changelog: v1.6.0...v1.6.1

What's Changed

Full Changelog: v1.6.0...v1.6.1