Skip to content

Version 1.30.0 release#1058

Merged
VampireChicken12 merged 51 commits into
mainfrom
dev
Nov 6, 2025
Merged

Version 1.30.0 release#1058
VampireChicken12 merged 51 commits into
mainfrom
dev

Conversation

@VampireChicken12
Copy link
Copy Markdown
Member

@VampireChicken12 VampireChicken12 commented Nov 6, 2025

Summary by CodeRabbit

Release Notes

  • New Features

    • Two new toggle settings added to miscellaneous options
    • Enhanced save-to-watch-later button with improved state feedback (saving, failed states)
  • Improvements

    • Better layout compatibility for modern YouTube interface
    • Expanded UI component library for interactive buttons
    • Localization updates across 20+ languages
    • New contributor added

VampireChicken12 and others added 30 commits October 24, 2025 17:08
Bumps [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react-swc) from 4.1.0 to 4.2.0.
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/v4.2.0/packages/plugin-react-swc)

---
updated-dependencies:
- dependency-name: "@vitejs/plugin-react-swc"
  dependency-version: 4.2.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks) from 7.0.0 to 7.0.1.
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/packages/eslint-plugin-react-hooks/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/HEAD/packages/eslint-plugin-react-hooks)

---
updated-dependencies:
- dependency-name: eslint-plugin-react-hooks
  dependency-version: 7.0.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [@types/archiver](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/archiver) from 6.0.3 to 6.0.4.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/archiver)

---
updated-dependencies:
- dependency-name: "@types/archiver"
  dependency-version: 6.0.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
…n/dev/vitejs/plugin-react-swc-4.2.0

build(deps-dev): bump @vitejs/plugin-react-swc from 4.1.0 to 4.2.0
…n/dev/eslint-plugin-react-hooks-7.0.1

build(deps-dev): bump eslint-plugin-react-hooks from 7.0.0 to 7.0.1
…n/dev/types/archiver-6.0.4

build(deps-dev): bump @types/archiver from 6.0.3 to 6.0.4
Extract action buttons for playlist management
Bumps [@types/chrome](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chrome) from 0.1.24 to 0.1.27.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chrome)

---
updated-dependencies:
- dependency-name: "@types/chrome"
  dependency-version: 0.1.27
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [globals](https://github.com/sindresorhus/globals) from 16.4.0 to 16.5.0.
- [Release notes](https://github.com/sindresorhus/globals/releases)
- [Commits](sindresorhus/globals@v16.4.0...v16.5.0)

---
updated-dependencies:
- dependency-name: globals
  dependency-version: 16.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 24.9.1 to 24.9.2.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.9.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) from 5.90.5 to 5.90.6.
- [Release notes](https://github.com/TanStack/query/releases)
- [Changelog](https://github.com/TanStack/query/blob/main/packages/react-query/CHANGELOG.md)
- [Commits](https://github.com/TanStack/query/commits/@tanstack/react-query@5.90.6/packages/react-query)

---
updated-dependencies:
- dependency-name: "@tanstack/react-query"
  dependency-version: 5.90.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [@eslint/compat](https://github.com/eslint/rewrite/tree/HEAD/packages/compat) from 1.4.0 to 1.4.1.
- [Release notes](https://github.com/eslint/rewrite/releases)
- [Changelog](https://github.com/eslint/rewrite/blob/main/packages/compat/CHANGELOG.md)
- [Commits](https://github.com/eslint/rewrite/commits/compat-v1.4.1/packages/compat)

---
updated-dependencies:
- dependency-name: "@eslint/compat"
  dependency-version: 1.4.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
VampireChicken12 and others added 21 commits November 5, 2025 14:29
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Nov 6, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

This PR introduces two new user features (hiding members-only videos and automatically showing more videos on end screens), refactors DOM manipulation utilities to support multiple input patterns, implements a reusable ActionButton component for playlist management, adds layout-aware styling for modern YouTube UI, updates all localization files with new feature keys, changes the youtubei.js dependency to a GitHub PR reference, and adds a new contributor entry.

Changes

Cohort / File(s) Summary
Contributor & Metadata
.all-contributorsrc, README.md
Added new contributor entry "Minks S" with bug report contribution.
Package Dependencies
package.json
Changed youtubei.js from npm registry version ^16.0.1 to GitHub PR head reference github:LuanRT/YouTube.js#pull/1075/head.
New Feature: Hide Members-Only Videos
src/features/hideMembersOnlyVideos/index.ts, src/features/hideMembersOnlyVideos/index.css, src/features/hideMembersOnlyVideos/utils.ts
Implements feature to hide members-only video elements with MutationObserver support across home, channel, and watch pages. Provides enable/disable lifecycle functions and CSS styling.
New Feature: Automatically Show More Videos on End Screen
src/features/automaticallyShowMoreVideosOnEndScreen/index.ts, src/features/automaticallyShowMoreVideosOnEndScreen/index.css, src/features/automaticallyShowMoreVideosOnEndScreen/utils.ts
Implements feature to control display of end-screen videos with toggle utilities and CSS classes for UI state management.
New Component: ActionButton
src/features/playlistManagementButtons/ActionButton/index.ts, src/features/playlistManagementButtons/ActionButton/index.css
Introduces reusable action button component with async click handling, spinner feedback, error tooltips, and i18n integration for playlist management actions.
Playlist Management Refactor
src/features/playlistManagementButtons/index.ts, src/features/saveToWatchLaterButton/index.ts
Migrated from React-based rendering to ActionButton component; added removeFromPlaylist logic and improved button state management for both remove and mark-as-unwatched actions.
Button Placement & Styling
src/features/buttonPlacement/index.css, src/features/buttonPlacement/utils.ts, src/features/featureMenu/index.css, src/features/featureMenu/index.ts
Updated CSS for Delhi modern layout support with flexbox-based centering; removed inline button styles in favor of CSS-driven layouts; added layout-specific selector handling.
Feature-Specific CSS
public/contentStyle.css, src/features/hideArtificialIntelligenceSummary/index.css
Added tooltip styling for non-Delhi-modern containers with position and backdrop-filter properties; added AI summary hiding styles.
Utility Refactoring
src/utils/utilities.ts, src/features/automaticallyDisableAmbientMode/index.ts, src/features/hideArtificialIntelligenceSummary/index.ts, src/features/hideEndScreenCards/index.ts, src/features/hideLiveStreamChat/index.ts, src/features/hideOfficialArtistVideosFromHomePage/utils.ts, src/features/hidePlayables/utils.ts, src/features/hideShorts/utils.ts, src/features/maximizePlayerButton/utils.ts, src/features/restoreFullscreenScrolling/index.ts
Refactored modifyElementsClassList to support four overloads (ElementClassPair array, className+selectors, className+elements array, className+NodeList); added layout detection functions (getLayoutType, isModernYouTubeVideoLayout); added page detection helpers (isChannelHomePage, isChannelVideosPage); improved tooltip positioning with layout awareness.
Type System Updates
src/types/index.ts
Added configuration flags enable_automatically_show_more_videos_on_end_screen and enable_hide_members_only_videos; extended message mappings with corresponding change message types.
Configuration & Constants
src/utils/constants.ts, src/i18n/constants.ts, src/manifest.ts
Added new feature flags to default configuration and import schema; updated locale percentage values for numerous locales; added strict_min_version to Gecko browser-specific manifest settings.
Content Script Wiring
src/pages/content/index.ts, src/pages/embedded/index.ts, src/components/Settings/Settings.tsx
Added storage change handlers for new features; integrated feature enable/disable into embedded page initialization; added UI toggles in settings component.
Localization
public/locales/*.json, public/locales/en-US.json.d.ts
Added translations for automaticallyShowMoreVideosOnEndScreen and hideMembersOnlyVideos features; refactored saveToWatchLaterButton keys from {error, save} to {failedToSaveVideo, saveVideo, savingVideo} across all 22 locale files; updated TypeScript type definitions.

Sequence Diagram

sequenceDiagram
    participant User
    participant Settings
    participant ExtensionBG as Extension Background
    participant ContentScript
    participant DOM

    User->>Settings: Enable "Hide members-only videos"
    Settings->>ExtensionBG: Storage changed: enable_hide_members_only_videos=true
    ExtensionBG->>ContentScript: Send hideMembersOnlyVideosChange message
    ContentScript->>ContentScript: enableHideMembersOnlyVideos()
    ContentScript->>ContentScript: Wait for options message
    ContentScript->>ContentScript: observeMembersOnlyVideosElements()
    activate ContentScript
    ContentScript->>DOM: Query members-only video elements
    DOM-->>ContentScript: Elements found
    ContentScript->>DOM: Add yte-hide-members-only-videos class
    ContentScript->>ContentScript: Setup MutationObserver
    Note over ContentScript: Watching for new members-only videos
    deactivate ContentScript

    User->>DOM: New video loaded (members-only)
    DOM->>ContentScript: MutationObserver triggered
    ContentScript->>DOM: Hide new members-only video element
Loading
sequenceDiagram
    participant User
    participant PlaylistItem
    participant ActionButton
    participant API as YouTube API
    participant DOM

    User->>PlaylistItem: Hover over playlist item
    PlaylistItem->>ActionButton: Display remove/mark-as-unwatched buttons
    User->>ActionButton: Click "Remove from Playlist"
    ActionButton->>ActionButton: Show spinner + disable button
    ActionButton->>API: Call removeFromPlaylist (setVideoId, playlistId)
    API-->>ActionButton: Response with optional header/entity updates
    ActionButton->>DOM: Dispatch yt-action event
    DOM->>DOM: Update UI (refresh list/counts)
    ActionButton->>ActionButton: Hide spinner + restore state
    Note over ActionButton: On error: show tooltip with translated message
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Key areas requiring extra attention during review:

  • Utility refactoring (src/utils/utilities.ts): The new modifyElementsClassList overloads with multiple input patterns need verification that all 10+ call sites throughout the codebase are calling with correct signatures and achieve intended behavior
  • Feature initialization flow (src/pages/embedded/index.ts): New feature wiring in Promise.all blocks and message handlers must ensure proper ordering and that enable/disable logic is symmetric
  • ActionButton component (src/features/playlistManagementButtons/ActionButton/index.ts): Error handling, i18n key resolution, and DOM state cleanup on success/error paths need careful validation
  • Layout-aware logic (src/features/automaticallyDisableAmbientMode/index.ts, src/features/maximizePlayerButton/utils.ts, button placement CSS): Verify layout detection correctly handles both legacy and modern YouTube UI variants and that CSS selectors properly scope to the right contexts
  • Localization key refactoring (saveToWatchLaterButton across all locale files): Ensure consuming code references new keys (failedToSaveVideo, saveVideo, savingVideo) instead of old keys (error, save)
  • Members-only video detection (src/features/hideMembersOnlyVideos/utils.ts): Verify selectors correctly identify members-only badges across home, channel, and watch pages

Possibly related PRs

  • Update YouTube.js #1045: Modifies the same package.json youtubei.js dependency change to GitHub PR head reference
  • Add playlist management buttons #951: Implements overlapping playlist management button feature and refactored save-to-Watch-Later functionality with similar component patterns
  • Dev #988: Shares modifications to locale files, src/i18n/constants.ts, src/manifest.ts, and src/pages/embedded/index.ts

Suggested labels

released

Poem

🐰 Two features bloom where videos hide,
Members-only vanish from the tide,
End-screen treasures now appear with glee,
ActionButtons spin with symphony,
Layout-aware, the humble rabbit sees,
Translations flourish across the seas! ✨

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch dev

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 745d9f9 and 4b1fa75.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (61)
  • .all-contributorsrc (1 hunks)
  • README.md (1 hunks)
  • package.json (1 hunks)
  • public/contentStyle.css (2 hunks)
  • public/locales/ca-ES.json (3 hunks)
  • public/locales/cs-CZ.json (3 hunks)
  • public/locales/de-DE.json (3 hunks)
  • public/locales/en-GB.json (3 hunks)
  • public/locales/en-US.json (3 hunks)
  • public/locales/en-US.json.d.ts (3 hunks)
  • public/locales/es-ES.json (4 hunks)
  • public/locales/fa-IR.json (3 hunks)
  • public/locales/fr-FR.json (3 hunks)
  • public/locales/he-IL.json (3 hunks)
  • public/locales/hi-IN.json (3 hunks)
  • public/locales/it-IT.json (4 hunks)
  • public/locales/ja-JP.json (3 hunks)
  • public/locales/ko-KR.json (3 hunks)
  • public/locales/nl-NL.json (3 hunks)
  • public/locales/pl-PL.json (3 hunks)
  • public/locales/pt-BR.json (3 hunks)
  • public/locales/ru-RU.json (3 hunks)
  • public/locales/sv-SE.json (6 hunks)
  • public/locales/tr-TR.json (3 hunks)
  • public/locales/uk-UA.json (4 hunks)
  • public/locales/vi-VN.json (4 hunks)
  • public/locales/zh-CN.json (3 hunks)
  • public/locales/zh-TW.json (3 hunks)
  • src/components/Settings/Settings.tsx (2 hunks)
  • src/features/automaticallyDisableAmbientMode/index.ts (5 hunks)
  • src/features/automaticallyShowMoreVideosOnEndScreen/index.css (1 hunks)
  • src/features/automaticallyShowMoreVideosOnEndScreen/index.ts (1 hunks)
  • src/features/automaticallyShowMoreVideosOnEndScreen/utils.ts (1 hunks)
  • src/features/buttonPlacement/index.css (3 hunks)
  • src/features/buttonPlacement/utils.ts (1 hunks)
  • src/features/featureMenu/index.css (1 hunks)
  • src/features/featureMenu/index.ts (1 hunks)
  • src/features/hideArtificialIntelligenceSummary/index.css (1 hunks)
  • src/features/hideArtificialIntelligenceSummary/index.ts (3 hunks)
  • src/features/hideArtificialIntelligenceSummary/utils.ts (2 hunks)
  • src/features/hideEndScreenCards/index.ts (1 hunks)
  • src/features/hideLiveStreamChat/index.ts (2 hunks)
  • src/features/hideMembersOnlyVideos/index.css (1 hunks)
  • src/features/hideMembersOnlyVideos/index.ts (1 hunks)
  • src/features/hideMembersOnlyVideos/utils.ts (1 hunks)
  • src/features/hideOfficialArtistVideosFromHomePage/utils.ts (2 hunks)
  • src/features/hidePlayables/utils.ts (2 hunks)
  • src/features/hideShorts/utils.ts (1 hunks)
  • src/features/maximizePlayerButton/utils.ts (2 hunks)
  • src/features/playlistManagementButtons/ActionButton/index.css (1 hunks)
  • src/features/playlistManagementButtons/ActionButton/index.ts (1 hunks)
  • src/features/playlistManagementButtons/index.ts (3 hunks)
  • src/features/restoreFullscreenScrolling/index.ts (2 hunks)
  • src/features/saveToWatchLaterButton/index.ts (4 hunks)
  • src/i18n/constants.ts (1 hunks)
  • src/manifest.ts (1 hunks)
  • src/pages/content/index.ts (2 hunks)
  • src/pages/embedded/index.ts (8 hunks)
  • src/types/index.ts (4 hunks)
  • src/utils/constants.ts (4 hunks)
  • src/utils/utilities.ts (7 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@VampireChicken12 VampireChicken12 merged commit 31ad736 into main Nov 6, 2025
5 of 6 checks passed
@github-project-automation github-project-automation Bot moved this from Todo to Done - Released in YouTube Enhancer Nov 6, 2025
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Nov 6, 2025

🎉 This PR is included in version 1.30.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: Done - Released

Development

Successfully merging this pull request may close these issues.

2 participants