❌

Normale weergave

Release 2026.10.20

20 Oktober 2026 om 18:54

Docker Images

Docker images have been built and pushed:

Docker Hub:

  • alexta69/metube:latest
  • alexta69/metube:2026.10.20

GitHub Container Registry:

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

Changes

  • build: upgrade Python and frontend dependencies (f651a95)
  • build: drop the duplicate deno.land install; yt-dlp[deno] already ships it (6a2810a)
  • Address review: build connect payload on the loop, drop import batching (5be4c2a)
  • Fix socket.io connect ACK delayed by get_custom_dirs() (b35fbb7)
  • Fix socket.io connect handler blocking the event loop (680ed6d)

  •  

Release 2026.10.19

19 Oktober 2026 om 19:42

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)

  •  

Release 2026.10.09

9 Oktober 2026 om 10:08

Docker Images

Docker images have been built and pushed:

Docker Hub:

  • alexta69/metube:latest
  • alexta69/metube:2026.10.09

GitHub Container Registry:

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

Changes

  • feat: ask before Clear failed removes the failed rows (closes #1094) (2f9c10f)
  • fix: say why MeTube's own UI is refused behind a Host-rewriting proxy (46a9572)
  • feat: define the download options once, in a catalog the UI and API share (closes #1093) (69a5ef0)
  • fix: ship ffmpeg 8.1 so clip downloads keep their video (closes #1092) (ed6af48)
  • feat: browse a playlist and pick entries before queuing (closes #1030) (4723d14)

  •  

Release 2026.09.29

29 September 2026 om 19:26

Docker Images

Docker images have been built and pushed:

Docker Hub:

  • alexta69/metube:latest
  • alexta69/metube:2026.09.29

GitHub Container Registry:

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

Changes

  • fix: apply the connect-time address guard to playlist/channel metadata files (a389660)

  •  

Release 2026.09.28

28 September 2026 om 19:22

Docker Images

Docker images have been built and pushed:

Docker Hub:

  • alexta69/metube:latest
  • alexta69/metube:2026.09.28

GitHub Container Registry:

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

Changes

  • fix: confine playlist/channel metadata files to the download directory (098cba4)
  • fix: also prompt in ask mode when only chapter files remain on disk (b2b4908)
  • feat: add an ask mode to DELETE_FILE_ON_TRASHCAN that prompts before deleting files (closes #1012) (52638fa)

  •  

Release 2026.09.27

27 September 2026 om 18:50

Docker Images

Docker images have been built and pushed:

Docker Hub:

  • alexta69/metube:latest
  • alexta69/metube:2026.09.27

GitHub Container Registry:

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

Changes

  • feat: pair the video password with presets, give custom yt-dlp options a full row (345b8ae)
  • feat: add per-download video password for protected videos (closes #670) (080dcea)
  • ci: install corepack instead of relying on the copy bundled with Node (47553e8)
  • build: ship Python 3.14 in the image (be1d349)
  • build: move the frontend to pnpm 12 (2ffb718)
  • fix: let a cancel's SIGINT actually stop the download (c86f351)
  • ci: sync the Docker Hub description with a maintained action (aecd86d)

  •  

Release 2026.09.26

26 September 2026 om 09:50

Docker Images

Docker images have been built and pushed:

Docker Hub:

  • alexta69/metube:latest
  • alexta69/metube:2026.09.26

GitHub Container Registry:

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

Changes

  • chore: upgrade Python and frontend dependencies (f5e5ab3)
  • fix: say when an add is skipped because the video is in the download archive (98b0b10)
  • feat: Auto audio format and a Tags choice for what gets written into the file (ee2bb0b)
  • docs: reword the contribution guidance (d959cbc)
  • ci: warn when the README passes a 15,000-byte budget (04ebfb8)
  • docs: restructure the README as a landing page and variable reference (d310bcc)
  • docs: state in SECURITY.md that MeTube does not request CVEs (f319b26)

  •  

Release 2026.09.25

25 September 2026 om 09:03

Docker Images

Docker images have been built and pushed:

Docker Hub:

  • alexta69/metube:latest
  • alexta69/metube:2026.09.25

GitHub Container Registry:

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

⚠️ Action needed for bookmarklet users

MeTube now refuses requests sent from other websites unless their origin is listed in CORS_ALLOWED_ORIGINS. This closes a security hole (GHSA-cxj8-27g9-669f). If you use a bookmarklet, add the sites you use it on, e.g. CORS_ALLOWED_ORIGINS=https://www.youtube.com. Details in #1085.

Changes

  • docs: point readers at the wiki from the README top and the issue forms (dfe3daa)
  • fix: let a refused bookmarklet see why it was refused (e165b36)
  • test: pin that scheme-less internal URLs are refused before any fetch (2979e3a)
  • fix: refuse state-changing requests and socket connections from other sites (772a16c)

  •  

Release 2026.09.23

23 September 2026 om 20:20

Docker Images

Docker images have been built and pushed:

Docker Hub:

  • alexta69/metube:latest
  • alexta69/metube:2026.09.23

GitHub Container Registry:

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

Changes

  • fix: stop folder errors from reading as a successful add (closes #1082) (292fe2d)

  •  

Release 2026.09.20

20 September 2026 om 09:38

Docker Images

Docker images have been built and pushed:

Docker Hub:

  • alexta69/metube:latest
  • alexta69/metube:2026.09.20

GitHub Container Registry:

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

Changes

  • build: pin the frontend builder image to the last QEMU-safe digest (300bf79)
  • fix: align the row action icons across both download tables (ec01524)
  • fix: stop offering a dead Start button on queued downloads (closes #1081) (a6d81d4)

  •  

Release 2026.09.15

15 September 2026 om 22:20

Docker Images

Docker images have been built and pushed:

Docker Hub:

  • alexta69/metube:latest
  • alexta69/metube:2026.09.15

GitHub Container Registry:

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

Changes

  • build: upgrade Python and npm dependencies (6708a88)
  • fix: stop resolving submitted URLs locally when a proxy will (closes #1079) (5cac98a)
  • docs: add MeTube Mobile (Android) to Sending links to MeTube (3516872)

  •  

Release 2026.08.28

28 Augustus 2026 om 08:44

Docker Images

Docker images have been built and pushed:

Docker Hub:

  • alexta69/metube:latest
  • alexta69/metube:2026.08.28

GitHub Container Registry:

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

Changes

  • feat: collapse the Downloading, Completed and Subscriptions sections (closes #1070) (7938837)
  • fix: show the post-download processing phase in the UI (closes #424) (1251613)
  • fix: accept HOST=* so IPv6 users get a dual-stack bind (closes #795) (70d1975)
  • docs: fix where the download folder selector lives in the UI (f11b376)

  •  

Release 2026.08.21

21 Augustus 2026 om 10:08

Docker Images

Docker images have been built and pushed:

Docker Hub:

  • alexta69/metube:latest
  • alexta69/metube:2026.08.21

GitHub Container Registry:

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

Changes

  • fix: move persistent queue state writes off the event loop (#980) (c9c507f)
  • fix: stop stating the output file on every progress tick (#980) (327e1eb)
  • fix: point audio download links at the directory the server used (closes #533) (82e966c)
  • fix: strip trailing slashes from the download directories (346da19)
  • fix: warn when uploaded cookies shadow a configured cookiefile (b74185b)
  • fix: let named CORS origins send credentials (closes #155) (c393e01)

  •  

Release 2026.08.20

20 Augustus 2026 om 02:52

Docker Images

Docker images have been built and pushed:

Docker Hub:

  • alexta69/metube:latest
  • alexta69/metube:2026.08.20

GitHub Container Registry:

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

Changes

  • upgrade yt-dlp from 2026.7.4 to 2026.8.19 (8695478)

  •  

Release 2026.08.18

18 Augustus 2026 om 16:09

Docker Images

Docker images have been built and pushed:

Docker Hub:

  • alexta69/metube:latest
  • alexta69/metube:2026.08.18

GitHub Container Registry:

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

Changes

  • fix: let the download reach the PO token provider (closes #1064) (f3c464f)
  • feat: carry the SponsorBlock toggle into subscriptions (b10bb61)
  • feat: first-class SponsorBlock toggle (8c2990e)

  •  

Release 2026.08.17

17 Augustus 2026 om 09:48

Docker Images

Docker images have been built and pushed:

Docker Hub:

  • alexta69/metube:latest
  • alexta69/metube:2026.08.17

GitHub Container Registry:

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

Changes

  • fix: detect channels addressed without a tab (closes #1024) (e15aff3)
  • fix: carry yt-dlp warning context on the DownloadError path (closes #1047) (fccd207)
  • fix: keep generated filenames within the filesystem limit (closes #1034) (6461924)
  • feat: show the queued format in the Downloading table (closes #551) (c68fcad)
  • feat: DEFAULT_FOLDER pre-selects a download folder (closes #875) (a4454ac)
  • feat: shift-click to select a range of rows (closes #525) (75fe1f0)
  • fix: surface yt-dlp warning context on failed downloads (5826d0d)

  •  

Release 2026.08.16

16 Augustus 2026 om 09:40

Docker Images

Docker images have been built and pushed:

Docker Hub:

  • alexta69/metube:latest
  • alexta69/metube:2026.08.16

GitHub Container Registry:

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

Changes

  • feat: let a subscription carry clip bounds (closes #1049) (aac9c63)
  • feat: allow a subscription's download folder to be changed (closes #1052) (3444b16)
  • build(deps): upgrade frontend dependencies to Angular 22.1 (59cf84a)
  • build(deps): upgrade Python dependencies (99b6452)

  •  

Release 2026.08.15

15 Augustus 2026 om 17:27

Docker Images

Docker images have been built and pushed:

Docker Hub:

  • alexta69/metube:latest
  • alexta69/metube:2026.08.15

GitHub Container Registry:

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

Changes

  • docs: note that a configured proxy needs no ALLOW_PRIVATE_ADDRESSES (c8fb5bb)
  • fix: let a configured proxy live on any internal address (closes #1055) (de57484)
  • fix: judge the IPv4 tunnelled inside IPv6 transition addresses (7082858)
  • build(deps): bump aiohttp in the uv group across 1 directory (97d1cc8)

  •  

Release 2026.08.04

4 Augustus 2026 om 21:59

Docker Images

Docker images have been built and pushed:

Docker Hub:

  • alexta69/metube:latest
  • alexta69/metube:2026.08.04

GitHub Container Registry:

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

Changes

  • fix: scope the connect-time loopback allowance to the configured proxy (482381d)
  • docs: put the closing keyword in the commit subject (0445f58)
  • docs: require Closes #N in commits that resolve an issue (6551f7a)

  •  

Release 2026.07.27

27 Juli 2026 om 22:02

Docker Images

Docker images have been built and pushed:

Docker Hub:

  • alexta69/metube:latest
  • alexta69/metube:2026.07.27

GitHub Container Registry:

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

Changes

  • feat: write playlist/channel metadata files where their items go (#660) (06c63ec)
  • feat: let subscriptions be renamed from the list (#1044) (d66b04c)
  • refactor: make POST /retry take a singular id (ff1b73a)
  • fix: carry retry context through url indirection and re-gate retry options (08dccd9)
  • build(deps): bump actions/setup-python in the github-actions group (1f20aae)
  • fix: add track_number to compact entry extra keys (8a29f3a)
  • feat: add retry functionality for failed downloads (1839e54)
  • docs: cache-bust screenshot embed so the refreshed GIF shows (fceac97)
  • docs: refresh screenshot.gif for the current UI [skip ci] (a13762a)

  •  

Release 2026.07.24

24 Juli 2026 om 11:22

Docker Images

Docker images have been built and pushed:

Docker Hub:

  • alexta69/metube:latest
  • alexta69/metube:2026.07.24

GitHub Container Registry:

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

Changes

  • Added handling for unsupported URL (4e27600)
  • build(deps): bump actions/setup-node in the github-actions group (1c7261a)
  • fix: release per-download status_queue proxy on close to stop FD leak (4cf2b1b)
  • refactor: simplify music metadata processing by removing unused code and improving album signal detection (f3d670e)
  • feat: add music metadata processing and writing functionality (edf101f)

  •  

Release 2026.07.21

21 Juli 2026 om 07:01

Docker Images

Docker images have been built and pushed:

Docker Hub:

  • alexta69/metube:latest
  • alexta69/metube:2026.07.21

GitHub Container Registry:

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

Changes

  • feat: ALLOW_PRIVATE_ADDRESSES to opt out of the SSRF checks (closes #1036) (e061a8a)
  • docs: document the SSRF guard's connect-time coverage limitations (13cb65d)
  • fix: re-validate outbound connections at fetch time against internal hosts (1b02a99)
  • fix: fail closed when an SSRF-guarded host cannot be resolved (ebcfe57)
  • fix: enforce download-dir containment at the resolved-path chokepoint (3bd2c3e)
  • ci: update releases in place instead of delete-and-recreate (707f700)
  • chore: rework issue and discussion templates around scope policy (c519f45)

  •  

Release 2026.07.18

18 Juli 2026 om 08:34

Docker Images

Docker images have been built and pushed:

Docker Hub:

  • alexta69/metube:latest
  • alexta69/metube:2026.07.18

GitHub Container Registry:

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

Changes

  • feat: graceful cancel β€” SIGINT with SIGKILL escalation so partial files are finalized (closes #438) (4b05022)
  • ci: enforce the 25k Docker Hub limit on README.md (0dc9b0b)
  • docs: restructure README around the wiki as companion documentation (96f5ffe)
  • docs: add test gotchas, option checklist, and security invariants to AGENTS.md (1eafecd)
  • docs: encode project scope boundary in AGENTS.md (8fe81de)
  • docs: document pairing MeTube with a music tagger (fa02717)

  •  

Release 2026.07.16

16 Juli 2026 om 22:16

Docker Images

Docker images have been built and pushed:

Docker Hub:

  • alexta69/metube:latest
  • alexta69/metube:2026.07.16

GitHub Container Registry:

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

Changes

  • upgrade dependencies (8071611)
  • fix: prefer topic channel for album artist (220f991)
  • fix: block SSRF via user-submitted URLs (6d05287)
  • feat: add AlbumArtistPostProcessor to fill missing album-artist metadata (c104e30)

  •  

Release 2026.07.13

13 Juli 2026 om 22:18

Docker Images

Docker images have been built and pushed:

Docker Hub:

  • alexta69/metube:latest
  • alexta69/metube:2026.07.13

GitHub Container Registry:

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

Changes

  •  

Release 2026.07.12

12 Juli 2026 om 19:44

Docker Images

Docker images have been built and pushed:

Docker Hub:

  • alexta69/metube:latest
  • alexta69/metube:2026.07.12

GitHub Container Registry:

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

Changes

  • fix: harden download lifecycle, subscriptions, and UI robustness (3ea4732)

  •  

Release 2026.07.10

10 Juli 2026 om 09:00

Docker Images

Docker images have been built and pushed:

Docker Hub:

  • alexta69/metube:latest
  • alexta69/metube:2026.07.10

GitHub Container Registry:

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

Changes

  • fix: honor OUTPUT_TEMPLATE for channel downloads (closes #1024) (e2c7778)
  • upgrade dependencies (c34a18d)

  •  

Release 2026.07.09

9 Juli 2026 om 07:27

Docker Images

Docker images have been built and pushed:

Docker Hub:

  • alexta69/metube:latest
  • alexta69/metube:2026.07.09

GitHub Container Registry:

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

Changes

  • Don't mark a subscription as broken just because all entries are filtered out as they have already been downloaded (ad90609)

  •  

Release 2026.07.05

5 Juli 2026 om 20:36

Docker Images

Docker images have been built and pushed:

Docker Hub:

  • alexta69/metube:latest
  • alexta69/metube:2026.07.05

GitHub Container Registry:

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

Changes

  • fix: fsync parent dir after direct-write fallback for durability parity (54463ba)
  • fix: serialize state before truncating in the direct-write fallback (b00d478)
  • fix: force 0600 on fallback state rewrites, not just creation (96e88a3)
  • fix: create fallback state file with owner-only 0600 permissions (49a46a7)
  • fix: make fsync best-effort so only mkstemp/replace failures fall back (961b54a)
  • fix: surface real storage errors from direct-write fsync fallback (e0549d6)
  • fix: limit atomic-write fallback to atomic-unsupported errnos (f315b75)
  • fix: fall back to direct write when atomic state save hits EPERM on NFS (c2c129d)

  •  

Release 2026.06.28

28 Juni 2026 om 20:23

Docker Images

Docker images have been built and pushed:

Docker Hub:

  • alexta69/metube:latest
  • alexta69/metube:2026.06.28

GitHub Container Registry:

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

Changes

  • upgrade to Angular 22 (51fd203)
  • upgrade dependencies (d136344)
  • Bump actions/checkout from 6 to 7 in the github-actions group (33f1412)

  •  
❌