<h1 align="center">Kaset</h1>
<p align="center">A native macOS client for YouTube Music and YouTube, built with Swift and SwiftUI.</p>
<p align="center">
<a href="https://trendshift.io/repositories/16570?utm_source=repository-badge&utm_medium=badge&utm_campaign=badge-repository-16570"><img src="https://trendshift.io/api/badge/repositories/16570" alt="sozercan/kaset | Trendshift" width="200" height="44"/></a>
</p>
<table>
<tr>
<th>YouTube Music</th>
<th>YouTube</th>
</tr>
<tr>
<td><img src="docs/screenshot-ytm.png" alt="Kaset YouTube Music screenshot"></td>
<td><img src="docs/screenshot-yt.png" alt="Kaset YouTube screenshot"></td>
</tr>
</table>
## Features
### Music & Video
- ๐ต **Native macOS Experience** โ Apple Music-style UI with Liquid Glass player bars, clean sidebar navigation, and a source toggle for Music โ YouTube
- ๐ง **YouTube Music Support** โ Full playback of DRM-protected YouTube Music content via your existing Premium subscription
- โถ๏ธ **[YouTube Support](docs/youtube.md)** โ Browse regular YouTube recommendations, search, subscriptions, Shorts, Watch Later, history, comments, and video playback with native controls, captions, quality selection, and picture in picture
### Playback
- ๐๏ธ **Equalizer** โ System-wide 6-band parametric EQ with Spotify-style presets, applied to WebKit playback output
- ๐ **Lyrics** โ View plain and synced lyrics with line-by-line highlighting when timing data is available, plus AI-powered explanations and mood analysis on macOS 26+
- ๐ **Queue Management** โ View, reorder, shuffle, and clear your playback queue
- ๐ **Smart Shuffle** โ Beyond plain shuffle: blends suggested tracks into the queue based on what you're playing, with cadence and how many are queued ahead configurable in Settings
- ๐ **Background Audio** โ Music continues playing when the window is closed; stops on quit
- ๐ถ **Track Notifications** โ Get notified when a new track starts playing
### Library & Discovery
- ๐ **Library Access** โ Browse playlists, liked songs, and subscribed podcasts; create playlists, add songs to playlists, and delete your own playlists
- ๐งญ **Explore** โ Discover new releases, charts, and moods & genres
- ๐๏ธ **Podcasts** โ Browse and listen to podcasts with episode progress tracking
- ๐ **Search** โ Find songs, albums, artists, playlists, and podcasts
- ๐ **History** โ Revisit recently played tracks
### macOS Integration
- ๐๏ธ **System Integration** โ Now Playing in Control Center, media key support, Dock menu controls
- โจ **Apple Intelligence** โ On-device AI for natural language commands, lyrics explanations, and playlist refinement on macOS 26+
- โจ๏ธ **[Keyboard Shortcuts](docs/keyboard-shortcuts.md)** โ Full keyboard control for playback, navigation, and more
- ๐ณ **Haptic Feedback** โ Tactile feedback on Force Touch trackpads for player controls and navigation
- ๐ฃ **Share** โ Share songs, playlists, albums, and artists via the native macOS share sheet
- ๐ **Localized** โ UI available in 18 languages (Arabic, Chinese (Simplified), Chinese (Traditional), Dutch, English, French, German, Indonesian, Italian, Japanese, Korean, Polish, Portuguese, Russian, Spanish, Swedish, Turkish, Ukrainian); change under Settings โ General โ Language
### Automation & Extensibility
- ๐งฉ **[Extensions](docs/extensions.md)** โ Load WebKit Web Extensions, including [uBlock Origin Lite](https://github.com/uBlockOrigin/uBOL-home) and [SponsorBlock](https://github.com/ajayyy/SponsorBlock)
- ๐ **[URL Scheme](docs/url-scheme.md)** โ Open songs directly with `kaset://play?v=VIDEO_ID`; app-targeted YouTube watch and `youtu.be` links play in YouTube mode
- ๐ค **[AppleScript Support](docs/applescript.md)** โ Automate playback with scripts, Raycast, Alfred, and Shortcuts
## Requirements
- macOS 15.4 or later
- Apple Intelligence features require macOS 26.0 or later
- [Google](https://accounts.google.com) account for YouTube Music and YouTube personalization
## Installation
### Download
1. Go to the [latest release](https://github.com/sozercan/kaset/releases/latest) page.
2. Under **Assets**, click the file whose name ends in `.dmg` to download it.
3. Open the downloaded `.dmg` file from your **Downloads** folder.
4. In the window that appears, drag the **Kaset** icon onto the **Applications** folder.
5. Open **Kaset** from your **Applications** folder.
### Opening Kaset for the First Time
Kaset isn't signed or notarized by Apple, so the first time you open it, macOS shows a warning that the app can't be verified. This is expected. Use **one** of the options below to allow it. You only need to do this once.
**Option 1: System Settings (no Terminal needed)**
1. Try to open Kaset once, then close the warning by clicking **Done**.
2. Open **System Settings** and go to **Privacy & Security**.
3. Scroll down to the **Security** section and click **Open Anyway** next to Kaset.
4. Click **Open Anyway** again in the pop-up, then enter your password or use Touch ID.
**Option 2: Terminal**
1. Open **Terminal**: press `โ Space`, type `Terminal`, and press Return.
2. Copy the command below, paste it into the Terminal window, and press Return:
```bash
xattr -dr com.apple.quarantine /Applications/Kaset.app
```
3. Open Kaset from your **Applications** folder as usual.
### Homebrew
If you already use [Homebrew](https://brew.sh), you can install Kaset with:
```bash
brew install sozercan/repo/kaset
```
Homebrew handles the security warning for you, so you can skip the steps above.
## Contributing
See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup, architecture, and coding guidelines.
We welcome AI-assisted contributions! You can submit traditional PRs or **prompt requests** โ share the AI prompt that generates your changes, and maintainers can review the intent before running the code. See the [AI-Assisted Contributions](CONTRIBUTING.md#ai-assisted-contributions--prompt-requests) section for details.
## Disclaimer
Kaset is an unofficial application and not affiliated with YouTube or Google Inc. in any way. "YouTube", "YouTube Music" and the "YouTube Logo" are registered trademarks of Google Inc.