github alexta69/metube 2026.10.19
Release 2026.10.19

3 hours ago

Docker Images

Docker images have been built and pushed:

Docker Hub:

  • alexta69/metube:latest
  • alexta69/metube:2026.10.19

GitHub Container Registry:

  • ghcr.io/alexta69/metube:latest
  • ghcr.io/alexta69/metube:2026.10.19

Changes

  • fix: stop yt-dlp from writing its default templates into YTDL_OPTIONS (cd1368b)
  • test: let the queued-download test finish before its state dir is removed (920d4e4)
  • test: run the ytdl helper tests against the real yt-dlp (04fa578)
  • build: drop mutagen and curl-cffi as direct dependencies (d79d2dc)
  • ci: run the compile check with the project's Python (9cc7759)
  • ci: name yt-dlp by package in the nightly lock upgrade (c43e65e)
  • fix: stop binding with SO_REUSEPORT, so a second instance cannot share the port (e18d026)
  • fix: treat a blank YTDL_OPTIONS or YTDL_OPTIONS_PRESETS as unset (8bfd8a4)
  • fix: sanitize extracted entries for the JSON state store, not for pickle (a7fd304)
  • refactor(ui): fetch the version with a relative URL like every other call (24f003c)
  • refactor(ui): use the shared actionError in the Subscriptions section (6755bc4)
  • refactor(ui): drop the customDirsChanged subject nobody listened to (cffd819)
  • fix: list custom folders relative to the base, and cache them plainly (9c5424e)
  • refactor(ui): move the Completed section into its own component (d768e85)
  • chore: anchor the runtime-state ignore patterns to the repo root (0e7b7b2)
  • refactor(ui): move the Downloading section into its own component (713943a)
  • refactor(ui): move batch import into a modal component of its own (8257431)
  • refactor(ui): move the Subscriptions section into its own component (a486af9)
  • refactor: one locked save-with-rollback helper for subscription changes (7bcef57)
  • refactor: backfill old DownloadInfo records from one table of defaults (3e25760)
  • fix: keep cancellations made during a playlist add when other adds overlap (733ff1c)
  • refactor: carry a download's options as one DownloadOptions value (bd01f1f)
  • fix(ui): keep form settings in localStorage instead of cookies (eff4646)
  • fix(ui): send Retry failed a few requests at a time (8f84801)
  • refactor: store validated integer settings as ints (8e6a198)
  • fix: load completed records without running them through the format mapping (c13e922)
  • fix: merge user outtmpl and paths into MeTube's instead of replacing them (27244ac)
  • fix: record a download that fails to start as failed instead of stranding it (1b3f546)
  • fix(ui): accept shared links that arrive without a text parameter (effa7d6)
  • refactor(ui): handle queue and done changes in one subscription each (4b0abf9)
  • fix(ui): stop the number fields from swallowing Enter and shortcuts (4476930)
  • fix(ui): render cookie, version and copy results under OnPush (80f0135)
  • fix: check CUSTOM_DIRS_EXCLUDE_REGEX, LOGLEVEL and DEFAULT_THEME at startup (b15d2c0)
  • fix: keep SponsorBlock, audio tags and video password on failed-add records (dfb6b28)
  • fix: validate the boolean, numeric and string fields of /add and /subscribe (2c32347)
  • fix: keep reloading YTDL_OPTIONS_FILE after the file is replaced (6014508)

Don't miss a new metube release

NewReleases is sending notifications on new releases.