I tried both VLC 3.0.2 and 2.2.8, OpenLP 3.1.1 throws the error no matter what. I've even tried installing the universal binary version of VLC 3.0.20, and that doesn't help either.

The original issue that started this thread in 2019 was that OpenLP, at that time, didn't support the 3.x version of VLC yet. The current issue is that OpenLP 3.1.1 can locate VLC on Apple Silicon, but not on Intel. Similar effect, but probably a different cause.

For what it's worth. I solved this on my development version of OpenLP. Full disclosure: I'm not on the development team, but I have just finally set up the dev environment for OpenLP and I downloaded the current trunk from GIT.

Solution: in app.py, there seems to be an incomplete attempt to locate libvlc.dylib on a Mac, so I just tried to be more explicit about its location within VLC.app by adding the path within VLC.app: "Contents/MacOS/lib"

Code lines 548-555:
if getattr(sys, 'frozen', False):
...
vlc_dir = AppLocation.get_directory(AppLocation.AppDir) / 'vlc'
vlc_lib = None
if is_win():
vlc_lib = 'libvlc.dll'
elif is_macosx():
vlc_lib = 'Contents/MacOS/lib/libvlc.dylib'

    Currently experiencing this issue with VLC on my Mac with intel using 3.1.1. Downgraded VLC and still have the issue

    Also getting an permissions popup everytime i launch, but openlp has full security permissions already in my setting.

    Do you want the application “OpenLP.app” to accept incoming network connections?
    Clicking Deny may limit the application’s behaviour. This setting can be changed in the Firewall pane of Security & Privacy preferences.

    I have read and re-read this thread. It seems to me that the best workaround for the time being is to row back to openlp v3-0.2 but I cannot find where I can download this version. Can someone please point me in the right direction for this?

      Jamie Hockin

      This solution sounds a little complicated for an amateur. If it works, can you give a little more information on how to implement it, that is, assuming one does not have to have a "development version" of OpenLP.

        Richard_1956 I'm not suggesting that users try this. I wrote that note for the development team. Revert to an older version (3.0.2) until this is fixed.

          Jamie Hockin Thanks for the pointers! I've made a couple changes and uploaded a test build:

          Apple Processor
          Intel Processor

          The frustrating thing in all of this is that I cannot reproduce this issue on either of my Macs 😦

          Update: I'm getting errors on these builds, looking into them right now.

            5 days later

            raoul I wonder if the location of the dylib has changed in VLC... I don't quite understand why my hack even works.

              raoul I checked an older version of VLC for Mac and the symlink libvlc.dll is in the same place in the VLC.app bundle.

              7 days later

              raoul I ran into this kind of behaviour a few years ago with a different development project. We depended on a .dylib being in the path and it always was on my computer. But it failed on users' macs, because theirs were in a more natural state. VLC puts the .dylib in its app bundle and nowhere else that I can see. I don't understand the role that py-vlc in all of this, but no habla python...
              Does this make more sense?
              `
              elif is_macosx():
              vlc_dir = AppLocation.get_directory(AppLocation.AppDir) / 'vlc.app/Contents/MacOS'
              vlc_lib = 'lib/libvlc.dylib'

              `

                Jamie Hockin What's weird about your solution is that it doesn't use the VLC app's location either...

                vlc_dir = AppLocation.get_directory(AppLocation.AppDir) / 'vlc.app/Contents/MacOS'

                In this case, AppLocation.get_directory(AppLocation.AppDir) actually points to OpenLP's app directory (specifically, the top level OpenLP.app, if I remember correctly). So the path in your example above literally does not exist.

                When I changed the location to point to /Applications/VLC.app/... it throws an error about not being able to look up the other library bundled with VLC.

                Additionally, if that file does not exist, then OpenLP lets the python-vlc do the lookup automatically. So in theory, it should work on anyone's computer that has VLC installed in the /Applications directory.

                  raoul It works for me because OpenLP and VLC are both in /Applications. The existing code is no better at finding VLC, though.
                  I see now that it's not a good solution. So the question is why python-vlc doesn't take care of it on my Mac. I suppose I could just hack the code with any new version of OpenLP that doesn't find VLC. I'm not going to worry about it any more, since the church installation uses Windows and it works fine.

                  a month later

                  The current vlc.py module from vidoelan seems to have some uncertainty about finding libvlc.dylib.
                  From https://git.videolan.org/?p=vlc/bindings/python.git;a=tree;f=generated;b=HEAD
                  elif sys.platform.startswith('darwin'):# FIXME: should find a means to configure path
                  d = '/Applications/VLC.app/Contents/MacOS/'
                  c = d + 'lib/libvlccore.dylib'
                  p = d + 'lib/libvlc.dylib'
                  if os.path.exists(p) and os.path.exists(c):
                  # pre-load libvlccore VLC 2.2.8+
                  ctypes.CDLL(c)
                  dll = ctypes.CDLL(p)
                  for p in ('modules', 'plugins'):
                  p = d + p
                  if os.path.isdir(p):
                  plugin_path = p
                  break
                  else: # hope, some [DY]LD_LIBRARY_PATH is set...
                  # pre-load libvlccore VLC 2.2.8+
                  ctypes.CDLL('libvlccore.dylib')
                  dll = ctypes.CDLL('libvlc.dylib')
                  `
                  The developers' default for MacOS is to expect VLC to be installed in the /Applications directory. The OpenLP code is simpler, but seems to expect that the OS knows where the dylib is. Perhaps just ask Mac users to install VLC in Applications and look for it there. Very few Mac users are going to be able or interested to add a path to VLC.

                  Hey @Jamie Hockin I just uploaded new builds of OpenLP, which I hope will fix the VLC issue. I didn't get the "VLC is not installed" error message (which I was getting before), but I didn't fully test out video either.

                  Intel Processor
                  Apple Processor

                  Let me know if this build works.

                    Just tested that dev version on my Intel Macbook Air - works for me. Well done!

                    • No error message about VLC
                    • Audio with song lyrics (backing tracks) work
                    • Video worked

                    Thanks @raoul
                    I installed the Intel build as a test user (on it's desktop) and media worked perfectly. The brilliant thing about using VLC is that you can get it to play anything. In my case, it was a .mkv file created by OBS Studio.

                    raoul I installed this build and I get the message that this application is not supported on this Mac. MacBook Air Quad Core I7