YTMDesktop2
Features

Shared links

Open ytmd:// links for tracks, playlists, and channels

YTMDesktop2 registers the ytmd:// protocol so you can open YouTube Music content in the app from the browser address bar, chat, or the tray.

Install a release build (or register the protocol in development) so the OS hands ytmd:// URLs to YTMDesktop2.

From a music.youtube.com URL

Replace https:// with ytmd:// and press Enter:

Browser URLOpen in app
https://music.youtube.com/watch?v=VIDEO_IDytmd://music.youtube.com/watch?v=VIDEO_ID
https://music.youtube.com/playlist?list=PLAYLIST_IDytmd://music.youtube.com/playlist?list=PLAYLIST_ID
https://music.youtube.com/channel/UC…ytmd://music.youtube.com/channel/UC…
https://music.youtube.com/@Handleytmd://music.youtube.com/@Handle

From youtube.com / youtu.be

Same trick — swap https://ytmd://:

Browser URLOpen in app
https://www.youtube.com/watch?v=VIDEO_IDytmd://www.youtube.com/watch?v=VIDEO_ID
https://youtu.be/VIDEO_IDytmd://youtu.be/VIDEO_ID
https://www.youtube.com/playlist?list=PLAYLIST_IDytmd://www.youtube.com/playlist?list=PLAYLIST_ID
https://www.youtube.com/@Handleytmd://www.youtube.com/@Handle

Also works for m.youtube.com, /shorts/…, and /embed/… (treated as watch).

Optional playlist context on a watch link (&list=…) is kept for real playlists/albums. Radio / mix ids (RD…, RDAMVM…) are stripped — attaching those makes YouTube Music show “Radio is starting…” without playing the track.

Shorter forms work the same way (also used when you copy a share link from the tray):

KindFormat
Trackytmd://watch/<videoId>
Track + playlistytmd://watch/<videoId>/<playlistId>
Playlist pageytmd://playlist/<playlistId>
Play playlist nowytmd://playlist/<playlistId>/play
Channel by idytmd://channel/UC…
Channel by handleytmd://channel/@Handle

/play on a playlist link starts playback immediately and skips the confirmation dialog.

Under Settings → Player → Shared links → When opening a shared link:

OptionBehavior
Ask first (default)Confirm dialog before acting
Play immediatelySkip the dialog and run the default action

Ask first — dialog choices

Link typeActions
TrackPlay now, Add to queue, or Cancel
PlaylistPlay playlist, Add to queue, Open playlist, or Cancel
ChannelOpen channel or Cancel

Closing the dialog (or Cancel) shows a short toast so the app does not look like it ignored the link. Successful play / queue / open also toast.

With Play immediately, tracks start playing; playlists and channels open their page (use …/play on a playlist URL if you want instant playlist playback).

In the tray view, use the share / copy control on the current track to put a compact ytmd://watch/… link on the clipboard (includes a non-radio list= from the music page when available).

Under Settings → Player → Shared links → Replace share links with ytmd:// (on by default), the YouTube Music share dialog (input#share-url) is rewritten to a compact ytmd:// link before you hit Copy — so the clipboard gets an app deep link instead of music.youtube.com.

Turn it off to keep the original https share URLs.

Browser userscript

Prefer opening the app from a music.youtube.com / youtube.com tab without rewriting the address bar? Use the browser userscript — soft-opens ytmd:// on load/navigate (optional Tampermonkey menu toggle; no click interception).

Tips

  • Second-instance and cold-start argv links are queued and handled after YouTube Music is ready.
  • Invalid or unsupported paths are ignored (for example album /browse/… is not mapped yet).
  • Handles that arrive percent-encoded (%40Name) are decoded the same as @Name.

On this page