diff --git a/TOOLS/osxbundle/mpv.app/Contents/Info.plist b/TOOLS/osxbundle/mpv.app/Contents/Info.plist
index 4c9340d808..152e118416 100644
--- a/TOOLS/osxbundle/mpv.app/Contents/Info.plist
+++ b/TOOLS/osxbundle/mpv.app/Contents/Info.plist
@@ -186,6 +186,16 @@
CFBundleURLTypes
+
+ CFBundleTypeRole
+ Viewer
+ CFBundleURLName
+ mpv Custom Protocol
+ CFBundleURLSchemes
+
+ mpv
+
+
CFBundleTypeRole
Viewer
diff --git a/osdep/macosx_application.m b/osdep/macosx_application.m
index 7c5990d912..a522ad77fa 100644
--- a/osdep/macosx_application.m
+++ b/osdep/macosx_application.m
@@ -26,6 +26,8 @@
#include "osdep/macosx_application_objc.h"
#include "osdep/macosx_compat.h"
+#define MPV_PROTOCOL @"mpv://"
+
static pthread_t playback_thread_id;
@interface Application (PrivateMethods)
@@ -241,6 +243,11 @@ static NSString *escape_loadfile_name(NSString *input)
NSString *url =
[[event paramDescriptorForKeyword:keyDirectObject] stringValue];
+ url = [url stringByReplacingOccurrencesOfString:MPV_PROTOCOL
+ withString:@""
+ options:NSAnchoredSearch
+ range:NSMakeRange(0, [MPV_PROTOCOL length])];
+
self.files = @[url];
if (self.willStopOnOpenEvent) {