Kaset: A Native macOS Client for YouTube Music and YouTube, Built on WebKit
The missing YouTube and YouTube Music macOS app. Kaset A native macOS client for YouTube Music and YouTube, built with Swift and SwiftUI.
At a glance
- What is it?
- Kaset wraps YouTube Music and YouTube in a SwiftUI shell with a system-wide equalizer, extensions, and AppleScript support. It is not signed, requires macOS 15.4, and depends on your Google account for personalization.
- Who is it for?
- Adopt Kaset if you want a native macOS client for YouTube Music and YouTube with a system-wide equalizer, WebKit extensions like uBlock Origin Lite, and AppleScript automation, and you are comfortable with an unsigned app. Do not use it if you need a signed application for managed environments, if you rely on macOS versions before 15.4, or if you expect full YouTube functionality without a Google account.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly Swift, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What Kaset Actually Solves
Kaset addresses a specific gap: there is no official YouTube Music desktop app for macOS, and the web player feels like a browser tab. Kaset gives you a native SwiftUI window with an Apple Music-style interface, a sidebar, and a source toggle for Music and YouTube. It targets people who already pay for YouTube Music Premium and want DRM-protected playback outside a browser. It also targets users who want deeper macOS integration: media keys, Control Center Now Playing, Dock menu controls, and haptic feedback on Force Touch trackpads. The README is clear that this is an unofficial project, not affiliated with Google. That distinction matters because it shapes what you can expect from reliability and support.
How It Works: WebKit, Extensions, and a URL Scheme
Kaset is built with Swift and SwiftUI, but the actual playback engine is WebKit. The README mentions that the equalizer is applied to WebKit playback output, which tells you the media is rendered inside a web view. That approach lets Kaset reuse YouTube's own web player, including DRM-protected content, without building a separate decoder. The app loads WebKit Web Extensions, so you can install uBlock Origin Lite and SponsorBlock. That is a concrete mechanism: the extension API of WebKit is exposed to users. There is also a URL scheme: `kaset://play?v=VIDEO_ID` opens a specific song. YouTube watch links and `youtu.be` links are app-targeted, meaning they open in YouTube mode. This is a thin-client design: the heavy lifting stays on Google's servers, and Kaset provides the native chrome around it.
Getting It Running: Homebrew and Manual Install
The README gives two installation paths. The first is Homebrew: `brew install sozercan/repo/kaset`. The second is downloading the latest release from the GitHub Releases page. Both lead to an unsigned app. That is a real constraint. If you download manually, you may need to clear extended attributes including quarantine with `xattr -cr /Applications/Kaset.app`. The README explicitly says the app is not signed. On macOS, that means Gatekeeper will likely block the first launch unless you right-click and select Open, or you run that xattr command. The requirements are macOS 15.4 or later and a Google account for personalization. Apple Intelligence features, which include natural language commands and lyrics explanations, require macOS 26.0 or later. So the base app works on older macOS, but the AI features are gated behind a newer OS.
Feature Depth: Equalizer, Smart Shuffle, and Lyrics
The feature list is long, but a few items stand out for their specificity. The equalizer is a 6-band parametric EQ with Spotify-style presets, applied system-wide to WebKit playback output. That is unusual for a web wrapper, because most browser-based players have no EQ at all. Smart Shuffle is another differentiator: it blends suggested tracks into the queue based on what you are playing, and you can configure the cadence and how many tracks are queued ahead in Settings. That is a concrete configuration option. Lyrics support includes plain and synced lyrics with line-by-line highlighting when timing data is available. On macOS 26+, there are AI-powered explanations and mood analysis. These features go beyond a simple web view, but they also depend on the underlying web content. If YouTube changes its DOM or API, these features could break.
Automation and Extensibility: AppleScript and Extensions
Kaset exposes two automation surfaces. The first is AppleScript support, which the README says works with scripts, Raycast, Alfred, and Shortcuts. That gives power users a way to control playback without touching the UI. The second is the WebKit extension loader, which allows loading extensions like uBlock Origin Lite and SponsorBlock. This is a significant advantage over the official YouTube web player, which does not let you install browser extensions in the same way. However, the extension mechanism is tied to WebKit, so not all Chrome extensions will work. The README also mentions a URL scheme, which is a third automation path. Together, these make Kaset scriptable and ad-blockable in a way that a plain browser tab is not.
Limitations and Failure Modes
The most obvious limitation is the lack of code signing. On macOS, unsigned apps trigger Gatekeeper warnings, and in enterprise environments with strict security policies, they may be blocked outright. The README's xattr command is a workaround, but it is a manual step that users must repeat after every update. Another limitation is the dependency on a Google account. Without it, you get no personalization, and the README implies that YouTube Music playback requires a Premium subscription for DRM-protected content. If you do not have Premium, the app may not play full tracks. The AI features are also macOS 26-only, so most users on macOS 15 or 16 will not see them. Finally, because Kaset is a web wrapper, any change on YouTube's side could break playback or features. The README does not mention an offline mode or a fallback if Google blocks the app.
Alternatives and How They Differ
The main alternative is using the YouTube Music web player in a browser, possibly with a tool like Chrome's 'Install as app' feature. That approach requires no extra software, but it lacks the native macOS integrations, the equalizer, and the extension loader. Another alternative is a project like Cider, which is a native Apple Music client for Windows, but that does not cover YouTube Music. For macOS specifically, you could also use a browser extension that adds media key support to YouTube Music, but that still runs inside a browser. Kaset's difference is that it is a standalone SwiftUI app with a system-wide equalizer and WebKit extensions, which a browser tab cannot offer. The trade-off is that you are trusting an unsigned third-party app with your Google login, whereas a browser session is more isolated.
Maintenance and License Considerations
The repository is under the MIT license, which means you can use, modify, and distribute the code with few restrictions. The project is not archived, and the last push was in August 2026, so it appears actively maintained. Recent releases include v0.14.0, v0.13.1, and v0.13.0, with roughly monthly updates. That cadence suggests ongoing development, but it also means you should expect frequent updates. Each update may require re-clearing quarantine attributes if you install manually. The README mentions a contributing guide that welcomes AI-assisted contributions, including 'prompt requests' where you share the AI prompt that generates your changes. That is an unusual contribution model. For maintenance cost, you need to track releases and re-apply the xattr workaround after each manual update. If you use Homebrew, the formula may handle some of that, but the unsigned status remains.
Editorial conclusion
Adopt Kaset if you want a native macOS client for YouTube Music and YouTube with a system-wide equalizer, WebKit extensions like uBlock Origin Lite, and AppleScript automation, and you are comfortable with an unsigned app. Do not use it if you need a signed application for managed environments, if you rely on macOS versions before 15.4, or if you expect full YouTube functionality without a Google account. Before adopting, verify that your macOS version meets the requirement, that your YouTube Music Premium subscription works with DRM playback as advertised, and that the app's unsigned status is acceptable under your security policy. Check the repository's issue tracker for any unresolved playback or extension issues, and confirm that the AI features on macOS 26 are optional for your workflow.
Community notes