🚀 ytdl-material 1.0.8
This patch release focuses on fixing YouTube downloads that failed with HTTP 403 errors, hardware-accelerated video processing, a Downloads page crash, and a large round of dependency and security maintenance.
✨ Features
- Added hardware-accelerated transcoding (Settings → Downloader, or
ytdl_transcoding) for ffmpeg video processing, supporting AMD AMF, Nvidia NVENC, Intel Quicksync, and VAAPI. Both encoding and decoding run on the GPU where the hardware allows it, which is a large speedup for 4K and AV1 sources. Startup flight tests check encoding and decoding separately, and anything unsupported falls back a step at a time so a GPU that cannot decode a given codec still encodes on hardware. #330 - Advanced download options moved into the Download button menu instead of a permanently visible panel, and the separate "allow advanced download" setting has been removed. Access is still controlled by the
advanced_downloaduser permission, which can be revoked per role. #330
🛠️ Fixes
- Fixed YouTube downloads failing with
unable to download video data: HTTP Error 403: Forbidden. yt-dlp was always pinned to thenodeJavaScript runtime, which is not installed in the image, so it could not solve YouTube's JS challenge. The runtime is now auto-detected, with a new optionalytdl_js_runtimessetting for pinning one deliberately. #340 - Global custom args containing
-fare no longer silently overridden by the app's default format selection. #340 - The full yt-dlp argument list is now logged at
debuglevel, with credentials and cookie paths redacted. Previously only the argument count was logged, which made download problems very hard to diagnose. #340 - Opening the Downloads page could exhaust the Node heap, restart the process, and return repeated 502 errors on instances with a large download history. The history payload is now bounded and the page no longer overlaps polling requests. #339
- Fixed media library filtering and sorting silently breaking after switching page length to Auto. #311
- Removed the extractor client fallback setting added in 1.0.7. It applied a fixed yt-dlp client list (
--extractor-args youtube:player_client=tv,web) that no longer works and had begun causing the HTTP 403 download errors it was meant to prevent. yt-dlp now selects its own clients. If you still need to pin one, set it in Settings → Downloader → Global custom args, for example--extractor-args,,youtube:player_client=default. Instances with the setting enabled will have it removed automatically on startup and a note written to the log. See Fixing 403 errors for guidance. #341
🔒 Security / Dependencies
- Resolved all 11 open Dependabot alerts across the frontend and backend lockfiles, and updated
tarand@hono/node-serverto releases patching advisories disclosed after those alerts. #338 - Patched the
brace-expansionReDoS advisory (CVE-2026-13149). #335 - Bumped
undicito patch security advisories. #305 - Pinned TypeScript to a range supported by the Angular toolchain. #313 #314
- Refreshed frontend and backend dependencies, including Angular, Scalar API Reference, MongoDB, Redis, express-rate-limit, feed, immutable, fast-uri, ESLint, typescript-eslint, Node type definitions, and the cache and setup-node GitHub Actions. #289 #294 #295 #296 #297 #298 #299 #300 #302 #303 #304 #306 #307 #312 #315 #316 #317 #321 #326 #329 #331 #332 #333 #336 #337
Full Changelog: v1.0.7...v1.0.8