Skip to main content

Changelog

v1.86.1 - 2026-09-27​

Bug Fixes​

  • pace and back off channel tab count lookups (84f3943), closes #865
  • refine tab count refresh throttling (348e3e6), closes #865

Documentation​

  • update CHANGELOG for v1.86.0 [skip ci] (c4fc620)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.86.0...v1.86.1

v1.86.0 - 2026-09-27​

Features​

  • add rolling log files and live log level (026f1d9), closes #883
  • pause downloads and prune by storage limits (4ed6994), closes #196 #217
  • show cookie details and add cookie test (ea1da1b)
  • show downloaded counts for playlists (db53697)
  • show load more progress on channel tabs (86648fd)
  • show per-tab download progress for channels (2d34ebb), closes #865
  • toggle channel auto-download tabs in place (29ce64c)

Bug Fixes​

  • address bugs found in turbo fork comparison (70b53ce), closes #880
  • channelSettingsModule.js validateAdditionalTags doesn't accept whitespace characters except for normal spaces now and channelSettingsModule.test.js tests for this (be77c33)
  • create new additionalTags.js for one source of truth to parse additionalTags in videoDownloadPostProcessFiles.js and channelSettingsModule.js (091f6e3)
  • dedupes video tags from YouTube if they exist in additionalTags already case-insensitively (005653e)
  • explain tabs with more loaded than listed (1b7e525), closes #865
  • match free-space preview to real cleanup (ad9e200), closes #886
  • read yt-dlp output only after it is written (df78a74)
  • server/modules/channelSettingsModule.js validateAdditionalTags now validates that additionalTags is a string (37cc57e)
  • updated server/modules/channelSettingsModule.js to trim settings.additional_tags first so that whitespace-only input normalizes to null (68dffcf)

Tests​

  • add test for case-insensitive deduping tags in channelSettingsModule.validateAdditionalTags (adc9f37)
  • add test for deduping combined additionalTags and tags pulled from YT (c7575bb)
  • added additionalTags.test.js for testing the new parseAdditionalTags helper (15a8d24)

Documentation​

  • docs/DATABASE.md update for additional_tags (18d6f24)
  • docs/USAGE_GUIDE.md updates for the Tags tab in the Channel Settings Dialog (8d3f700)
  • update CHANGELOG for v1.85.0 [skip ci] (46c1701)
  • updated channels.js swagger schema to include additional_tags (a84bd31)
  • updated channelSettingsModules.test.js wording (2df6c3d)
  • updated server/modules/videoDownloadPostProcessFiles.js comment to more accurately reflect the custom tags merge (0d997dc)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.85.0...v1.86.0

v1.85.0 - 2026-09-24​

Features​

  • add channel prefix toggle for embedded title (600fd40), closes #829
  • add configurable schedules and run history (4d98965), closes #837
  • choose settings when adding channels (c6fea7b), closes #595 #864
  • describe custom cron schedules in plain words (316b605), closes #837
  • link channels and playlists to youtube (93da944), closes #866

Bug Fixes​

  • apply the codec sort to every video download (33b04bf)
  • clarify documentation link errors (32842e3)
  • don't crash when config.json can't be watched (a2ba093), closes #870
  • prefer AVC over AV1 at equal resolution for the default codec (d76834e)
  • use one timestamp for youtube removal checks (725688c)

Documentation​

  • update CHANGELOG for v1.84.1 [skip ci] (495276e)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.84.1...v1.85.0

v1.84.1 - 2026-09-20​

Bug Fixes​

  • request json for plex pin authentication (1264005)

Documentation​

  • link documentation site in README [skip ci] (977c594)
  • update CHANGELOG for v1.84.0 [skip ci] (a035fb2)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.84.0...v1.84.1

v1.84.0 - 2026-09-19​

Features​

  • enhance documentation link handling with GitHub slugs and heading extraction (bbc6852)

Bug Fixes​

  • align documentation anchors with Docusaurus (8e6c7e1)
  • cookie-specific Video unavailable fallback (6952170)
  • embed full upload instant in mp4 metadata (32dc613), closes #832
  • emit one version heading per release entry (b4ec513), closes #811
  • preserve generated documentation anchors (43930a5)
  • preserve temp directory root on cleanup (a094c31), closes #835
  • respect TZ env var in console log timestamps (a7c56ed), closes #838
  • support ctrl-click on subscription channels (c8220a8), closes #815
  • docs: correct generated compose instructions (67066cc)

Styles​

  • render active filter badges below filter panel in video list (41ce398)

Code Refactoring​

  • Replace (majority of) raw query in getVideosPaginated (a6498f5)
  • Replace raw query in _flushBackfillUpdates (a30c8e9)
  • Replace raw query in applyVideoUpdates (b135b72)
  • Replace raw query in backfillFromDownloadedVideos (6fb506b)
  • Replace raw query in getAllUniqueChannels (e6f61a0)

Tests​

  • correct documentation content assertions (634363a)
  • cover dynamic documentation sources and anchors (3c2785b)
  • derive documentation coverage from eligible sources (05439bb)
  • include the upstream Asustor documentation (981bf71)
  • match locale sorted documentation sources (20d175b)

Documentation​

  • add automated branded Docusaurus site (3dc75c0)
  • Fix typos in .env.example comments (cc784a5)
  • Fix typos in docker-compose.external-db.yml comments (5856487)
  • Fix typos in docker-compose.yml comments (26912db)
  • preserve upstream package formatting (012bead)
  • update CHANGELOG for v1.83.1 [skip ci] (636a2b0)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.83.1...v1.84.0

v1.83.1 - 2026-09-15​

Bug Fixes​

  • collation migration failing on newer mariadb (3f92739)

Documentation​

  • update CHANGELOG for v1.83.0 [skip ci] (3616d9e)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.83.0...v1.83.1

v1.83.0 - 2026-09-15​

Features​

  • rework playlist auto-download starting point (8126a54), closes #804

Bug Fixes​

  • 360p-only downloads when cookies are enabled (a29ae65), closes #799
  • bump multer and js-yaml to clear npm audit (db030ef)
  • normalize legacy table collations on startup (10cf9a8)

Documentation​

  • update CHANGELOG for v1.82.1 [skip ci] (7240478)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.82.1...v1.83.0

v1.82.1 - 2026-09-14​

Bug Fixes​

  • Change sleep subtitles duration from 2 to 5 seconds (ee0f233)
  • Increase subtitle request delay to 5 seconds to prevent 429 errors (3172d91)

Documentation​

  • update CHANGELOG for v1.82.0 [skip ci] (4ff273b)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.82.0...v1.82.1

v1.82.0 - 2026-09-08​

Features​

  • rewrite backup and restore for reliability (69ddcbe)
  • show queued/downloading status per video (ed882cc), closes #577
  • support externally managed cookie files (6fcb8ad), closes #772

Bug Fixes​

  • recover interrupted table renames (2660bcb), closes #797
  • sync Jellyfin videos inside collections (cdaf41d), closes #794
  • update mysql2 to clear security audit (047d119)
  • warn downgrades require restoring a backup (adc5dff), closes #797

Documentation​

  • mark jobs uuid collation helper as legacy (e186804), closes #797
  • update CHANGELOG for v1.81.1 [skip ci] (8d4c5f8)

Code Refactoring​

  • Rename tables & columns to snake_case (1f475ae)
  • Rename tables & columns to snake_case (2abf3d8)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.81.1...v1.82.0

v1.81.1 - 2026-09-01​

Bug Fixes​

  • repair jobs uuid fk collation on existing dbs (6eee944)
  • stop counting subtitle timeouts as failed (7c6d111), closes #793
  • support Jellyfin 12.0 API key auth (8a8f675), closes #789

Documentation​

  • update CHANGELOG for v1.81.0 [skip ci] (27f9b26)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.81.0...v1.81.1

v1.81.0 - 2026-08-28​

Features​

  • suggest playlists for releases-only channels (dc984ca), closes #616

Bug Fixes​

  • download progress stuck during processing (2da339d), closes #749

Documentation​

  • update CHANGELOG for v1.80.0 [skip ci] (587de1f)
  • update docs for v1.80.0 [skip ci] (95b95f3)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.80.0...v1.81.0

v1.80.0 - 2026-08-22​

Features​

  • add channel-level auto-removal protection (87ae5fe), closes #748
  • add year tag to video NFO files (c1bfb44)
  • clarify channel auto-download requirements (a6466a5)
  • clarify subfolder add flow in settings (41b2d78)

Bug Fixes​

  • add OCI source label to release image (f432a22), closes #768

Documentation​

  • add Asustor App Central platform guide (10e96af)
  • update CHANGELOG for v1.79.0 [skip ci] (6debab5)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.79.0...v1.80.0

v1.79.0 - 2026-08-19​

Features​

  • add yt-dlp stable/nightly update channel (b7b325c)

Bug Fixes​

  • persist download history across restarts (c8159e2), closes #762
  • show failed video info in download history (cb6a151), closes #762

Build Systems​

  • bump js-yaml to 4.3.1 to clear security audit (0221f4d), closes #762

Documentation​

  • update CHANGELOG for v1.78.0 [skip ci] (3501e4f)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.78.0...v1.79.0

v1.78.0 - 2026-08-07​

Features​

  • add backdrop images for Emby and Jellyfin (63e6b1f), closes #753

Bug Fixes​

  • restore utf8mb4_bin on jobs uuid fk columns (d0759d3), closes #752

Build Systems​

  • bump brace-expansion and ip-address for npm audit (c7f4938), closes #752

Documentation​

  • qualify channel .m3u import by library type [skip ci] (e4ed1c3)
  • qualify channel .m3u import by library type [skip ci] (9681a05)
  • update CHANGELOG for v1.77.0 [skip ci] (7d3b962)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.77.0...v1.78.0

v1.77.0 - 2026-07-25​

Features​

  • add per-channel .m3u playlist generation (20c45c7), closes #357
  • add watched and keep-recent auto-removal (77f9efb), closes #316
  • bulk re-download from videos page selection (9186d6a), closes #578
  • capture and show downloaded video resolution (cf74325), closes #578
  • clearer nav labels, mobile subnav scroll hint (bf9328f)
  • keep the download activity page accurate (7a8cfbc)

Performance Improvements​

  • run backfill ffprobes 4 at a time (9383aee), closes #578

Documentation​

  • update CHANGELOG for v1.76.1 [skip ci] (8103449)
  • warn against enabling nfo metadata savers (75569a9), closes #696

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.76.1...v1.77.0

v1.76.1 - 2026-07-20​

Bug Fixes​

  • surface emby/jellyfin api key auth failures (1420bd1)

Documentation​

  • update CHANGELOG for v1.76.0 [skip ci] (ee965d4)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.76.0...v1.76.1

v1.76.0 - 2026-07-19​

Features​

  • auto-refresh download history page (246099c)
  • filter video listings by watched status (174dc5d), closes #706
  • show watched chip on playlist page videos (6a0fa89), closes #706
  • sync watch status for all media server users (20bb6b1), closes #706
  • sync watch status from media servers (56edc40), closes #706

Bug Fixes​

  • correct watched-threshold info in ui and docs (2924e61), closes #706
  • hide channel toolbar in playlists view (bd8ece6)
  • sync emby last-watched time and play count (c450d68), closes #706
  • sync watch status for missing videos (2de2f61), closes #706
  • unhandled yt-dlp spawn error crashing tests (ca49e14), closes #653
  • watched chip missing from mobile videos list (ab939d1), closes #706

Code Refactoring​

  • decompose channelModule into sub-modules (9082862), closes #653

Documentation​

  • add watch status sync to the user docs (a570350), closes #706
  • link to youtarr.com homepage in readme (599fe46)
  • update CHANGELOG for v1.75.0 [skip ci] (fb06f45)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.75.0...v1.76.0

v1.75.0 - 2026-07-14​

Features​

  • add global flat folder structure option (eb6a073), closes #692
  • add in-app youtube channel search (f56cf23), closes #545
  • add video only override to download dialog (9db17bd), closes #711
  • support mp3 playback in video modal (ba4e765)

Bug Fixes​

  • honor channel settings for manual downloads (f2e8b98), closes #692

Documentation​

  • make recent changelog entries user-facing [skip ci] (7c45ad2)
  • update CHANGELOG for v1.74.0 [skip ci] (f5fd5a7)
  • Update comparsion doc Github info (0604943)
  • Update Youtarr comparison document (cee3c8f)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.74.0...v1.75.0

v1.74.0 - 2026-07-10​

Features​

  • Playlists have a new Sort Order setting: keep YouTube's playlist order or reverse it, so playlists that add new videos at the top can play oldest-first in media server playlists and .m3u files (95fe232), closes #687

Bug Fixes​

  • The new Plex TV Series filename preset (added in #605) now caps video titles at 64 bytes like the other presets, so long titles no longer trigger the oversized-title warning or produce paths too long for Plex on Windows (a6c05d0)
  • The playlist page help text now explains that "Refresh from YouTube" re-checks the entire playlist, and that large playlists can take a few minutes (0c363fa), closes #699
  • Downloads to FUSE-backed storage (rclone mounts and similar) no longer get stuck retrying a failing file move; moves and copies now fall back to a plain copy that these mounts accept (bc5b9c6), closes #370 #693
  • Playlist download runs that find nothing new no longer clutter Download History; like channel runs, they only show when "Show jobs with no videos" is checked (43527d8)
  • Playlist auto-downloads now catch new videos added anywhere in a playlist, not just at the end. Refreshes also fetch the full playlist (up to 5000 videos), playlist-only setups no longer record a failed channel job every cycle, and the playlist page gets clearer sort options and progress indicators (f0b8c56), closes #680
  • Audio-only (MP3) playlists now sync to Plex, Jellyfin, and Emby as music playlists and show up in .m3u files; previously they never synced at all. Syncing audio requires a music library covering your output directory. Also adds a downloaded / not downloaded filter to the playlist page (bde4653), closes #699
  • A playlist's Download Type setting now decides whether it syncs as a music or video playlist, instead of guessing from the files on disk; one video download can no longer flip a music playlist to video, and the playlist page shows how many items don't match the playlist's type (9647c86), closes #699

Documentation​

  • update CHANGELOG for v1.73.0 [skip ci] (7e88b16)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.73.0...v1.74.0

v1.73.0 - 2026-07-04​

Features​

  • Playlists can now be removed from the Subscriptions page. Auto-downloads stop and the playlist disappears from the UI, but downloaded videos, media server playlists, and .m3u files are left alone; re-subscribing restores the playlist with its saved settings (5f372ec), closes #676
  • The header now shows an animated indicator whenever a download is running or queued; clicking it opens the activity page (2d48838)
  • Channel pages have a new "Download All" button that queues every video from a tab you haven't downloaded before, showing an accurate video count before you confirm. Large channels can take days, so these jobs are exempt from the usual 6-hour runtime cap (6e131fd), closes #660
  • Failed downloads now show a plain-language likely cause and suggested fix (for example, YouTube bot checks or stale cookies) in Download History, live progress, and notifications, instead of only the raw yt-dlp error (e6a3612), closes #672
  • Playlist pages have a new "Load More" button that fetches the complete playlist (up to 5000 videos); previously only the first 100 videos were ever shown (9d5d6c5), closes #682
  • A new download setting can write -fanart.jpg files from video thumbnails, which some media server clients (like Plex on NVIDIA Shield) use for background previews (99a72aa)
  • Videos that fail mid-download with an HTTP 403 error are automatically retried in a follow-up job, since a fresh attempt usually succeeds; a new setting controls how many retries are allowed (0-3, default 1) (3a18648), closes #672
  • Subfolders are now saved permanently, so folders created in settings no longer disappear on refresh and every subfolder picker shows the same list; a new Manage Subfolders dialog shows where each folder is used and lets you delete unused ones (b82befe), closes #679
  • Videos now appear on the Videos, Channel, and Playlist pages as each download finishes, instead of only after the whole batch completes. Audio-only downloads also now count as downloaded on playlist pages (a6e0bdf), closes #662

Documentation​

  • update CHANGELOG for v1.72.1 [skip ci] (789f6a1)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.72.1...v1.73.0

v1.72.1 - 2026-06-27​

Bug Fixes​

  • Enabling Shorts auto-download on channels that only have a Shorts tab now saves correctly instead of failing with a validation error (f6df56a), closes #671

Documentation​

  • update CHANGELOG for v1.72.0 [skip ci] (6411280)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.72.0...v1.72.1

v1.72.0 - 2026-06-21​

Features​

  • Downloaded indicators now look the same everywhere: distinct icons for video and audio files, the full file path in the tooltip, and playlist videos use the same indicator instead of a generic "Downloaded" chip (f54983e), closes #666

Bug Fixes​

  • Titles and channel names in YouTube search results now show apostrophes and other special characters correctly instead of raw HTML codes like ' (9e4c68c), closes #39 #652
  • Removed channels, including the hidden ones playlists create behind the scenes, no longer override playlist and global download settings; resolution, audio format, subfolder, and rating now resolve from settings you can actually see and change (e211451), closes #663
  • Upgrading older installs no longer fails the full-Unicode database migration on tables with foreign keys (295be30), closes #658
  • Tapping the downloaded indicator on a video no longer also selects that video (9c9fcfd), closes #666

Build Systems​

  • deps: Updated multer to 2.2.0 to patch two high-severity denial-of-service advisories (61ee9aa)
  • deps: Pinned form-data to 4.0.6 to clear a high-severity security advisory pulled in through axios (077e599), closes #654

Documentation​

  • The Unraid install guide now points at the actively maintained community template instead of a stale copy (6ea90ad)
  • update CHANGELOG for v1.71.0 [skip ci] (4b89e45)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.71.0...v1.72.0

v1.71.0 - 2026-06-14​

Features​

  • Internal: new channel records now start with their duration, title filter, and audio format fields initialized (565a686)
  • "playlists" can no longer be used as a subfolder name; it's reserved for Youtarr's generated playlist files (5adc508)
  • The Jellyfin/Emby user picker is now a dropdown that loads accounts when opened and shows the saved user's name instead of a raw ID, with manual entry as a fallback; the API key field is masked without triggering the browser's password manager (4e75b50), closes #144
  • Added the Jellyfin and Emby connection settings (URL, API key, user, and video libraries); both API keys are redacted from all log output (7ca409d)
  • Scheduled download runs now check playlists for new videos right after channels (0466f02)
  • Internal: added the database tables that track playlists, their videos, and media server sync state (b8604a5)
  • Playlist downloads skip videos that are already downloaded or ignored, and track the source channel for videos whose channel isn't subscribed (a752a3c)
  • Scheduled and manual download runs now include auto-download playlists alongside channels; playlists refresh from YouTube first, download only the newest videos, and honor manual override settings (e39baa0), closes #144
  • Emby playlists marked public are now visible to every Emby user instead of only the configured account (bd710f2), closes #144
  • Playlists now generate .m3u files with relative paths, as a fallback for players without native playlist sync (97074d4)
  • Internal: added a single entry point for the new media server sync modules (2b0a47b)
  • Internal: added the shared interface that all media server adapters implement (17cd0ee)
  • Playlists can now sync natively to Emby through its REST API (9818505)
  • Playlists can now sync natively to Jellyfin through its REST API (785b2e2)
  • Internal: added the orchestrator that decides which media servers each playlist syncs to and records per-server sync state (9f07399)
  • Playlists can now sync natively to Plex through its REST API (b5a4d28)
  • Internal: added the registry that detects which media servers are configured for playlist sync (ca1ba9e)
  • Internal: added the Playlist database model (99d058d)
  • Internal: added the database model that tracks each playlist's per-server sync state (98fd51b)
  • Internal: added the database model that tracks the videos in each playlist (4c750ed)
  • Internal: wired the playlist models and their associations into the app (9cc092b)
  • Playlist titles, uploaders, and video lists are now fetched from YouTube via yt-dlp (d5b4228)
  • Playlists have an auto-download toggle on the detail page and an indicator in the subscriptions list; new playlists start with auto-download off, making it opt-in (331dad5), closes #144
  • The playlist settings dialog now covers subfolder, resolution, audio format, and rating, using the same dropdowns as channel and manual downloads (d992574), closes #144
  • The Playlists tab has a "How playlists work" help guide covering subscriptions, download paths, auto-download, .m3u files, and per-server sync caveats (b8ec821), closes #144
  • Playlist downloads can now override download settings at download time; settings resolve per video, with override beating channel, then playlist, then global defaults (e84e8e5), closes #144
  • The playlist page has per-video checkboxes and a "Download Selected" action alongside download-all; the selection survives a failed download (f88437c), closes #144
  • Playlist videos now list newest-first with a sort dropdown, and more videos load automatically as you scroll instead of stopping at the first 50 (a37a5b1), closes #144
  • The playlist page header is organized into Library & Downloads and Media Server Sync groups with inline help, and the bulk download button now reads "Download N new" so you can see how many videos are actually new before confirming (29fd4b9), closes #144
  • Added the playlist detail page and the Jellyfin and Emby settings sections, and renamed the Channels page to Channels & Playlists (old /channels links redirect) (ef5eb86)
  • Plex playlist visibility is now a scope selector (admin, unclaimed server, or a specific user), and changing scope cleans up playlists stranded under the old scope instead of duplicating them (835df1d), closes #144
  • An advanced setting lets Plex playlists be created under a different account or anonymous session, fixing playlists that never appeared in Plex Web on unclaimed servers with unauthenticated LAN access (bb516d4)
  • Internal: added the /api/mediaservers routes that back the connection test and user lookup in Settings (c8070fb)
  • Internal: added the /api/playlists routes for subscribing to and managing playlists (453b46f)
  • A new API endpoint queues a download of every not-yet-downloaded video in a playlist (ecb2e0d)
  • Internal: wired the new playlist and media server routes into the server (7db92f8)
  • Channel and playlist pages have a back button that returns to Channels & Playlists with the matching tab selected (e66c938), closes #144
  • The Channels & Playlists page now shows only the add controls for the current tab, and the redundant "All" tab is gone (e3ac30f), closes #144

Bug Fixes​

  • Fixed a crash when starting playlist downloads (db3982e)
  • When a run downloads both channel and playlist videos, the end-of-run summary and notification now report the combined total instead of only the last job's videos (3813bf2), closes #144
  • The download dialog no longer presents the global resolution as if it applied to every channel; quality resolves per channel or playlist with the global setting as fallback, and the dialog now says so (964a8c8), closes #144
  • Playlist sync now matches files correctly when Plex runs on Windows and Youtarr runs on Linux, or the other way around (c9fa3a6)
  • Fixed Emby playlist creation, which failed with a server error because Emby's API expects a different request format than Jellyfin's; a failed first sync also no longer blocks every later attempt (ab5c6b5)
  • Jellyfin and Emby playlist updates now delete and recreate the playlist, working around a server-side bug that rejects removing items (bddf01c)
  • Playlist sync now finds downloaded videos on the media server even when Youtarr and the server see the media folder at different paths (bf1348b)
  • Playlist sync now recognizes Plex configured with the classic IP and port fields, not just a full URL (e5ef1b9)
  • Subscribing to a playlist no longer fails its first sync; Youtarr waits until at least one video is downloaded before creating the server playlist (350dadd)
  • If a synced playlist was deleted on the media server, the next sync recreates it instead of failing every time (eae455a)
  • Fixed an error on the first playlist download when a video's channel wasn't tracked yet (acbcfdf)
  • Videos downloaded through playlists now go to your configured default subfolder instead of the root of the media directory, where media servers often can't see them (209ae02)
  • Re-adding a previously removed channel now restores it with its old settings; before, re-adding looked like a no-op and imports flagged the channel as already subscribed (297ec55), closes #144
  • Playlist videos that YouTube lists without channel information now get their channel filled in after download instead of staying unattributed (dc86dbe), closes #144
  • Channel videos no longer show invented published dates: real dates show as-is, approximate dates are marked with "~", and unknown dates show "Pending"; a migration backfills accurate dates for already-downloaded videos (34ee615)
  • Subscription import summaries no longer show all zeros when the import finishes (19c6f92), closes #144
  • Newly subscribed channels now download into your configured default subfolder instead of the root of the media directory (f9dc4e5), closes #144
  • Manual and playlist downloads no longer finish as "Complete with Warnings" when the only output was harmless yt-dlp notices (86a54db), closes #144
  • Private and members-only videos no longer show up in playlists as bare video IDs or get queued for downloads that can only fail; they drop out of the list automatically (b2828f2), closes #144
  • Re-downloading deleted videos now works from the playlist page and video modal: the dialog warns about previously downloaded videos, pre-checks re-download, and no longer silently skips them; custom settings only override the values you actually change (8397911), closes #144
  • Videos from VEVO and auto-generated "Topic" channels now download into the subscribed channel's folder with its quality and rating settings, instead of being routed by the uploader listed in the video's metadata (525ade5), closes #144
  • Fixed the Jellyfin/Emby "Test Connection" and user lookup, which always failed because the request used the wrong field names (98d4c0e), closes #144
  • An unreachable media server now stops that server's sync with one concise warning, instead of retrying every video and logging errors that included the API token (2c91fb7), closes #144
  • Updated the navigation dropdown labels to match the new Channels & Playlists naming (1f59dc1)
  • Jellyfin and Emby no longer import the generated .m3u files as duplicate playlists; the playlists folder now carries an ".ignore" marker their library scanners honor (9b180f9), closes #144
  • Media server sync is more resilient: requests time out after 30 seconds instead of hanging, concurrent syncs of the same playlist no longer race and create duplicates, and manual sync runs in the background instead of holding the request open (041008c), closes #144

Documentation​

  • Added a troubleshooting guide for reverse proxies that don't forward WebSocket connections, which left the Activity page showing no progress during downloads (3e9d217)
  • Documented playlist support across the usage guide, README, and the Plex, Jellyfin, and Emby guides (acae0fb), closes #144
  • Documented that Plex shows playlists shared from another account under the "Media" sidebar source, not the recipient's Playlists section (73c6cd3), closes #144
  • update CHANGELOG for v1.70.0 [skip ci] (f193ffd)

Code Refactoring​

  • The anonymous Plex playlist mode now uses an explicit "UNCLAIMED_SERVER" value instead of easy-to-confuse empty-string handling (e49cb8b)
  • Internal cleanup of the download executor, with hardening so a failed download can no longer leave a job stuck "In Progress" and stall the queue (708bf11), closes #645
  • Internal cleanup: split the 1500-line download executor into focused modules, with no intended behavior changes (af70884), closes #645

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.70.0...v1.71.0

v1.70.0 - 2026-05-30​

Features​

  • Channels terminated by YouTube are now detected and flagged in the UI, and their scheduled downloads stop instead of silently failing every run; the flag clears automatically if the channel comes back (04fb599), closes #621

Documentation​

  • update CHANGELOG for v1.69.2 [skip ci] (6265702)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.69.2...v1.70.0

v1.69.2 - 2026-05-15​

Documentation​

  • update CHANGELOG for v1.69.1 [skip ci] (4594e27)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.69.1...v1.69.2

v1.69.1 - 2026-05-13​

Bug Fixes​

  • stop Settings crash on missing config field (a891836), closes #611

Documentation​

  • update CHANGELOG for v1.69.0 [skip ci] (244c571)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.69.0...v1.69.1

v1.69.0 - 2026-05-11​

Features​

  • add customizable video filename template (8e1600a), closes #369
  • add manual rescan and recognize more formats (851e593)
  • config: render filename preview via yt-dlp (24aad30), closes #369

Bug Fixes​

  • reduce bind-mount mariadb corruption risk (9ce4ef7)
  • deps: bump axios to clear high-sev advisory (6f01c15)
  • migrate: preserve source db collation (f6c0664), closes #598
  • setup: replace localhost gate with one-time token (4e1b423), closes #431
  • restore members-only video detection (e0ed879), closes yt-dlp/yt-dlp#16665
  • stop clobbering channelvideo publishedAt on empty refresh (1af2022), closes #608

Documentation​

  • update CHANGELOG for v1.68.0 [skip ci] (99e7f6b)
  • unraid: expand mariadb setup guidance (38a0e1a)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.68.0...v1.69.0

v1.68.0 - 2026-04-29​

Features​

  • add nightly yt-dlp auto-update (1402505)
  • add yt-dlp ip family, rate limit, custom args (228ee4e), closes #527 #529 #535
  • expand youtube api coverage to all tabs (4063f61)
  • harden youtube data api integration (f285feb)
  • support optional YouTube Data API v3 key with yt-dlp fallback (2a3ef33)
  • auth: lower username minimum to 1 char (02996ce), closes #581
  • find-videos: add filter and bulk download (e69a01d)

Bug Fixes​

  • downloads: persist successful videos when some fail (ad3e2c1)
  • downloads: tolerate expected yt-dlp skips (7b8f90a)
  • videos: handle ENOTEMPTY on SMB delete (1e5c701), closes #370

Documentation​

  • update CHANGELOG for v1.67.0 [skip ci] (4a4e4f2)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.67.0...v1.68.0

v1.67.0 - 2026-04-24​

Features​

  • add downloaded filter chip to video lists (f63432d)
  • add Missing and Ignored video filters (9e01949)
  • add per-page selector to library and extract shared pagination bar (551651c)
  • let protected/missing/ignored chips filter in either direction (420a556)
  • redesign library page with table and grid views (fdbb30d)
  • show downloaded date on channel page video views (a189b2d)
  • show pagination controls at top and bottom of video lists (e473ec0)
  • show thumbnails and missing indicators in download history (8561611)
  • unify channel and library video lists with shared VideoList (7149db4)
  • unify pagination and inline loading on lists (d78469b)

Bug Fixes​

  • address code review on video list selection and route tests (c9d4519)
  • pin delete icon right on mobile grid and restore thumbnail clicks for missing videos (d27d42a)
  • return 404 instead of 500 for unsubscribed channel settings (e81b61b)
  • set group-writable umask and protect config.json secrets (d0c04b8)
  • use native date picker and clarify "published" in video date filters (28e8e04)

Continuous Integration​

  • gate pr on claude verdict, not infra errors (2a81dad)

Code Refactoring​

  • extract shared video list chips, filters, and pagination hook (02003e5)

Tests​

  • cover shared VideoList filter panel, toolbar, and selection pill (ebf6c74)

Documentation​

  • add component extraction, placement, and test authoring rules (7bcfd86)
  • expand comparison doc to cover Pinchflat and Tube Archivist (59cf253)
  • update CHANGELOG for v1.66.4 [skip ci] (a4dd486)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.66.4...v1.67.0

v1.66.4 - 2026-04-20​

Bug Fixes​

  • restore download progress bar fill (94ba9e0)

Documentation​

  • update CHANGELOG for v1.66.3 [skip ci] (68e6029)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.66.3...v1.66.4

v1.66.3 - 2026-04-20​

Bug Fixes​

  • download true 1440p/2160p with VP9/AV1 remuxed into MP4 (#534) (a5bab33)
  • restore update available notification banner (c391795)

Documentation​

  • update CHANGELOG for v1.66.2 [skip ci] (0cffcbf)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.66.2...v1.66.3

v1.66.2 - 2026-04-19​

Bug Fixes​

  • websocket: memoize context value to prevent render loop (6b68082)

Documentation​

  • backfill v1.66.0 payload into v1.66.1 CHANGELOG [skip ci] (118f5ec)
  • update CHANGELOG for v1.66.1 [skip ci] (1281f17)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.66.1...v1.66.2

v1.66.1 - 2026-04-19​

Features​

  • client: add token-first tailwind baseline and storybook setup (6aa9ec6)
  • client: port origin/main 4-theme engine and appearance controls (6258283)
  • add new theme tokens and styles for overlays, authentication surfaces, and navigation (fd3ca94)
  • add PageControls component for pagination functionality and update NavSidebar styles (4787a97)
  • add PageControls component for pagination functionality and update NavSidebar styles (1bd9b44)
  • Enhance mobile navigation and action bar functionality (93930fe)
  • enhance Plex integration UI and improve snackbar styling (fa62032)
  • enhance UI components and theme management (96f7b1b)
  • Integrate recent features and depedency PR's (f5dc949)
  • Integrated Claude Code Review Feedback (for the most part) (34278e0)
  • Refactor layout of URL input and bulk import button for improved responsiveness (a5cf734)
  • theme migration - playful/linear/neumorphic/flat themes, dark mode, layout refactor (1588c25)
  • ui: add Radix+Tailwind primitives, wire success/warning/info semantic tokens (8a7bd21)
  • enhance ChannelVideosHeader with action menu for bulk operations (e72b285)
  • Enhance theme integration with new themed chip styles and responsive adjustments (5b07821)
  • migrate Storybook configuration to TypeScript and enhance layout components with new stories and tests (fe83842)
  • Refactor theme handling and background decorations (884412c)
  • Update navigation logic and improve UI components for better user experience (0b442f9)
  • Update UI components for improved theme handling and loading states (2834c60)
  • downloads: improve Manual Download chip layout and bulk import UX (45566c1)
  • find-videos: add table/list view toggle and enrich results for modal (b1cef12)
  • videos: add Find on YouTube search page (26c6c73)

Bug Fixes​

  • release: pass changelog through env vars, not ${{ }} text substitution (6da1269)
  • release: remove empty template braces from shell comment (5dec3ed)
  • a lot of visual cleanup of theme alignment (c14ba66)
  • add data-testid attributes for improved testability in UI components (da0aa81)
  • add Tabs component tests and enhance Dialog component with context support (cbb4a3b)
  • Adjust NavHeader and NavSidebar styles for improved layout and responsiveness (8f07637)
  • channel page infinite-scroll races and thumbnail modal click (fe755e6)
  • Complete UI/UX improvements - mobile responsive tweaks and accessibility enhancements (ffb2d19)
  • keep pagination visible and show skeleton on channel page change (d7ac86c)
  • resolve videos red overlay, settings links, playful sidebar layout, drawer height, nav button routing, text weight, and per-theme animations (041d99a)
  • restore /settings/plex token and clean up subfolder mappings layout (618feed)
  • Still working through build/test errors after theme refactor. (1ce745d)
  • Test and linting error cleanup (924646e)
  • Update dependencies in package-lock.json for improved stability and performance (a176875)
  • Update playful theme styles and improve mobile responsiveness (d81aac1)
  • update routing in DownloadManager, adjust sidebar navigation, and refine video box styles (2e58cc6)
  • Update test selectors and styles for DownloadSettingsDialog, NavHeader, and overlay behavior (df64853)
  • update video status handling and UI components (36f6467)
  • update workflow and text field styles for improved functionality and clarity (001ece9)
  • Working through updating the tests for components after theme refactor (993013e)
  • channels: lift floating Save button above mobile bottom nav (f790459)
  • channels: persist auto-download tabs and tighten settings dialog (8d04506)
  • channels: remove excess bottom padding on mobile ChannelVideos (45b367d)
  • channels: restore download icon on auto-download chips (dd3ab3f)
  • downloads: hide first-video thumbnail and channel caption on mobile multi-video cards (8c09c32)
  • downloads: open VideoModal from history, clean up mobile layout (f052e3e)
  • downloads: redirect to activity page after starting a download (2a22409)
  • downloads: refresh job video data from DB before serving /runningjobs (83bc2d6)
  • downloads: show "Multiple (N)" title in mobile history for multi-video jobs (3e85adb)
  • settings: align Stall Detection Window field with sibling selects (3f72471)
  • settings: keep history side effects out of setState updater (50b1c2a)
  • settings: restore yt-dlp UI and tighten unsaved-changes flow (24e4d23)
  • settings: tighten layout and alignment in Core Settings page (ed6c010)
  • ui: align settings icon with title text in DownloadSettingsDialog (20ed515)
  • ui: clamp Popover position within viewport (5234394)
  • ui: enlarge mobile VideoModal back button and align with title (8bd26d6)
  • ui: keep bottom snackbars above mobile nav (9c0be35)
  • ui: rewrite Channel Display Guide for accuracy and layout (6f6e248)
  • ui: show placeholder and rename Rating label on ChannelPage (c578735)
  • ui: silence Radix DialogTitle and orphan label a11y warnings (5889bfa)
  • videos: align header and fit mobile pagination (7628010)
  • videos: smoother pagination transitions (ce7b2e9)
  • videos: unblock backend tests and address PR review (eca44a1)

Styles​

  • find-videos: widen search input on desktop and make Search button look like a button (b6fc83f)

Tests​

  • unblock CI lint and restore lost coverage (1ee835e)
  • frontend: add coverage for hooks, VideoModal, and post-refactor components (0f7267c)

Documentation​

  • Add pinchflat comparison [skip ci] (ab7978e)
  • refresh CLAUDE.md for Tailwind/Radix retheme (e701f7b)
  • restructure README Quick Start and move dev builds to DEVELOPMENT.md (5474aa9)
  • update CHANGELOG for v1.65.0 [skip ci] (88fb5d5)

Code Refactoring​

  • enhance test coverage and improve component accessibility (a25f785)
  • remove neumorphic theme and related styles; update NavSidebar and RatingBadge components (3d3321c)
  • replace any types in ui primitives with narrower types (9a9d41f)
  • split NavHeader into chrome, actions, and top-nav items (37300e7)
  • split NavSidebar into orchestrator, desktop, mobile, and drawer content (480dcb2)
  • split ui/layout.tsx into focused primitive files (f90ca99)
  • nav: rename Subscriptions to Imports and clarify Channels sub-item (470fb8b)
  • ui: drop silent sx prop from non-honoring wrappers (e2f7c72)
  • video-search: export error classes directly on module.exports (b2473a5)
  • videos: address PR review nits on Find on YouTube (e09393d)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.65.0...v1.66.1

v1.65.0 - 2026-04-13​

Features​

  • api: add PATCH /api/videos/:id/protected endpoint (#505) (ad2c493)
  • backend: add setVideoProtection method to videosModule (#505) (2a499ec)
  • backend: exclude protected videos from auto-deletion (#505) (cc617aa)
  • channels: add manual tab override with yt-dlp redetect (89fb2ec)
  • channels: add selectable page size for channel videos (#288) (8c4007a)
  • db: add protected column to Videos table (#505) (c9f7009)
  • frontend: add useVideoProtection shared hook (#505) (7c87eb8)
  • plex: add per-subfolder library mapping to plexModule (5dbccea), closes #310
  • plex: add PlexSubfolderMappings UI component (80619cb)
  • plex: wire subfolder-aware refresh into download and channel settings (a82afb8)
  • types: add protected field to VideoData and ChannelVideo (#505) (88ef370)
  • ui: add protected filter chip to ChannelPage (#505) (55d00c0)
  • ui: add shield icon and protected filter to VideosPage (#505) (4c4194e)
  • ui: add shield icon to VideoCard (#505) (fa40cbe)
  • ui: add shield icon to VideoListItem and VideoTableView (#505) (079007e)
  • ui: wire up video protection toggle in ChannelVideos (#505) (e9792c1)
  • videos: add video modal with detail view and streaming (#522) (58290cb)
  • videos: polish video modal UI/UX (0339f85)

Bug Fixes​

  • db: correct helpers require path in migration (#505) (4411e25)
  • ui: improve protected filter chip placement on VideosPage (#505) (85f8c19)
  • address PR review - table handler, error leak, server-side filter (#505) (fb4f311)
  • guard shield on removed videos, clean up redundant check and loading state (#505) (a53b046)
  • plex: normalize subfolder sentinels before Plex library refresh (83cc231)
  • address PR review feedback for plex subfolder mappings (9fbcd6c)
  • deps: patch critical axios and vite vulnerabilities (671a936)
  • plex: subfolder mappings honor per-channel and default subfolders (aed5f6b)
  • plex: use Promise.allSettled in refreshLibrariesForSubfolders (fc69cf8)
  • scripts: reset-server-data also clears dev and arm db volumes (7bc28a5)
  • videos: address PR review feedback on video modal (3a74331)
  • videos: video modal behaved poorly for members-only videos (777fc99)
  • videos: video modal download flow was broken and metadata displayed incorrectly (67efb46)
  • videos: video player info tooltip was not reachable on mobile (0c29fc5)

Code Refactoring​

  • plex: cache library list and decompose display rendering (cc66880)
  • ui: extract ProtectionShieldButton shared component (#505) (79faba1)

Tests​

  • plex: add PlexSubfolderMappings component tests (243f1bf)
  • plex: add tests for per-subfolder library refresh methods (dfd7f19)

Documentation​

  • add plexSubfolderLibraryMappings configuration documentation (fad0ed8)
  • Add warnings about external DB restarts (131b2e4)
  • document video detail modal and in-app playback (270fadf)
  • refine project guidelines and dev workflow documentation (1d51772)
  • update CHANGELOG for v1.64.0 [skip ci] (9f3cb9e)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.64.0...v1.65.0

v1.64.0 - 2026-04-08​

Features​

  • add dateadded element to NFO output (#444) (7ae6487)
  • add formatDateAdded method to NfoGenerator (#444) (ea7eefd)
  • channels: add optional initialSettings param to upsertChannel for new rows (01b7b0d)
  • subscriptions: add constants and concurrency limiter for import module (595e577)
  • subscriptions: add import job runner with concurrency, cancellation, belt-and-suspenders dedup (04964f4)
  • subscriptions: add og:image thumbnail enricher with concurrency cap (4481172)
  • subscriptions: add one-time cookies yt-dlp fetcher with temp file isolation (a12f552)
  • subscriptions: add ReviewTable, MobileCard, BulkActionsBar, RowSettingsPopover/Sheet (cb8f267)
  • subscriptions: add settings chips to mobile import cards (d1a7e5d)
  • subscriptions: add subfolder, quality, and rating chips to import table rows (502c013)
  • subscriptions: add subscription import API routes (b61df39)
  • subscriptions: add SubscriptionImportModule singleton with preview and import orchestration (99aedd8)
  • subscriptions: add Takeout CSV parser with quoted field and BOM support (9be7221)
  • subscriptions: add types, useActiveImport hook, ActiveImportBanner, import page skeleton, and route (a72048b)
  • subscriptions: add useImportFlow state machine, SourcePicker, ChannelThumbnail, DisclaimerBanner (2929439)
  • subscriptions: add yt-dlp error classifier for friendly user messages (4b21d27)
  • subscriptions: fetch subfolders and config in import page (2b0a08b)
  • subscriptions: migrate jobs.output to MEDIUMTEXT for import results (47763c2)
  • subscriptions: replace subfolder text field with SubfolderAutocomplete in mobile sheet (1465453)
  • subscriptions: replace subfolder text field with SubfolderAutocomplete in popover (8769597)
  • subscriptions: sort imported channels alphabetically in preview (a57b6be)
  • subscriptions: thread subfolder and config props through review table (c7c4e46)
  • subscriptions: wire subscription import routes and module init (34a4452)

Bug Fixes​

  • add backend tests to pre-commit hook and fix cronJobs test mock (a92325f)
  • make orphan directory scan resilient to per-subfolder errors (be17371)
  • proactively clean up orphan empty channel directories (#443) (ddd7c4a)
  • channels: pass initialSettings through getChannelInfo to upsertChannel (713bf88)
  • downloads: filter out Import Subscriptions jobs from download history (b641bb1)
  • subscriptions: address code review findings for import banner and settings (2878fd5)
  • subscriptions: address multiple import settings and display issues (9764046)
  • subscriptions: default imported channels to global default subfolder (7abdb24)
  • subscriptions: fix settings mapping, job persistence, and code review findings (ab3680b)
  • subscriptions: resolve integration issues from manual testing (91ee35e)

Styles​

  • subscriptions: move import statement to top of file (bd9c64d)

Documentation​

  • add subscription import documentation to usage guide, troubleshooting, and CLAUDE.md (06c3354)
  • update CHANGELOG for v1.63.0 [skip ci] (b087e43)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.63.0...v1.64.0

v1.63.0 - 2026-04-04​

Features​

  • add notifications for automatically removed videos (062fee6), closes #218

Bug Fixes​

  • show actual total deleted count in auto-removal notification truncation (17df3ac)
  • tighten Claude review workflow permissions and expand CLAUDE.md (ccbe8ac)

Documentation​

  • update CHANGELOG for v1.62.0 [skip ci] (d763ba5)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.62.0...v1.63.0

v1.62.0 - 2026-04-03​

Features​

  • announce production releases in Discord (03a5f0e)

Bug Fixes​

  • remove dependabot and patch lodash vulnerability (86a6e93)

Documentation​

  • update CHANGELOG for v1.61.1 [skip ci] (994cc95)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.61.1...v1.62.0

v1.61.1 - 2026-04-03​

Bug Fixes​

  • patch high-severity dependency vulns (0841f8b)

Documentation​

  • update CHANGELOG for v1.61.0 [skip ci] (f96fcae)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.61.0...v1.61.1

v1.61.0 - 2026-03-21​

Features​

Bug Fixes​

  • yt-dlp update failure when run as non-root user (#451) (45021fa)

Documentation​

  • update CHANGELOG for v1.60.1 [skip ci] (1c57705)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.60.1...v1.61.0

v1.60.1 - 2026-03-05​

Documentation​

  • update CHANGELOG for v1.60.0 [skip ci] (a43e9a1)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.60.0...v1.60.1

v1.60.0 - 2026-03-02​

Features​

  • client: migrate Storybook config and parity play coverage (6bb59e6)
  • add Storybook test job to CI workflow (a22959e)
  • channel flat file structure option (#258) (86dd6c6)
  • enhance Storybook integration with caching, add MSW handlers, and improve test accessibility (4a9b020)
  • enhance Storybook integration with CI and update documentation (2bf81e3)
  • update CI workflow for Storybook validation and simplify related scripts (50d7f9a)

Bug Fixes​

  • add 15s timeout to HTTP thumbnail download to prevent long hangs (#405) (80eb2f1)
  • address code review for flat file feat (#442) (426334c)
  • address issues raised during review/testing (c2408fc)
  • Addressed nested router issue and filled gap in storybook testing (43f1220)
  • correct import path for DEFAULT_CONFIG in MSW handlers (0120489)
  • resolve CI lint failure (0cc17ba)
  • stale NFS mounts (#434) (cd9a334)
  • Storybook failing to load/update docs (8f28929)
  • Storybook MemoryRouter story issues (7014f8e)

Documentation​

  • update CHANGELOG for v1.59.0 [skip ci] (4752a38)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.59.0...v1.60.0

v1.59.0 - 2026-02-16​

Features​

  • add default_rating handling in settings and channel mapping (cec6610)
  • add Vite environment variables and enhance location mocking utilities for tests (a4e52de)
  • enhance testing setup with window.location mock and aligned endpoint calls with upstream-dev (a364a44)
  • enhance URL validation to support sync/async handlers and improve error handling (d5d9cdc)
  • implement age limit mapping and validation for content ratings (1b0a8fa)
  • Implement content rating system across various components (349322d)
  • implement locationUtils for robust window.location mocking in tests and refactor components to use it (86c0a1b)
  • implement safe JSON parsing for fetch responses and remove unused location mock (9500926)
  • migrate client to Vite, update dependencies, and refactor tests (cf0f67c)
  • Pull content rating feature from full-stack and updated existing testing. (c679d17)
  • update cache control settings across API calls and static assets (7c9842b)
  • update video rating handling to support null values and normalize ratings in API (d40de38)

Bug Fixes​

  • #426: use configurable tmp path (8edefdf), closes #426
  • ci: Claude Code gh workflow [skip ci] (e103335)
  • ci: Claude Code gh workflow [skip ci] (3ab9525)
  • ci: grant gh CLI permissions to Claude Code workflow [skip ci] (2ff9f19)
  • ci: grant gh CLI permissions to Claude Code workflow [skip ci] (60f903c)
  • Improve content rating reliability and Plex metadata embedding (29ac65d)
  • update import paths for locationUtils in multiple components and tests (c97b740)
  • ci: Claude Code gh workflow [skip ci] (af6cf50)
  • ci: Claude Code gh workflow [skip ci] (42d6816)
  • ci: Claude Code gh workflow [skip ci] (c23a3bc)
  • ci: Claude Code gh workflow again [skip ci] (6b29f5c)
  • ci: Claude Code gh workflow again [skip ci] (4d4d73c)
  • ci: Claude Code gh workflow again [skip ci] (609d38a)
  • ci: stop Claude running disallowed commands (d6571fa)
  • tests: correct --year in AtomicParsley test (f826275)
  • tests: prevent Jest hanging by mocking tempPathManager (185ff04)
  • Addressed test error and implemented code review suggestions. (ce2315f)
  • Better helper text for content rating setting (9a26bbb)
  • option for original date (year) metadata (1c8e7d6)
  • Update tests to include rating field in VideoTableView and DownloadSettingsDialog (3745388)

Tests​

  • include Channel in models mock and set https mock statusCode=200 to fix CI (e106d14)

Code Refactoring​

  • update TypeScript version and remove unused files (2d301be)

Documentation​

  • document backfill-ratings.js script in USAGE_GUIDE (79e5c74)
  • fix Vite dev server port in documentation [skip ci] (cd49ed9)
  • PR guidelines / expectations CONTRIBUTING.md [skip ci] (d404bf8)
  • PR guidelines / expectations CONTRIBUTING.md [skip ci] (cce2e81)
  • update CHANGELOG for v1.58.0 [skip ci] (bc52fad)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.58.0...v1.59.0

v1.58.0 - 2026-01-31​

Features​

  • add backup and restore scripts (1efe59f)
  • add in-app yt-dlp update functionality (8900fb9)

Bug Fixes​

  • patch form-data security vuln (CVE-2025-7783) (1830341)
  • use byte-based truncation for yt-dlp output templates (#404) (09a58f9)

Continuous Integration​

  • add Claude Code review workflow for PRs (a808618)
  • Claude Code review workflow fix (cb9a074)

Documentation​

  • update CHANGELOG for v1.57.1 [skip ci] (247f063)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.57.1...v1.58.0

v1.57.1 - 2026-01-30​

Bug Fixes​

  • exclude broken android_sdkless player client to prevent 403 errors (ff60d21), closes #15712
  • Revert previous fix attempt for 403 (60f7cf5)

Documentation​

  • update CHANGELOG for v1.57.0 [skip ci] (2898ad5)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.57.0...v1.57.1

v1.57.0 - 2026-01-19​

Features​

  • Channel videos enhancements (b37f4e1)
  • Channel videos filtering (dcd3046)
  • #309: add support for mp3-only download (dd57bbc), closes #309

Bug Fixes​

  • resolve coverage badges workflow failure (a87640d)

Documentation​

  • update CHANGELOG for v1.56.0 [skip ci] (cee0c56)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.56.0...v1.57.0

v1.56.0 - 2026-01-04​

Features​

  • add --dev flag to start scripts for bleeding-edge builds (1d985c7)
  • add API key auth to verifyToken middleware (a0ef720)
  • add API key routes and download endpoint (c755f86)
  • add apiKeyModule with security features (850ee7b)
  • add ApiKeys table and model (2346c40)
  • add ApiKeysSection component with bookmarklet (72f54e5)
  • add download source indicator for API-triggered downloads (43ca979)
  • add endpoint to test individual notification webhooks (228c3a7)
  • add individual test buttons and rich formatting toggle for notifications (1ba61f3)
  • always stage to hidden temp directory (6010ef9)
  • auto-migrate Discord webhooks to Apprise format on upgrade (b243b2a)
  • #349: add changelog page to web UI (bc8edb3), closes #349
  • #381: regex examples in channel title filter (ac7419d), closes #381
  • add logger redaction and rate limiting for API keys (7f9934d)
  • implement dev branch workflow with RC builds (17b5242), closes #378
  • integrate ApiKeysSection in Configuration page (7682998)
  • make API keys section collapsible and add swagger docs (67821f4)

Bug Fixes​

  • change RC tag format from version-based to dev-rc.<sha> (4a5dd6a)
  • correct InfoTooltip prop name (50166ec)
  • filter dev tags from version update notification (d06963e)
  • make temp path test platform-agnostic (c6ffc3c)
  • only log notification success when at least one succeeds (b26feee)
  • rate limiter IPv6 validation error (b556bfa)
  • resolve ESLint waitFor multiple assertions errors (ccb21d7)
  • route Slack notifications through Apprise markdown mode (77a3fda)
  • sync frontend notification service names with backend registry (aca08f4)
  • theme-aware color for dark mode support (fb7c014)
  • update notification test to match new success logging format (74c1394)

Performance Improvements​

  • optimize Dockerfile with multi-stage Apprise build to reduce image size (b3f6f18)

Styles​

  • remove trailing whitespace in notification modules (93fc3e3)

Tests​

  • add comprehensive API key security tests (f5cb315)
  • add migration tests and update notification tests (4e10aea)
  • fix notification tests for refactored module (6f7e064)
  • make version filter test more flexible (3637d11)
  • update frontend tests for refactored NotificationsSection (278c9af)

Code Refactoring​

  • introduce service registry pattern for notification routing (99349ba)
  • remove unused getApiKey function (1069361)
  • remove unused notification formatters and senders (0ea6efd)
  • split notification module into separate formatters and senders (88007cb)

Documentation​

  • update CHANGELOG for v1.55.0 [skip ci] (10a9e95)
  • update notification configuration documentation (86b1013)
  • unraid: add instructions for running as non-root user (276febc)
  • add API integration guide (b4b6fa4)
  • add API key settings to CONFIG and USAGE_GUIDE (dee27de)
  • clarify API keys support single videos only (7ae79b4)
  • update CONTRIBUTING.md and DEVELOPMENT.md for dev branch workflow (4ff0f47)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.55.0...v1.56.0

v1.55.0 - 2025-12-10​

Features​

  • add swagger-jsdoc and swagger-ui-express dependencies (8a23f4f)
  • add Swagger/OpenAPI configuration with API documentation (70d2613)
  • #287: subfolder enhance / optimize perf (81a0a03), closes #287

Bug Fixes​

  • ci: move coverage comment to separate workflow for fork PR support (04658f5)
  • auto-detect ARM architecture for MariaDB volume configuration (ef8974d)

Tests​

  • update backend tests for modular route structure (6389d6b)

Code Refactoring​

  • extract API routes into modular route files (16b7faf)
  • update server.js to use modular route system (c776022)

Documentation​

  • add ARM architecture guidance for manual docker compose users (956bebc)
  • add contributors page (0459771)
  • Add link to Patreon (07ca0ed)
  • update CHANGELOG for v1.54.1 [skip ci] (be3f89e)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.54.1...v1.55.0

v1.54.1 - 2025-11-24​

Bug Fixes​

  • downloads: special chars in channel names (a4c2276)

Documentation​

  • update CHANGELOG for v1.54.0 [skip ci] (ca3beb7)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.54.0...v1.54.1

v1.54.0 - 2025-11-24​

Features​

  • channels: add pagination/sort/filtering to Your Channels (ed2406c)

Documentation​

  • update CHANGELOG for v1.53.2 [skip ci] (1a30714)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.53.2...v1.54.0

v1.53.2 - 2025-11-22​

Bug Fixes​

  • improve database resilience and platform compatibility (974c743)
  • db: resolve custom user auth issues and improve config clarity (21b7ada)

Documentation​

  • major documentation restructure (0bc28b6)
  • update CHANGELOG for v1.53.1 [skip ci] (aa3c2a6)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.53.1...v1.53.2

v1.53.1 - 2025-11-19​

Bug Fixes​

  • increase video validation timeout from 10s to 60s (d5d074c)

Documentation​

  • update CHANGELOG for v1.53.0 [skip ci] (66395f6)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.53.0...v1.53.1

v1.53.0 - 2025-11-19​

Features​

  • add ARM64 multi-architecture Docker image support (729384d)

Bug Fixes​

  • add crossorigin attribute to manifest link to prevent CORS warnings (49fd64b)
  • Channel List styling (9154773)

Documentation​

  • add Apple Silicon troubleshooting for MariaDB virtiofs corruption (b566139)
  • update CHANGELOG for v1.52.0 [skip ci] (9cfffb7)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.52.0...v1.53.0

v1.52.0 - 2025-11-15​

Features​

  • add dark mode theme support with toggle in configuration (2a4cf68)

Documentation​

  • update CHANGELOG for v1.51.1 [skip ci] (c3efa2d)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.51.1...v1.52.0

v1.51.1 - 2025-11-15​

Bug Fixes​

  • relocate config.example.json to /app/server for Elfhosted compatibility (0db5ade)

Documentation​

  • update CHANGELOG for v1.51.0 [skip ci] (0182737)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.51.0...v1.51.1

v1.51.0 - 2025-11-15​

Features​

  • add advanced settings section with proxy and rate limiting (21c4a01)
  • surface yt-dlp version and normalize rate-limit IP (b94cd6a)

Code Refactoring​

Documentation​

  • update CHANGELOG for v1.50.1 [skip ci] (dd19493)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.50.1...v1.51.0

v1.50.1 - 2025-11-13​

Bug Fixes​

  • terminated download history and Channel UI (748d46e)

Documentation​

  • improve AUTH_PRESET credential documentation and validation feedback (b372829)
  • update CHANGELOG for v1.50.0 [skip ci] (e823431)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.50.0...v1.50.1

v1.50.0 - 2025-11-11​

Features​

  • add HTTPS support for Plex server connections (30e5b75)
  • improve update instructions and add colorized console output (99187b6)

Documentation​

  • update CHANGELOG for v1.49.1 [skip ci] (b2d8db0)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.49.1...v1.50.0

v1.49.1 - 2025-11-10​

Bug Fixes​

  • Fix for yt-dlp temp directory behavior on elfhosted (d2f68a4)
  • Set TMPDIR for all yt-dlp invocations (dfee084)

Documentation​

  • update CHANGELOG for v1.49.0 [skip ci] (8e18cda)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.49.0...v1.49.1

v1.49.0 - 2025-11-10​

Features​

  • add database health check and error overlay (935b181)
  • enhance database error handling with auto-recovery and improved UX (1c37193)

Bug Fixes​

  • Use canonical channel thumbs part 2 (58930ee)
  • Use canonical YT URL for channel video thumbs (339e52c)

Code Refactoring​

  • startup scripts, infra, documentation (b02316f)

Documentation​

  • improve Docker Compose installation documentation (690dba6)
  • streamline development documentation and remove deprecated scripts (cf2418a)
  • update CHANGELOG for v1.48.0 [skip ci] (e9ca9dc)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.48.0...v1.49.0

v1.48.0 - 2025-11-05​

Features​

  • add ignore flag for channel videos to prevent auto-downloads (8573795)

Bug Fixes​

  • prevent page reload when toggling video ignore status (e7b1679)

Documentation​

  • update CHANGELOG for v1.47.1 [skip ci] (9fc9197)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.47.1...v1.48.0

v1.47.1 - 2025-11-04​

Bug Fixes​

  • prevent timeout during long video post-processing operations (3678372)

Documentation​

  • add Synology NAS installation guide (9d92498)
  • Remove time references (cdb560f)
  • update CHANGELOG for v1.47.0 [skip ci] (c347b73)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.47.0...v1.47.1

v1.47.0 - 2025-11-03​

Features​

  • add channel download filters with duration and regex support (a4996e1)
  • add filter indicators to channel manager and channel page UI (71c15a6)

Bug Fixes​

  • Channel settings text for MB (f41869c)

Documentation​

  • remove migrations volume mount references and improve Docker setup docs (f94c8d0)
  • update CHANGELOG for v1.46.2 [skip ci] (8084df4)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.46.2...v1.47.0

v1.46.2 - 2025-11-02​

Bug Fixes​

  • display current channel name during grouped channel downloads (81a03a3)
  • ensure all videos from multi-group downloads are persisted and displayed correctly (4372305)
  • ensure database updates complete and job history shows all videos (0ac02fa)
  • persist manual download videos to database before job completion (26f3abc)
  • prevent premature job completion in multi-group downloads (4f33e34)
  • update channel sub_folder in database before file operations (18a8f82)
  • docker: remove migrations volume mount from production compose files (f9aa22b)

Documentation​

  • update CHANGELOG for v1.46.0 [skip ci] (0f4e0c1)
  • update CHANGELOG for v1.46.1 [skip ci] (5111eee)
  • docker: remove migrations volume and add critical warning (f34a3fd)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.46.1...v1.46.2

v1.46.1 - 2025-11-01​

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.46.0...v1.46.1

v1.46.0 - 2025-10-30​

Features​

  • use video filename for video posters instead of generic poster.jpg (c779e03)

Bug Fixes​

  • prevent stuck pending jobs blocking download queue (c69ea6e)

Documentation​

  • update CHANGELOG for v1.45.1 [skip ci] (20c3b4a)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.45.1...v1.46.0

v1.45.1 - 2025-10-26​

Bug Fixes​

  • #120: fix download history for channel downloads (f82a15c)

Documentation​

  • update CHANGELOG for v1.45.0 [skip ci] (be51d54)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.45.0...v1.45.1

v1.45.0 - 2025-10-26​

Features​

  • #120: channel level overrides WIP... (3095632), closes #120
  • #120: sync channel settings updates and honor queued override settings (c0ae2f8), closes #120

Documentation​

  • update CHANGELOG for v1.44.0 [skip ci] (0c7b34b)
  • #120: document channel-level configuration overrides (2878a2d), closes #120

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.44.0...v1.45.0

v1.44.0 - 2025-10-22​

Features​

  • downloads: show 403 errors in UI + new yt-dlp (43f450e)

Performance Improvements​

  • downloads: throttle websocket progress updates to reduce overhead (08b5833)

Documentation​

  • update CHANGELOG for v1.43.0 [skip ci] (cd23bb9)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.43.0...v1.44.0

v1.43.0 - 2025-10-18​

Features​

  • adopt structured logging with pino for backend (36acfe2)
  • subtitles: add subtitle download support and fix filename handling (149cb0b), closes #243

Bug Fixes​

  • improve ffmpeg thumbnail processing quality and logging (c76e02f)

Documentation​

  • update CHANGELOG for v1.42.2 [skip ci] (b265452)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.42.2...v1.43.0

v1.42.2 - 2025-10-12​

Bug Fixes​

  • improve loading message clarity during video fetching (d4a4e62)
  • prevent downloads of live streaming videos (42b79d5)

Documentation​

  • clarify docker compose environment variable requirements (c42512d)
  • update CHANGELOG for v1.42.1 [skip ci] (f5f75d4)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.42.1...v1.42.2

v1.42.1 - 2025-10-12​

Bug Fixes​

  • prevent infinite loop in config file watcher (edbc1ba)
  • refine ChannelVideos UI for better desktop/mobile experience (011517f)

Documentation​

  • update CHANGELOG for v1.42.0 [skip ci] (dfbfbbd)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.42.0...v1.42.1

v1.42.0 - 2025-10-11​

Features​

  • add temp directory download processing with Elfhosted platform support (f000dbe)

Bug Fixes​

  • replace lastFetched with per-tab lastFetchedByTab tracking (e0485fe)

Documentation​

  • update CHANGELOG for v1.41.0 [skip ci] (a21d892)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.41.0...v1.42.0

v1.41.0 - 2025-10-11​

Features​

  • implement job termination cleanup and video recovery (f5e41cf)

Bug Fixes​

  • resolve channel addition failure when only shorts tab exists (3c7f970)

Tests​

  • update channelModule tests for recent API changes (9844a97)

Documentation​

  • update CHANGELOG for v1.40.0 [skip ci] (f8ff819)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.40.0...v1.41.0

v1.40.0 - 2025-10-09​

Features​

  • add job termination and improve channel page loading states (c0a0dd4)
  • add queued jobs visibility to download progress (4633894)

Bug Fixes​

  • ensure channelvideos publishedAt always reflects YouTube sort order (6862900)
  • ensure ETA remains visible on mobile in download progress (f8e8358)

Documentation​

  • update CHANGELOG for v1.39.1 [skip ci] (69259de)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.39.1...v1.40.0

v1.39.1 - 2025-10-09​

Bug Fixes​

  • prevent overlapping channel downloads and improve ETA display (2f53786)

Documentation​

  • update CHANGELOG for v1.39.0 [skip ci] (05605fd)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.39.0...v1.39.1

v1.39.0 - 2025-10-08​

Features​

  • add support for downloading shorts and live streams from YouTube channels (c020e0b)
  • handle missing and approximate publish dates (a0b4708)

Code Refactoring​

  • Break up ChannelVideos into more maintainable structure (6de14a7)

Documentation​

  • update CHANGELOG for v1.38.0 [skip ci] (695dc98)
  • Update Readme for live/shorts support (9a409f5)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.38.0...v1.39.0

v1.38.0 - 2025-10-06​

Features​

  • add automatic video removal with dry-run preview (fb16aea)
  • add video codec preference configuration (08661fb)
  • add video deletion functionality to channel page (2300f1c)
  • standardize health checks with curl and update endpoint path (e5b243d)

Bug Fixes​

  • newly uploaded videos get last_downloaded_at (5cb5fb8)

Tests​

  • speed up Configuration component tests (77be651)

Documentation​

  • update CHANGELOG for v1.37.0 [skip ci] (e87427c)
  • Update documentation for Unraid (e0eeb67)
  • Update documentation for video removal (d540ac2)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.37.0...v1.38.0

v1.37.0 - 2025-10-04​

Features​

  • bootstrap admin credentials from AUTH_PRESET env vars (3ff5988)

Documentation​

  • update CHANGELOG for v1.36.0 [skip ci] (37581eb)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.36.0...v1.37.0

v1.36.0 - 2025-10-04​

Features​

  • add external database support with helper scripts and documentation (4173099)
  • include migrations in Docker image for UNRAID support (ae6abaf)

Documentation​

  • update CHANGELOG for v1.35.0 [skip ci] (6643127)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.35.0...v1.36.0

v1.35.0 - 2025-10-04​

Features​

  • add --no-auth flag (5e12a17)
  • add Discord notifications for new video downloads (974202e)
  • support YouTube live stream URL format (5a70eaf)
  • track video download timestamps and improve metadata (a409879)

Documentation​

  • update CHANGELOG for v1.34.0 [skip ci] (45b3507)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.34.0...v1.35.0

v1.34.0 - 2025-10-03​

Features​

  • add media_type and youtube_removed fields to video tracking (516809f)
  • display media type badges on channelvideos (2cfaf7c)
  • surface removed YouTube status and media types (c8d003a)

Bug Fixes​

  • apply local thumbnail fallback to all YouTube-removed videos (fe48162)
  • private videos and small UI issue (fbb8fb6)
  • remove auto-scroll when changing pagination pages (e2bca11)
  • upgrade axios to 1.12.0 to resolve security vulnerabilities (dbc3f40), closes #85 #69

Tests​

  • fix password mismatch test timeout in CI (f4352c6)
  • Fix tests failing only in CICD (3f80332)

Documentation​

  • update CHANGELOG for v1.33.0 [skip ci] (dc6884b)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.33.0...v1.34.0

v1.33.0 - 2025-10-01​

Features​

  • add compact list view and always-visible pagination for mobile (f7bd856)
  • enchanced videos page with grid view and server-side pagination (4d89541)

Bug Fixes​

  • remove duration filter from yt-dlp command (555fbb3)

Tests​

  • fix timing issue in password mismatch validation test (7e40fba)

Documentation​

  • update CHANGELOG for v1.32.0 [skip ci] (3732f89)
  • Update README [skip ci] (40fe088)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.32.0...v1.33.0

v1.32.0 - 2025-09-28​

Features​

  • add channel search functionality to videos page filter menu (1c9a385)
  • add default resolution fetching to channel videos page (81a118e)
  • improve manual download UX with better previously-downloaded video handling (eee2964)
  • video related enhancements (e3cc418)

Bug Fixes​

  • improve database connection pooling and file metadata backfill reliability (ead286e)
  • improve video file detection with recursive subdirectory scanning (fcef079)
  • remove spurious 0 rendering in video thumbnails (49ce770)
  • resolve video file path mismatches for special characters and timing issues (e03e9b2)
  • use parameterized queries for video metadata updates to handle Unicode paths (ef5f442)

Tests​

  • add unit tests for videoFileLocator module (612ace1)

Documentation​

  • update CHANGELOG for v1.31.0 [skip ci] (89f5708)
  • Update README.md [skip ci] (7915689)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.31.0...v1.32.0

v1.31.0 - 2025-09-27​

Features​

Bug Fixes​

  • clean up yt-dlp temporary files on successful downloads (e8cefd7)
  • correct coverage file paths and YAML syntax in CI workflows (68a29af)
  • prevent workflow loops and fix badge updates [skip ci] (d65fc28)
  • use ACTION_RUNNER_TOKEN for coverage badge updates to bypass branch protection (d3172a2)

Tests​

  • add more test coverage (05627d9)
  • add more test coverage & CI (b251448)
  • more test coverage (5cff61b)
  • more test coverage and CI coverage checks (e033507)

Documentation​

  • update CHANGELOG for v1.30.0 (e468186)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.30.0...v1.31.0

v1.30.0 - 2025-09-27​

Features​

  • improve Plex connectivity setup and download error handling (7020bf6)

Bug Fixes​

  • hide Account & Security section when internal auth is disabled (1ccdd22)

Tests​

  • stabilize WSL Plex path suggestion scenario (2ad2dc9)

Documentation​

  • update CHANGELOG for v1.29.3 (26d4b13)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.29.3...v1.30.0

v1.29.3 - 2025-09-26​

Bug Fixes​

  • allow platform auth to bypass plex setup (25c2731)
  • remove Python dependency from setup scripts (82d4179)

Documentation​

  • update CHANGELOG for v1.29.2 (9cda97a)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.29.2...v1.29.3

v1.29.2 - 2025-09-26​

Bug Fixes​

  • prevent config overwrite while loading on Configuration page (4790685)

Code Refactoring​

  • modularize download pipeline and expand tests (b6d1cc8)

Documentation​

  • update CHANGELOG for v1.29.1 (449b27e)
  • Update README. Remove screenshots (74ac5e4)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.29.1...v1.29.2

v1.29.1 - 2025-09-24​

Bug Fixes​

  • disable Docker build caching to ensure latest yt-dlp is downloaded (ca360d4)

Documentation​

  • update CHANGELOG for v1.29.0 (2c2080b)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.29.0...v1.29.1

v1.29.0 - 2025-09-24​

Features​

  • add Kodi/Jellyfin/Emby compatibility (4dcaded)
  • add NFO file generation for Jellyfin/Kodi/Emby compatibility (abd1c1e)

Bug Fixes​

  • prevent server crash on invalid YouTube channel URLs (4f51213)

Documentation​

  • update CHANGELOG for v1.28.0 (281180d)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.28.0...v1.29.0

v1.28.0 - 2025-09-24​

Features​

  • improve UI, nav, download progress feedback (c53bbe1)
  • ui: enhance navigation with icons and consistent styling (d29cf8c)

Bug Fixes​

  • simplify video extraction to use direct tab URLs (0fdf2ee)

Documentation​

  • update CHANGELOG for v1.27.0 (c2633d7)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.27.0...v1.28.0

v1.27.0 - 2025-09-23​

Features​

  • improve UI layout for channel page and video selection buttons (3707768)

Bug Fixes​

  • hide update notification for Elfhosted platform users (c3d2fca)
  • make AppBar fixed on mobile to prevent scrolling off screen (76bbb06)
  • migrate incorrect cronSchedule config field to channelDownloadFrequency (b3cdbe4)

Documentation​

  • update CHANGELOG for v1.26.1 (ddc4b33)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.26.1...v1.27.0

v1.26.1 - 2025-09-23​

Bug Fixes​

  • ensure DATA_PATH environment variable overrides config.json youtubeOutputDirectory (2203c1d)

Documentation​

  • update CHANGELOG for v1.26.0 (2f1bde0)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.26.0...v1.26.1

v1.26.0 - 2025-09-23​

Features​

  • add persistent warning for /tmp video directory and Elfhosted platform support (ddb3047)

Bug Fixes​

  • use system temp directory for batch download channel files (3ab7c24)

Documentation​

  • update CHANGELOG for v1.25.0 (4793e9a)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.25.0...v1.26.0

v1.25.0 - 2025-09-22​

Features​

  • auto-create config.json for Docker deployments without setup.sh (78131c0)

Bug Fixes​

  • extend minimum download timeout to 20 minutes (28d8097)
  • use system temp directory for channel JSON files (9e79264)

Documentation​

  • update CHANGELOG for v1.24.0 (0f8470f)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.24.0...v1.25.0

v1.24.0 - 2025-09-22​

Features​

  • add YouTube cookie support for bot detection bypass (1fb5ef5)
  • enhance download progress with visual feedback and persistence (cf55319)

Bug Fixes​

  • Better yt-dlp error handling (0ae6cea)
  • handle non-zero exit codes when all videos are skipped (3317112)
  • prevent download progress replay on page reload (f4e355b)
  • prevent negative video count display and remove duplicate completion messages (ca564e7)
  • remove debug logging for yt-dlp exit code investigation (ba39138)
  • set executable permission on husky pre-commit hook (54bf8c2)

Documentation​

  • update CHANGELOG for v1.23.0 (63966ab)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.23.0...v1.24.0

v1.23.0 - 2025-09-20​

Features​

  • add full platform deployment support for Elfhosted/Kubernetes (4fccc0a)

Documentation​

  • update CHANGELOG for v1.22.0 (96652ce)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.22.0...v1.23.0

v1.22.0 - 2025-09-18​

Features​

  • add configurable storage path for Kubernetes/Elfhosted platforms (e5f0f2d)

Documentation​

  • update CHANGELOG for v1.21.0 (d2b2970)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.21.0...v1.22.0

v1.21.0 - 2025-09-18​

Features​

  • add select all button for undownloaded videos in channel view (6d57070)
  • add SponsorBlock integration for automatic segment handling (67dcf1f)

Documentation​

  • update CHANGELOG for v1.20.0 (bc86963)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.20.0...v1.21.0

v1.20.0 - 2025-09-18​

Features​

  • set downloaded video timestamps to original YouTube upload date (40d360c)

Bug Fixes​

  • Do not write unused playlist-metafiles for channels (4661cde)
  • Lint fix, remove unneccesary line (f302394)

Documentation​

  • add SSH tunneling instructions for headless server setup (00946df)
  • update CHANGELOG for v1.19.0 (cc7cc40)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.19.0...v1.20.0

v1.19.0 - 2025-09-16​

Features​

  • add advanced manual download UI with video validation and custom settings (0802b45)
  • add dynamic workflow and job names for dry run clarity (efbb640)

Bug Fixes​

  • enable new channels properly and add loading states to channel manager (98fba9d)

Documentation​

  • add ISC license and update README with standalone functionality (92dc88d)
  • update CHANGELOG for v1.18.1 (f219b15)
  • update documentation for accuracy and clarity (24aac9d)
  • Update README with new download UI changes (b4d958f)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.18.1...v1.19.0

v1.18.1 - 2025-09-14​

Bug Fixes​

  • update package versions before Docker build and optimize CI triggers (78394c5)

Documentation​

  • update CHANGELOG for v1.18.0 (f526a80)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.18.0...v1.18.1

v1.18.0 - 2025-09-14​

Features​

  • Create Release workflow enhancement (2bfbbf0)

Full Changelog: https://github.com/DialmasterOrg/Youtarr/compare/v1.17.31...v1.18.0