Skip to content

Releases: countgitmick/FreeTubePlusTabs

FreeTube + Tabs v0.24.3

28 Mar 23:33

Choose a tag to compare

What's New

Fix: Channel sort dropdown restored

YouTube renamed their internal renderer types for channel page filter chips (feedFilterChipBarRendererchipBarViewRenderer), breaking the sort dropdown (Latest / Popular / Oldest) on channel Videos, Shorts, and Live tabs. This release patches youtubei.js at build time to support both old and new renderer types with a unified fallback chain.

Other changes

  • fix: Update transitive deps for security vulnerabilities
  • fix: Revert --no-zygote flag that broke Electron on NixOS
  • fix: Fullscreen improvements — delegate Escape to browser native behavior, proper cleanup on unmount, tab bar hidden during fullscreen
  • chore: Move yaml-eslint-parser to devDependencies

NixOS

Update your flake input to this release's commit and rebuild.

FreeTube + Tabs v0.24.2

25 Mar 07:14

Choose a tag to compare

FreeTube + Tabs v0.24.2

Architecture

  • Unified tab operations — consolidated scattered tab transition handlers into a single composable with serialized execution, preventing race conditions
  • IPC hardening — renderer→main IPC calls now strip Vue reactive Proxies at the boundary, validate all incoming data, and support timeout and abort signals. Added Content Security Policy with correct connect-src for production
  • Deduplicated view logic — extracted shared route guard, backend fetch fallback, and watcher patterns; net reduction of ~230 lines across Channel, Watch, and player components

Bug Fixes

  • Fix back/forward navigation within same tab — pressing back/forward after navigating between videos did nothing; the tab executor was silently suppressing route change reactions during intra-tab history navigation
  • Fix tab drag crash — dragging tabs could throw; now shows media playing state in tab icon
  • Fix Vue lifecycle errors during tab close — deferred tab removal until navigation settles, preventing null-instance errors
  • Fix Shaka player DOM and listener leaks — player elements and event listeners were accumulating over time
  • Fix progress bar lingering on abort — subscription feeds now clean up the progress bar when fetch is aborted
  • Fix IPC serialization errors — Vue reactive objects sent over IPC caused DataCloneError in multiple code paths; fixed at the IPC boundary layer
  • Fix will-navigate handler timing — deferred handler until after initial page load to prevent interference with Electron's loadURL()
  • Fix refresh button disappearance — resolved layout regression; matched nav button sizing consistently
  • Fix arrow button state — back/forward arrows now reactively derive enabled/disabled from the tab's history index
  • Fix refresh widget timestamp — "Last updated" timestamps now update continuously
  • Fix tab bar layout gaps — removed hover gap at start of tab bar and closed visual gap between sidebar and tab bar
  • Fix subscription cache timestamps — date comparison now handles JSON-serialized values correctly
  • Fix PO token generation — relaxed validation to accept channel IDs and removed overly strict context type check

CI/CD

  • Nix build workflow — added GitHub Actions workflow to verify the NixOS flake builds on every push and PR

Docs

  • Rewritten CONTRIBUTING.md — updated for fork identity and workflow

Install

NixOS (flake):

nix run github:countgitmick/FreeTubePlusTabs

Other platforms: Download the appropriate asset below for your OS and architecture.

FreeTube + Tabs v0.24.1

23 Mar 21:56

Choose a tag to compare

FreeTube + Tabs v0.24.1

New Features

  • ESC exits fullscreen — pressing Escape now exits native fullscreen in the video player
  • Faster player controls fade — controls and cursor hide in 0.5s after mouse stops (down from Shaka's default 3s idle timer), with 0.3s fade animation
  • Sticky tab bar — tab bar stays pinned at the top when scrolling page content
  • Refresh Tab in context menu — right-click a tab to refresh it (soft refresh for active tabs)
  • Refresh widget moved to TopNav — cleaner layout via Teleport

Bug Fixes

  • Fix Vue lifecycle errors during tab refresh — removed key-based component destruction that caused emitsOptions/parentNode null errors
  • Fix tab scroll position save/restore — routerView is now the scroll container when tabs are enabled, fixing previously broken scroll persistence
  • Fix search errors on route transitions — guard against empty/undefined query params
  • Fix SABR 401 errors — auto-reload instead of format fallback
  • Fix multi-tab SABR conflicts — per-stream scheme registry prevents cross-tab interference
  • Fix Shaka player and SponsorBlock console errors
  • Fix RSS feed 404 console spam — route requests through main process
  • Fix active tab highlight color — use color-mix instead of broken primary-color-rgb
  • Revert custom Wayland fullscreen — removed IPC-based fullscreen override and opacity workaround; uses upstream browser Fullscreen API (Wayland surface unmap glitch is a Chromium upstream issue)

Install

NixOS (flake):

nix run github:countgitmick/FreeTubePlusTabs

Other platforms: Download the appropriate asset below for your OS and architecture.

FreeTube + Tabs v0.24.0

22 Mar 17:11

Choose a tag to compare

FreeTube + Tabs v0.24.0

New Features

  • Tab context menu — right-click tabs for Close, Close Others, Close to Right, Duplicate; new tabs insert next to the active tab
  • Updated About page — Monero donation address, removed upstream contact info

Bug Fixes

  • Fix tab corruption ("borging") on rapid switching — added tabSwitchInProgress lock across all 13 tab-switching entry points to prevent concurrent switches from overwriting tab state
  • Fix shaka.log monkey-patch crash — removed patch that crashed the renderer process
  • Fix console warnings & RSS 403 fallback — cleaner console output, RSS feeds falling back to scraper on 403
  • Fix missing chapterStreams in SABR manifest — chapters now load correctly
  • Fix tab-aware sentry mode — pauseReason enum and console error cleanup
  • Migrate shaka-player API v4 → v5 — compatibility with shaka-player 5.x
  • Fix video pause on tab switch — only pauses when switching to another video tab, not any tab

Dependencies

  • shaka-player 4.16.20 → 5.0.7
  • electron 41.0.2 → 41.0.3
  • vue-router 5.0.3 → 5.0.4
  • eslint 10.0.3 → 10.1.0
  • stylelint 17.4.0 → 17.5.0
  • marked 17.0.4 → 17.0.5
  • electron-context-menu 4.1.1 → 4.1.2
  • webpack-cli 7.0.1 → 7.0.2
  • @babel/preset-env 7.29.0 → 7.29.2

Install

NixOS (flake):

nix run github:countgitmick/FreeTubePlusTabs

Other platforms: Download the appropriate asset below for your OS and architecture.

Notes

Based on FreeTube 0.23.15. All upstream features are preserved — tabs are additive.

v0.23.15 — FreeTube + Tabs

21 Mar 14:41

Choose a tag to compare

FreeTube + Tabs v0.23.15

First release of FreeTube + Tabs — a fork of FreeTube with browser-style tabbed browsing.

What's new (vs upstream FreeTube 0.23.15)

  • Browser-style tabs: open videos, channels, searches in new tabs
  • Middle-click or Ctrl+click to open in new tab
  • Keyboard shortcuts: Ctrl+T, Ctrl+W, Ctrl+Tab, Ctrl+1-9
  • Tabs preserve scroll position, video timestamp, and full page state
  • Only the active tab plays audio
  • Right-click tab menu: Close, Close Others, Close to Right, Duplicate
  • Tabs restore on app restart
  • Configurable max tab limit (default 20)

Install

NixOS:

nix run github:countgitmick/FreeTubePlusTabs

Other Linux / Windows / Mac: Download from the assets below.

Notes

  • Your existing FreeTube data (subscriptions, playlists, history) works as-is
  • Based on FreeTube v0.23.15