:musical_note: A Mac app wrapper for music.youtube.com

Overview

Screenshot 1

CI Latest Release macOS 10.11 GitHub license

A simple Mac app wrapper using WKWebView for YouTube Music that allows YouTube Music to run as a standalone process.

Features

  • Media Keys
  • Keyboard shortcuts
  • "Now Playing" Notification Center widget
  • Touch Bar media controls and scrubber
  • System notifications when a new track plays

Installation

You can download the latest version at the following link:

Download Latest Version

The latest binary can also be found on the releases page or clone and compile in Xcode.

Homebrew

If homebrew is installed, you can also use brew install --cask yt-music

Screenshots

View More Screenshots

Screenshot 2 Screenshot 3 Screenshot 4

Contributing

More help in improving YouTube Music is always welcome! Please take a look at the Issues and if there's something you think you can do, please consider filing a pull request.

Requirements for Building

Building YouTube Music

  1. Clone a copy of this repo.
  2. In Terminal, cd to the repo directory and run pod install.
  3. Open YT Music.xcworkspace.
  4. Under the 'Code Signing' settings in Xcode, make sure your developer account is set for Debug builds.

Legal

Disclaimer: YT Music 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.

Comments
  • Application does not load upon starting

    Application does not load upon starting

    I just updated to the latest version of the app (v1.1.0) and when I open the application, it doesn't load. Instead, it stays completely blank like so:

    Screen Shot 2021-04-25 at 11 42 23 AM

    I am running the application on macOS Big Sur 11.2.3. I have tried a completely fresh install and the same problem occurs.

    bug help wanted 
    opened by AnonRS3 10
  • Prevent notification spam

    Prevent notification spam

    This PR clears all previous notifications before scheduling a new one. This fixes two problems: first, YT music loads the byline synchronously, so you would get two notifications for each new song, and second, each notification would simply stack on top of the next, polluting the notification center.

    Fixes #86

    opened by jscheel 10
  • Icon Improvement Request - Should follow Macos Icon Guidelines

    Icon Improvement Request - Should follow Macos Icon Guidelines

    I think the icon should be reworked slightly to fit in MacOS Monterey

    https://developer.apple.com/design/human-interface-guidelines/macos/icons-and-images/app-icon/

    Now the icons is a bit bigger than others, and does not have the square image

    Maybe a white square could help like done for the iPad App

    opened by masbaehr 8
  • Fix resize crash

    Fix resize crash

    The standard buttons were being added to the web view, but they expected their superview to respond properly to resizing, and the web view didn't respond the way they expected. I have no idea what I'm doing, but this works.

    opened by jscheel 7
  • Fix issue Music auto-plays when receiving call #40

    Fix issue Music auto-plays when receiving call #40

    This pull request fixes issue #40 MPRemoteCommandCenter calls the method "pauseCommand" when macOS receives a FaceTime Call and calls the method "playCommand" when FaceTime Call ends.

    To fix this issue, I've created a method "pause" that will click at ".play-pause-button" if music is playing and also a method "play" that will click at ".play-pause-button" if music isn't playing.

    I hope this piece of code helps you!

    opened by douglas-queiroz 5
  • Block service worker from loading, (see #163)

    Block service worker from loading, (see #163)

    The YouTube Music service worker's prefetch and cache seems to be breaking. This PR disables the service worker so that the requests to pull the js reach the server, instead of a broken service worker. For this to work, it requires a min version bump to 10.13. See discussion on #163

    opened by jscheel 4
  • Create an Automated Release Pipeline

    Create an Automated Release Pipeline

    It's been a while since this project had an official release. And certainly we can lower the barrier and complexity of uploading new releases by introducing an automated release pipeline.

    GitHub Actions is an amazing utility for this, especially now that it's possible to manually trigger workflows with manual parameters, so a pipeline that goes through and bumps the versioning and everything is possible.

    That being said, I think all new releases need to be both signed and notarised by Apple, otherwise the current versions of macOS will identify them as "potential malware" and require a lot of extra effort to run. I'm happy to donate the certificates for my sole trader iOS developer program to support this, assuming no one else sees any potential risk in that.

    So I guess next steps:

    1. Get a new release out now, manual if need be.
    2. Set up a new GitHub Action pipeline for automating releases.
    3. Consider replacing DevMateKit with Sparkle to allow automatic updating (But I have no idea how easy this is)
    enhancement 
    opened by TimOliver 4
  • Wrong cover image in notification

    Wrong cover image in notification

    When the notification pops up with the new song title, artist and cover image the cover image is not correct. It seems to have cached one that I listened to previously.

    In this example: Playing Amy Macdonald - Never Too late The image relates to Gasmac Gilmore - Dead Donkey

    Bildschirmfoto 2019-04-04 um 13 16 48
    opened by Regaddi 4
  • Display currently playing song in menu bar

    Display currently playing song in menu bar

    Shot in the dark feature request. I've used several apps that display the currently playing song & artist in the menu bar. Would be pretty neat to be able to have the ability with this app. Not sure if it's even possible.

    opened by petebocken 4
  • Media Key Support

    Media Key Support

    Unfortunately due to WKWebView seemingly not wanting to work outside of a sandbox media key support has not been possible 😟

    I'm still searching for a work around but if anyone knows of one it would be much appreciated.

    opened by steve228uk 4
  • Adds Preferences Window for Managing Shortcuts

    Adds Preferences Window for Managing Shortcuts

    With this PR I've tried to manage the only thing that bothered me in the app, the Global Keyboard shortcuts (more specifically the Play/Pause using the Cmd+Shift+Spacebar) that was conflicting with other program that I was using this shortcut to (1Password 8).

    In order to collaborate and not break existing functionality that others may be used and interested, I've implemented a preferences window that allow enabling/disabling those shortcuts. This should at least avoid the hotkeys conflict. A further improvement on this implementation would be to allow custom Shortcuts altogether, but I've found that it would require more effort than I currently would put on this.

    I hope this addition helps to enhance the value of the app which for me, as a YouTube Music user, is a must on macOS.

    opened by ravero 3
  • When headphones/airpods disconnect the app plays

    When headphones/airpods disconnect the app plays

    For whatever reason, if I had my airpods connected and I remove them from my ear and place them in their case, the app just starts playing when I've left it on pause and didn't really listen to music.

    This doesn't happen with just Airpods, but also other headsets as well.

    opened by boldlion 2
  • (FEAT) Allow turning off push notifications in app preferences

    (FEAT) Allow turning off push notifications in app preferences

    Problem statement

    Personally, I find push notifications for each new song to be a bit distracting, but I understand that others may like to have them.

    Proposed solution

    I've added a general preference pane that includes a setting to toggle the push notifications on and off. It's enabled by default to preserve the previous behaviour for existing users.

    Evidence of testing

    Ensured that the push notifications are still being displayed when the setting is turned on. Screenshot 2022-11-27 at 11 31 46

    Checked that the notifications aren't being displayed when the preference is turned off (no screenshot).

    Ensured that the new pane displays remembers the last setting: Screenshot 2022-11-27 at 11 07 01

    Regression tested the push notifications pane to ensure that it is displayed correctly: Screenshot 2022-11-27 at 11 20 06

    Additional changes

    While working through the preference changes, I've noticed a few things that could be improved, so I've included them here. Let me know if you'd rather not have them or have them in a separate PR:

    • Ignoring all *.DS_Store file from version control.
    • Renamed PreferencesViewController to HotkeyPreferencesViewController. Now that we have general and hokey preference panes, it makes sense to give a more descriptive name.
    • Added missing auto layout constraints in the preference pane. Some of the trailing constraints were missing forcing us to specify the height of the view controller. Once I added the missing constraints, I was able to remove the code that was setting the height of the view.
    • I've used the modern guard let variable syntax instead of the legacy guard let variable = variable to unwrap optionals.
    opened by sprejjs 0
  • (FIX) Display the correct menu title for play/pause

    (FIX) Display the correct menu title for play/pause

    Problem

    The dock and playback menu item was always displaying "Play" as the first option regardless of the current state of the playback.

    Fixes #112

    Proposed solution

    Looks like the dock menu used to display the correct title at some point but then got broken due to the change on YouTube's side.

    After reviewing the code, I've realised that the current "isPlaying" value is read from the webpage once a second by comparing the play button title to the string constant. It looks like the constant name was changed from YT_PAUSE to PAUSE breaking the implementation. Screenshot 2022-11-27 at 07 13 56

    I fixed the implementation by updating the name of the constant in the custom script.

    The main menu item on the other hand was always displaying the "Play" option regardless of the current playback. I've used the same logic to update the menu item as well.

    Evidence of testing

    Tested by running the app on my machine.

    |Before|After| |--|--| |Screenshot 2022-11-27 at 07 09 39|Screenshot 2022-11-27 at 07 10 14|

    opened by sprejjs 0
  • Version on website ytmusic.app out of date - 1.0.6

    Version on website ytmusic.app out of date - 1.0.6

    Current release is 1.3.3 - was experiencing issues for months until I figured out there was an update on Github Releases. Is it possible to update the website or simply redirect to GitHub Release page?

    opened by mmackh 1
  • Can we please have a 'repeat' button

    Can we please have a 'repeat' button

    So I listen to certain songs on repeat mode sometimes. Just discovered this app. Love the interface. Thank you very much for making this.

    But can we please have a 'repeat' button?

    opened by patilswapnilv 3
Releases(1.3.3)
Owner
Stephen Radford
Stephen Radford
Swift-music - swift-music is a swift package that provides an easy-to-use API for music related developments.

?? swift-music Introduction swift-music is a swift package that provides an easy-to-use API for music related developments. Currently available module

Jin Zhang 4 Feb 8, 2022
Classical music front-end for Apple Music: iOS app

concertino_ios Concertino is a classical music front-end for Apple Music. It's splitted in several projects. This one provides only the iOS app. (Ther

Open Opus 107 Dec 22, 2022
A pure Swift Spotify Music App in Apple Music style

HBMusic A pure Swift Spotify Music App in Apple Music style. How to run pod inst

haoboxuxu 6 Dec 29, 2021
Beautiful Music Player app built using SwiftUI to demonstrate Neumorphic design pattern and MVVM architecture.

Beautiful Music Player app built using SwiftUI to demonstrate Neumorphic design pattern ?? and MVVM architecture ?? . Made with love ❤️ by Sameer Nawaz

Sameer Nawaz 120 Jan 4, 2023
MuVis is a macOS, iOS, iPadOS app for real-time music visualization.

MuVis MuVis is an open-source multiplatform app (using SwiftUI, Swift, and Xcode) for music visualization. It renders informative (and musically usefu

Keith Bromley 7 Oct 10, 2022
macOS app that allows the control of Spotify and AppleMusic/iTunes music playback from the menu bar.

PlayStatus is a simple macOS app that allows the control of Spotify, Apple Music(macOS 10.15+) and iTunes including iTunes Radio/Beats1 playback from

Nikhil Bolar 114 Dec 28, 2022
App for searching music and films in iTunes

inMovies App description: This is an app for searching contnent such as films and music in iTunes. Running the app brings you to page with following c

Egor 0 Nov 7, 2021
This is a mysic detection app that uses ShazamKit to detect music. O

This is a mysic detection app that uses ShazamKit to detect music. Once it detects the music, it takes the information about that music to find lyrics for that song using a Lyrics API.

Shubham Arya 6 Dec 20, 2022
SleepingBaby - Track your kids activity and allow them sleep soundly with relaxing music in ONE app

Sleeping Baby Скачать в AppStore. Ключевые используемые технологии: UIKit, MVVM,

Egor Kostyukhin 0 Jan 7, 2022
MusicPlayer - Beautiful Music Player app built using SwiftUI to demonstrate Neumorphic design pattern and MVVM architecture

Skailer ?? Beautiful Music Player app built using SwiftUI to demonstrate Neumorp

null 23 Dec 10, 2022
MuVis is a macOS, iOS, iPadOS app for real-time music visualization.

MuVis MuVis is an open-source multi-platform app (using SwiftUI, Swift, and Xcode) for music visualization. It renders informative (and musically usef

Keith Bromley 4 Dec 24, 2022
MusicKit is a framework and DSL for creating, analyzing, and transforming music in Swift.

MusicKit MusicKit is a framework and DSL for creating, analyzing, and transforming music in Swift. Examples Functional harmony let C5 = Pitch(midi: 72

Ben Guo 591 Oct 18, 2022
Music Player for iOS which looks & feels like classic player

Prodigal Music Player APP looks and feels like a classic device. Bring back the good old player to life. Screenshots Home Page Album Gallery Home Page

bob.sun 40 Nov 11, 2022
A real-time, votable, democratized music queue on iPad and iPhone using Spotify

Queue'd Music Queue'd is the best way to enjoy music with your friends. Add your favorite songs to a shared music queue at your favorite bars, restaur

Ryan Daulton 88 Dec 2, 2022
YiVideoEditor is a library for rotating, cropping, adding layers (watermark) and as well as adding audio (music) to the videos.

YiVideoEditor YiVideoEditor is a library for rotating, cropping, adding layers (watermark) and as well as adding audio (music) to the videos. YiVideoE

coderyi 97 Dec 14, 2022
🎶 Control Apple Music right from your macOS menu bar.

About Music Bar is macOS application that places music controls right in your menu bar. Installation Download and unzip the latest release. Drag the a

Musa 202 Jan 4, 2023
Unofficial Yandex Music API

YM-API - Unofficial Swift Yandex Music Library Fully ported Yandex Music API Swift implementation. Russian Readme (Readme на русском) Thanks to Marsha

null 17 Nov 11, 2022
A charmful decade with many colors patterns, disco music, and other cultural expressions that we refer to as vintage

MontyHallProblem Welcome to the 70s! ?? That is a charmful decade with many colors patterns, disco music, and other cultural expressions that we refer

Diogo Infante 2 Dec 28, 2021
Custom iOS music player view

InteractivePlayerView Custom iOS music player view Screen About InteractivePlayerView is an IBDesignableView (Custom View) which has its own progress,

AhmetKeskin 273 Nov 11, 2022