sozercan/kaset
π» The missing YouTube and YouTube Music macOS app
β¨ What's New
- βοΈ If you're enjoying this app, please share and star it! β€οΈ You can also support development by [buying me a coffee](https://ko-fi.com/sozercan) β
π¦ πΊ YouTube Mode
- Kaset now includes a full native client for regular YouTube, living alongside YouTube Music and switched with a Liquid Glass source toggle at the bottom of the sidebar (thanks @btopn!).
- Native browsing: recommended Home, Search (video/channel/playlist filters), Explore, Subscriptions, Shorts, Watch Later, Liked Videos, Playlists, and History β all in adaptive card grids.
- Personalized Home: Continue Watching and personalized topic rails, watched-progress bars on video thumbnails, and an ambient color backdrop on the watch page. Continue Watching refreshes automatically after you finish a video.
- Native playback: a source-adaptive player bar with seek-on-hover, like/dislike, Watch Later, AirPlay, closed captions, quality menus, full view, and picture in picture.
- Watch page: two-column layout with metadata, subscribe, and a full comments section (post, like/dislike, reply threads) alongside a related rail.
- Shorts: vertical snap-paging autoplay player.
- Pop-out window: aspect-locked video with hover chrome, real fullscreen, and dock-back-on-exit β plus a setting to disable video pop-out on back.
π¦ ποΈ Apple Music-Style Player Bar
- The player bar has been redesigned into an Apple Music-style scrubber for a cleaner, more familiar transport across both sources.
π π Fixes and improvements
- Fixed media-key "next" replaying the same song while the app was backgrounded (thanks @Endiruslan!)
- Fixed listening history not recording on Brand accounts (music and video)
- Liquid Glass sidebar now slides under the content
β¨ New Contributors
- @btopn made their first contribution in https://github.com/sozercan/kaset/pull/303
β¨ What's New
- βοΈ If you're enjoying this app, please share and star it! β€οΈ You can also support development by [buying me a coffee](https://ko-fi.com/sozercan) β
π¦ π» macOS 15 Support
- Kaset now runs on macOS Sequoia 15.4+ while keeping the macOS 26 Liquid Glass experience where available (thanks @imrashidov!).
π π Fixes and improvements
- Fixed All search returning empty results by falling back to category searches and deduplicating results (thanks @itsmeshibintmz!).
- Fixed carousel hover effects being clipped at shelf edges (thanks @cook1e0!).
β¨ New Contributors
- @imrashidov made their first contribution in https://github.com/sozercan/kaset/pull/268
- @cook1e0 made their first contribution in https://github.com/sozercan/kaset/pull/283
β¨ What's New
- Fix quitting from Dock or AppleScript (#271)
- Fix PlayerBar layout at narrow widths (#270)
- Fix media key skip behavior (#272)
- Fix release signing (#279)
β¨ What's New
- βοΈ If you're enjoying this app, please share and star it! β€οΈ You can also support development by [buying me a coffee](https://ko-fi.com/sozercan) β
π¦ πͺ Mini Player
- Kaset now has a native mini player that floats above your other windows (thanks @ComicBit!).
π¦ ποΈ Playback Audio Quality
- A new General setting lets you choose between Auto, Low, Normal, and High audio quality.
π π Fixes and improvements
- Fixed the light/dark app icon variants so the dark icon actually ships (thanks @panzer-ui!)
- Corrected Indonesian localization string mappings
- Documented the new play video AppleScript command (thanks @danieltsam!)
- Added an ad-hoc signing fallback to compile_and_run so unsigned local builds work out of the box (thanks @Shikrenov!)
- Release builds are now signed with the Apple Development certificate to fix Gatekeeper friction
- Dropped a wall-clock race in the library refresh-while-loading test (thanks @buggerman!)
β¨ New Contributors
- @Copilot made their first contribution in https://github.com/sozercan/kaset/pull/235
- @iWajdi made their first contribution in https://github.com/sozercan/kaset/pull/232
- @baltarifcan made their first contribution in https://github.com/sozercan/kaset/pull/249
- @danieltsam made their first contribution in https://github.com/sozercan/kaset/pull/223
- @Shikrenov made their first contribution in https://github.com/sozercan/kaset/pull/253
- @panzer-ui made their first contribution in https://github.com/sozercan/kaset/pull/256
- @ComicBit made their first contribution in https://github.com/sozercan/kaset/pull/246
- Full Changelog: https://github.com/sozercan/kaset/compare/v0.9.0...v0.10.0
β¨ Whatβs New
- βοΈ If youβre enjoying this app, please share and star it! β€οΈ You can also support development by [buying me a coffee](https://ko-fi.com/sozercan) β
- π§© Extensions Support
- Kaset now supports WebKit Web Extensions, so you can bring your own extensions β like [uBlock Origin Lite](https://github.com/uBlockOrigin/uBOL-home) β into the app (thanks @shantanunautiyal!).
- π΅ Playlist Creation & Management
- Create, and manage your own playlists directly from Kaset.
- ποΈ System-Wide Equalizer
- A new 6-band equalizer with presets lets you shape your sound across the whole app (thanks @pukuba!).
- π Listening History
- + 19 more
β¨ What's New
- π Fixes and improvements
- Liking or unliking a song from any screen now instantly syncs across the Player
- Bar, Liked Music list, and context menus β no manual refresh needed
- Fixed the What's New sheet layout so the Continue button stays visible at small
- window sizes, and removed the duplicate version title
- Fixed hover scale effect being clipped at horizontal ScrollView edges
- Fixed playlists with 100+ tracks not fully loading due to incorrect pagination
- token priority
β¨ New Contributors
- @Orkunnnn made their first contribution in https://github.com/sozercan/kaset/pull/158
β¨ What's New
- π€ Synced Lyrics
- Lyrics now support time-synced playback with the LRCLib provider, making it easier to follow along line by line.
- π§ Last.fm Scrobbling
- Kaset now supports [Last.fm](https://www.last.fm) scrobbling
- π More Languages
- Kaset is now localized in Turkish and Arabic, bringing full translation support to more of the appβs user-facing interface.
- π΅ Library and Playback Controls
- You can now add artists to your library, and Now Playing controls are configurable so you can choose whether Next and Previous actions are shown.
- + 11 more
β¨ New Contributors
- @pukuba made their first contribution in https://github.com/sozercan/kaset/pull/142
- @fllaa made their first contribution in https://github.com/sozercan/kaset/pull/143
- @aaloraini made their first contribution in https://github.com/sozercan/kaset/pull/147
β¨ What's New
- πΆ Queue Enhancements
- π Fixes and improvements
- Play/pause state detection now uses the correct WebView signal for reliable status
- Fixed duplicate window appearing when clicking the Dock icon to reopen
- Fixed MainActor context for notification observation preventing potential concurrency issues
β¨ New Contributors
- @cacuscacus made their first contribution in https://github.com/sozercan/kaset/pull/97
β¨ What's New
- π Account Switcher
- Switch between your personal and brand accounts
- π [AppleScript Support](https://github.com/sozercan/kaset/blob/main/docs/applescript.md)
- Control Kaset from Raycast, Alfred, Shortcuts, or any automation tool with commands like `play`, `pause`, `next track`, `set volume`, and `get player info`
- π Fixes and improvements
- Auth cookies are now stored in macOS Keychain
- AirPlay now correctly routes audio to selected devices ([known limitations](https://github.com/sozercan/kaset/blob/main/docs/adr/0010-airplay-fix.md#known-limitations))
- Podcast shows can now be added to/removed from library correctly
- + 4 more
π¦ Homebrew (recommended)
- ```bash
- brew install sozercan/repo/kaset
- ```
π¦ Manual Download
- 1. Download `kaset-v0.6.0.dmg`
- 2. Open the DMG and drag Kaset to Applications
- 3. Remove the quarantine attribute (required for unsigned apps):
- ```bash
- xattr -d com.apple.quarantine /Applications/Kaset.app
- ```
π¦ Verification
- SHA256: `d45707321b2447f2d6fe55a810a7928d8cbb99721ca1e9e004dde400f8bf03ba`
- Verify with: `shasum -a 256 kaset-v0.6.0.dmg`
β¨ New Contributors
- @Endiruslan made their first contribution in https://github.com/sozercan/kaset/pull/82
β¨ What's New
- <img width="399" height="270" alt="image" src="https://github.com/user-attachments/assets/7653852b-c8b1-427e-986b-2f1bf58d811f" />
- ποΈ Podcasts
- Discover podcast shows and episodes, subscribe to shows, and add them to your library
- π¬ Videos
- Watch music videos and video podcasts
- π» Mix & Radio
- Play personalized radio when you start a songβautomatically queues similar tracks via "Start Radio" in context menus
- π Playback Memory
- + 6 more
π¦ Homebrew (recommended)
- ```bash
- brew install sozercan/repo/kaset
- ```
π¦ Manual Download
- 1. Download `kaset-v0.5.0.dmg`
- 2. Open the DMG and drag Kaset to Applications
- 3. Remove the quarantine attribute (required for unsigned apps):
- ```bash
- xattr -d com.apple.quarantine /Applications/Kaset.app
- ```
π¦ Verification
- SHA256: `6861607206ed69d030c398a43b3611f6caa248d482551c6b436678ab7a30adef`
- Verify with: `shasum -a 256 kaset-v0.5.0.dmg`
β¨ What's New
- Playlist Search Filters β Separate filters for "Featured playlists" and "Community playlists"
- Floating Panels β Lyrics and Queue now appear as floating liquid glass panels over content
π¦ Homebrew (recommended)
- ```bash
- brew tap sozercan/kaset https://github.com/sozercan/kaset
- brew install --cask kaset
- ```
π¦ Manual Download
- 1. Download `kaset-v0.4.1.dmg`
- 2. Open the DMG and drag Kaset to Applications
- 3. Remove the quarantine attribute (required for unsigned apps):
- ```bash
- xattr -d com.apple.quarantine /Applications/Kaset.app
- ```
π¦ Verification
- SHA256: `e63d0d61bb6d0c2c5a61db54fd10606a1816b70e822c867588d0a301a5dd49b1`
- Verify with: `shasum -a 256 kaset-v0.4.1.dmg`
β¨ What's New
- β¨ New Features
- Favorites β Pin your favorite songs, albums, playlists, and artists to the Home screen for quick access
- Share β Share music via the native macOS share sheet (right-click β Share)
- URL Links β Open songs directly with links like `kaset://play?v=VIDEO_ID`
- Auto-Updates β App now checks for updates automatically via Sparkle
- π§ Improvements
- Liked Songs β Now loads your full library with infinite scroll
- Search β Infinite scroll pagination for search results
- + 1 more
π¦ Homebrew (recommended)
- ```bash
- brew tap sozercan/kaset https://github.com/sozercan/kaset
- brew install --cask kaset
- ```
π¦ Manual Download
- 1. Download `kaset-v0.4.0.dmg`
- 2. Open the DMG and drag Kaset to Applications
- 3. Remove the quarantine attribute (required for unsigned apps):
- ```bash
- xattr -d com.apple.quarantine /Applications/Kaset.app
- ```
π¦ Verification
- SHA256: `eb98f09350b034fb7e0f2a047e74c3d773d79f05d18ee7afef792ed5c36985e9`
- Verify with: `shasum -a 256 kaset-v0.4.0.dmg`
β¨ New Contributors
- @haroldao made their first contribution in https://github.com/sozercan/kaset/pull/14
- @Goooler made their first contribution in https://github.com/sozercan/kaset/pull/15
π¦ β¨ Apple Intelligence
- Natural Language Commands β Ask things like "play some jazz", "shuffle my library", or "add this to queue" using on-device AI
- Command Bar (βK) β Spotlight-like interface for quick AI-powered commands
- Lyrics Explanations β AI-generated themes, mood analysis, and meaning for song lyrics
π¦ π Queue Management
- Queue View β See what's playing next in a dedicated panel
- Radio Mode β Auto-populates queue with similar songs when you play a track
- Queue Controls β Reorder, shuffle, clear, or add songs to your queue
π¦ π§ Expanded Explore Section
- Charts β Browse top songs and trending music
- Moods & Genres β Discover curated playlists by mood (chill, workout, focus) or genre
- New Releases β See latest album and single releases
π¦ π Lyrics View
- View song lyrics while listening
- AI-powered mood and theme analysis
π¦ π³ Haptic Feedback
- Tactile feedback on Force Touch trackpads for player controls and navigation
π¦ βοΈ Settings
- General Settings β App configuration options
- Intelligence Settings β Enable/disable AI features
β¨ β¨οΈ New Keyboard Shortcut
- βK β Open Command Bar for quick AI commands
π¦ Homebrew (recommended)
- ```bash
- brew tap sozercan/kaset https://github.com/sozercan/kaset
- brew install --cask kaset --no-quarantine
- ```
π¦ Manual Download
- 1. Download `kaset-v0.3.0.dmg`
- 2. Open the DMG and drag Kaset to Applications
- 3. Remove the quarantine attribute (required for unsigned apps):
- ```bash
- xattr -d com.apple.quarantine /Applications/Kaset.app
- ```
π¦ Verification
- SHA256: `e2eced2a4c356f7f9622c18ae772c961de9e55f270df9a2de66c51c442d50424`
- Verify with: `shasum -a 256 kaset-v0.3.0.dmg`
β¨ π΅ New Features
- Lyrics Panel β View lyrics for the current track in a right sidebar
- Liked Music β Browse and play your liked songs from YouTube Music
- Top Songs β View all top songs for any artist
- AirPlay β Stream audio to AirPlay-compatible devices
π¦ π¨ UI Polish
- Skeleton loading states with shimmer animations
- Dynamic color theming β UI adapts colors based on album artwork
- Light mode fixes β Improved appearance in light mode
- Shared components β New reusable cards, loading views, and animations
π π Security & Stability
- App Sandbox enabled for improved security
- Fixed Now Playing integration with Control Center and media keys
- Fixed concurrency issues for Swift 6 compatibility
π¦ π οΈ Infrastructure
- Dependabot for automated dependency updates
- Improved test infrastructure with mock clients for UI testing
π¦ Homebrew (recommended)
- ```bash
- brew tap sozercan/kaset https://github.com/sozercan/kaset
- brew install --cask kaset --no-quarantine
- ```
π¦ Manual Download
- 1. Download `kaset-v0.2.0.dmg`
- 2. Open the DMG and drag Kaset to Applications
- 3. Remove the quarantine attribute (required for unsigned apps):
- ```bash
- xattr -d com.apple.quarantine /Applications/Kaset.app
- ```
π¦ Verification
- SHA256: `1997ece8ecf7ed565b120efdd978558729f5265190868711bd8b14505aed78af`
- Verify with: `shasum -a 256 kaset-v0.2.0.dmg`
β¨ What's New
- Initial release
π¦ Homebrew (recommended)
- ```bash
- brew tap sozercan/kaset https://github.com/sozercan/kaset
- brew install --cask kaset --no-quarantine
- ```
π¦ Manual Download
- Download `kaset-v0.1.1.dmg` and drag Kaset to Applications.
π¦ Verification
- SHA256: `10ac2876c38c24a843b78da3afd3c1887e745318fb390aa941039eb3e9a70fac`
- Verify with: `shasum -a 256 kaset-v0.1.1.dmg`
β¨ What's New
- Initial release
π¦ Homebrew (recommended)
- ```bash
- brew tap sozercan/kaset https://github.com/sozercan/kaset
- brew install --cask kaset --no-quarantine
- ```
π¦ Manual Download
- Download `kaset-v0.1.0.dmg` and drag Kaset to Applications.
π¦ Verification
- SHA256: `85e5d3729a438f6a5c376865a5cc45625f92d6e59c19c2934a7b9bbe8f9db9eb`
- Verify with: `shasum -a 256 kaset-v0.1.0.dmg`
