Marginal / QLVideo

This package allows macOS Finder to display thumbnails, static QuickLook previews, cover art and metadata for most types of video files.
GNU General Public License v2.0
2.54k stars 88 forks source link

QLVideo 1.92 does not work in Catalina beta #63

Closed wilsonjchan closed 4 years ago

wilsonjchan commented 5 years ago

Works if I force it with qlmanage -g /Library/QuickLook/Video.qlgenerator

Following command just shows generic AVI icon: qlmanage -p ~/Movies/bird.avi dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) Testing Quick Look preview with files: /Users/wilsonjchan/Movies/bird.avi dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) 2019-06-28 13:52:03.392 qlmanage[12255:318070] CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x9b23, name = 'com.apple.coredrag' See /usr/include/servers/bootstrap_defs.h for the error codes. dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) 2019-06-28 13:52:03.635 qlmanage[12255:318070] CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x1332f, name = 'com.apple.tsm.portname' See /usr/include/servers/bootstrap_defs.h for the error codes. dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths)

qlmanage -m dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) dyld: warning, LC_RPATH @executable_path/../Frameworks in /usr/bin/qlmanage being ignored in restricted program because of @executable_path (Codesign main executable with Library Validation to allow @ paths) server: living for 107s (0 requests handled) - instant off: yes - arch: X86_64 - user id: 501 memory used: 0 MB (655952 bytes) - used descriptors: 16/256 plugins: org.openxmlformats.presentationml.slideshow -> /System/Library/QuickLook/Office.qlgenerator (40) com.adobe.pdf -> /System/Library/QuickLook/PDF.qlgenerator (888.1) com.apple.localized-pdf-bundle -> /System/Library/QuickLook/LocPDF.qlgenerator (888.1) public.3d-content -> /System/Library/QuickLook/SceneKit.qlgenerator (535.1) com.vmware.foreign.vhd -> /Applications/VMware Fusion.app/Contents/Library/QuickLook/VMware Fusion QuickLook.qlgenerator (13668589) com.apple.ical.bookmark -> /System/Library/QuickLook/iCal.qlgenerator (888.1) com.apple.iwork.keynote.key -> /Library/QuickLook/iWork.qlgenerator (205) com.apple.application -> /System/Library/QuickLook/StandardBundles.qlgenerator (888.1) com.microsoft.powerpoint.pot -> /System/Library/QuickLook/Office.qlgenerator (40) com.microsoft.word.doc -> /System/Library/QuickLook/Office.qlgenerator (40) org.openxmlformats.wordprocessingml.template.macroenabled -> /System/Library/QuickLook/Office.qlgenerator (40) com.apple.iwork.keynote.sffkey -> /Library/QuickLook/iWork.qlgenerator (205) com.apple.ichat.ichat -> /System/Library/QuickLook/iChat.qlgenerator (5500) com.microsoft.word.dot -> /System/Library/QuickLook/Office.qlgenerator (40) com.apple.iwork.keynote.sffkth -> /Library/QuickLook/iWork.qlgenerator (205) org.openxmlformats.presentationml.template.macroenabled -> /System/Library/QuickLook/Office.qlgenerator (40) com.apple.keynote.key -> /Library/QuickLook/iWork.qlgenerator (205) com.indeeo.idraw.idshapes -> /Applications/Graphic.app/Contents/Library/QuickLook/iDrawQL.qlgenerator (1.0) com.apple.mail.email -> /System/Library/QuickLook/Mail.qlgenerator (3560.7) com.apple.iwork.pages.sfftemplate -> /Library/QuickLook/iWork.qlgenerator (205) public.movie -> /System/Library/QuickLook/Movie.qlgenerator (888.1) com.apple.iwork.keynote.kth -> /Library/QuickLook/iWork.qlgenerator (205) com.apple.iwork.numbers.sffnumbers -> /Library/QuickLook/iWork.qlgenerator (205) com.apple.package -> /System/Library/QuickLook/Package.qlgenerator (888.1) com.wolfram.notebook.player -> /Applications/Mathematica.app/Contents/Library/QuickLook/Wolfram Notebook.qlgenerator (8.0) org.openxmlformats.wordprocessingml.document.macroenabled -> /System/Library/QuickLook/Office.qlgenerator (40) com.apple.iwork.pages.sffpages -> /Library/QuickLook/iWork.qlgenerator (205) com.apple.ical.ics -> /System/Library/QuickLook/iCal.qlgenerator (888.1) org.oasis-open.opendocument.text -> /System/Library/QuickLook/Text.qlgenerator (888.1) org.openxmlformats.wordprocessingml.template -> /System/Library/QuickLook/Office.qlgenerator (40) com.apple.ical.ics.event -> /System/Library/QuickLook/iCal.qlgenerator (888.1) com.microsoft.excel.xlt -> /System/Library/QuickLook/Office.qlgenerator (40) com.apple.iwork.numbers.sfftemplate -> /Library/QuickLook/iWork.qlgenerator (205) com.resolume.dxv -> /Library/QuickLook/ResolumeQuickLook.qlgenerator (1.0) com.apple.iwork.keynote.key-tef -> /Library/QuickLook/iWork.qlgenerator (205) com.indeeo.idraw.idraw -> /Applications/Graphic.app/Contents/Library/QuickLook/iDrawQL.qlgenerator (1.0) com.apple.internet-location -> /System/Library/QuickLook/Clippings.qlgenerator (888.1) com.rsa.pkcs-12 -> /System/Library/QuickLook/Security.qlgenerator (55139) org.openxmlformats.presentationml.slideshow.macroenabled -> /System/Library/QuickLook/Office.qlgenerator (40) com.microsoft.word.stationery -> /System/Library/QuickLook/Office.qlgenerator (40) com.apple.ibooks-folder -> /System/Library/QuickLook/iBooks.qlgenerator (1) public.x509-printable-encoded-archive -> /System/Library/QuickLook/Security.qlgenerator (55139) com.vmware.foreign.vpc7 -> /Applications/VMware Fusion.app/Contents/Library/QuickLook/VMware Fusion QuickLook.qlgenerator (13668589) public.xml -> /System/Library/QuickLook/Text.qlgenerator (888.1) com.vmware.foreign.pvm -> /Applications/VMware Fusion.app/Contents/Library/QuickLook/VMware Fusion QuickLook.qlgenerator (13668589) org.openxmlformats.wordprocessingml.document -> /System/Library/QuickLook/Office.qlgenerator (40) com.apple.rtfd -> /System/Library/QuickLook/Text.qlgenerator (888.1) com.apple.garageband.project -> /Applications/GarageBand.app/Contents/Library/QuickLook/GarageBandQLGenerator.qlgenerator (4980.96) com.apple.systempreference.prefpane -> /System/Library/QuickLook/StandardBundles.qlgenerator (888.1) org.openxmlformats.spreadsheetml.template -> /System/Library/QuickLook/Office.qlgenerator (40) com.blackmagic-design.braw-movie -> /Applications/DaVinci Resolve/DaVinci Resolve.app/Contents/Applications/Blackmagic RAW Player.app/Contents/Library/QuickLook/BlackmagicRaw.qlgenerator (1.3) com.apple.keychain -> /System/Library/QuickLook/Security.qlgenerator (55139) public.font -> /System/Library/QuickLook/Font.qlgenerator (888.1) com.apple.provisionprofile -> /Applications/Xcode.app/Contents/Library/QuickLook/DVTProvisioningProfileQuicklookGenerator.qlgenerator (1) public.x509-certificate -> /System/Library/QuickLook/Security.qlgenerator (55139) com.apple.iwork.pages.template -> /Library/QuickLook/iWork.qlgenerator (205) com.adobe.illustrator.ai-image -> /System/Library/QuickLook/EPS.qlgenerator (888.1) public.vcard -> /System/Library/QuickLook/Contact.qlgenerator (888.1) com.apple.finder.textclipping -> /System/Library/QuickLook/Clippings.qlgenerator (888.1) org.openxmlformats.presentationml.template -> /System/Library/QuickLook/Office.qlgenerator (40) jp.co.epson.printcd.document.2 -> /Applications/Epson Software/Print CD.app/Contents/Library/QuickLook/QLPCD.qlgenerator (1.0) org.openxmlformats.spreadsheetml.template.macroenabled -> /System/Library/QuickLook/Office.qlgenerator (40) com.apple.iwork.numbers.numbers -> /Library/QuickLook/iWork.qlgenerator (205) com.wolfram.notebook -> /Applications/Mathematica.app/Contents/Library/QuickLook/Wolfram Notebook.qlgenerator (8.0) com.apple.iwork.pages.pages -> /Library/QuickLook/iWork.qlgenerator (205) jp.co.epson.printcd.document.1 -> /Applications/Epson Software/Print CD.app/Contents/Library/QuickLook/QLPCD.qlgenerator (1.0) com.apple.ichat.transcript -> /System/Library/QuickLook/iChat.qlgenerator (5500) jp.co.epson.mpq.document -> /Applications/Epson Software/Print CD.app/Contents/Library/QuickLook/QLPCD.qlgenerator (1.0) com.apple.mail.emlx -> /System/Library/QuickLook/Mail.qlgenerator (3560.7) com.apple.iconset -> /System/Library/QuickLook/Icon.qlgenerator (888.1) com.apple.addressbook.group -> /System/Library/QuickLook/Contact.qlgenerator (888.1) com.apple.property-list -> /System/Library/QuickLook/Text.qlgenerator (888.1) com.vmware.vm-package -> /Applications/VMware Fusion.app/Contents/Library/QuickLook/VMware Fusion QuickLook.qlgenerator (13668589) com.wolfram.cdf -> /Applications/Mathematica.app/Contents/Library/QuickLook/Wolfram Notebook.qlgenerator (8.0) org.idpf.epub-container -> /System/Library/QuickLook/iBooks.qlgenerator (1) com.apple.addressbook.person -> /System/Library/QuickLook/Contact.qlgenerator (888.1) com.apple.safari.history -> /System/Library/QuickLook/Bookmark.qlgenerator (888.1) public.html -> /System/Library/QuickLook/Web.qlgenerator (888.1) com.apple.iwork.numbers.template -> /Library/QuickLook/iWork.qlgenerator (205) com.microsoft.powerpoint.pps -> /System/Library/QuickLook/Office.qlgenerator (40) com.vmware.foreign.pvs -> /Applications/VMware Fusion.app/Contents/Library/QuickLook/VMware Fusion QuickLook.qlgenerator (13668589) public.plain-text -> /System/Library/QuickLook/Text.qlgenerator (888.1) com.apple.safari.bookmark -> /System/Library/QuickLook/Bookmark.qlgenerator (888.1) public.audio -> /System/Library/QuickLook/Audio.qlgenerator (888.1) org.idpf.epub-folder -> /System/Library/QuickLook/iBooks.qlgenerator (1) com.apple.pict -> /System/Library/QuickLook/Clippings.qlgenerator (888.1) public.xhtml -> /System/Library/QuickLook/Web.qlgenerator (888.1) com.apple.logicx.project -> /Applications/GarageBand.app/Contents/Library/QuickLook/LogicXQLGenerator.qlgenerator (4980.96) org.openxmlformats.presentationml.presentation.macroenabled -> /System/Library/QuickLook/Office.qlgenerator (40) com.apple.finder.pictclipping -> /System/Library/QuickLook/Clippings.qlgenerator (888.1) com.apple.ical.bookmark.todo -> /System/Library/QuickLook/iCal.qlgenerator (888.1) com.apple.iwork.numbers.numbers-tef -> /Library/QuickLook/iWork.qlgenerator (205) com.apple.webarchive -> /System/Library/QuickLook/Web.qlgenerator (888.1) org.openxmlformats.presentationml.presentation -> /System/Library/QuickLook/Office.qlgenerator (40) public.svg-image -> /System/Library/QuickLook/Web.qlgenerator (888.1) com.apple.private.live-photo-bundle -> /System/Library/QuickLook/LivePhoto.qlgenerator (888.1) public.image -> /System/Library/QuickLook/Image.qlgenerator (888.1) com.apple.garageband.template.magic -> /Applications/GarageBand.app/Contents/Library/QuickLook/GarageBandQLGenerator.qlgenerator (4980.96) org.openxmlformats.spreadsheetml.sheet -> /System/Library/QuickLook/Office.qlgenerator (40) com.microsoft.excel.xls -> /System/Library/QuickLook/Office.qlgenerator (40) com.apple.mobileprovision -> /Applications/Xcode.app/Contents/Library/QuickLook/DVTProvisioningProfileQuicklookGenerator.qlgenerator (1) org.openxmlformats.spreadsheetml.sheet.macroenabled -> /System/Library/QuickLook/Office.qlgenerator (40) public.rtf -> /System/Library/QuickLook/Text.qlgenerator (888.1) com.imimot.mitti.project -> /Applications/Mitti.app/Contents/Library/QuickLook/MittiQuicklook.qlgenerator (1) com.apple.iwork.pages.pages-tef -> /Library/QuickLook/iWork.qlgenerator (205) com.microsoft.powerpoint.ppt -> /System/Library/QuickLook/Office.qlgenerator (40) public.comma-separated-values-text -> /System/Library/QuickLook/Office.qlgenerator (40) com.apple.ical.ics.todo -> /System/Library/QuickLook/iCal.qlgenerator (888.1) com.adobe.encapsulated-postscript -> /System/Library/QuickLook/EPS.qlgenerator (888.1) com.microsoft.advanced-systems-format -> /Library/QuickLook/Video.qlgenerator (1.9.2) com.apple.garageband.template.magicmentor -> /Applications/GarageBand.app/Contents/Library/QuickLook/GarageBandQLGenerator.qlgenerator (4980.96)

Marginal commented 5 years ago

The problem is this line in the qlmanage -m output:

public.movie -> /System/Library/QuickLook/Movie.qlgenerator

QuickLook is ignoring this plugin's request to handle preview and thumbnail generation of movie files (and also ignores requests to handle AVI, DV, QuickTime and various MPEG files if I change the plugin to explicitly request those).

I can work around this problem if necessary for Matroska, Ogg, WemM, Windows Media and some more obscure file types, but not for AVI, DV, QuickTime and various MPEG file types. Let's hope Apple fixes this before Catalina is released.

wilsonjchan commented 5 years ago

Will this new "QuickLook Thumbnailing" framework help?

https://developer.apple.com/documentation/quicklookthumbnailing?changes=__5

L1cardo commented 5 years ago

same problem. does not work on 10.15 beat4

SvenL1975 commented 5 years ago

Just wondering - is anybody working on making this work on Catalina? Whoever is doing this - thank you! I've been using QLVideo for years and it has always worked so perfect, I kind of forgot that it's not actually a part of macOS. So thanks for creating something that does what the OS should be doing on its own but doesn't.

mnfesq commented 5 years ago

Hi Marginal. Thanks for this great plugin. I miss it on my computers running Catalina betas. System files are locked down in Catalina and are actually in a separate read-only partition. When you run Mojave and Catalina on different partitions on the same computer, you can see that the Catalina installation is comprised of Catalina and Catalina-data partitions and your plugin is located in the data partition. I have tried without luck to change the permissions of both your plugin and the Catalina partition. Even remounting the partition with read/write capabilities will not allow me to copy your plugin into the System/Library/Quicklook folder. (Not even sure this would help but I thought I'd try it out.). Bottom line: I don't think you are dealing with a bug in Catalina but rather a security change that will need to be dealt with on Apple's terms. Good luck.

Marc2508 commented 4 years ago

Thanks @Marginal and @wilsonjchan for writing the plugin and explaining the issue!

@mnfesq The files under system are for system files as the name says. Those cannot and do not have to be altered. You can add extensions under either /Library or ~/Library.

Marginal already pointed to the problem, qlmanage -r does not overwrite registrations for standard filetypes aka UTIs (like public/movie) any longer. This might be bug or a security feature, who knows, and prevents that the generator Marginal provided is called for such standard extension. QLVideo is not the only plugin affected.

I tried what Marginal proposed, I added specific UTIs (you can get the UTI of a file by "mdls -name kMDItemContentType FILENAME") in the /Library/QuickLook/Video.qlgenerator/Contents/Info.plist (under key: LSItemContentTypes) of the generator and reloaded the assignment (with "qlmanage -r", "qlmanage -m | grep Video" should list them in case of success).

Good: I got thumbs and QL for file extensions like .wmv or .flv again.

Bad: It does not work with UTIs of type "public.", so no avi, mpeg-4 etc. are supported :-( (as Marginal also mentioned in his answer).

Strange: I cannot get it working with .mkv (UTI: io.iina.mkv). In comparison with working calls I see this in console log: Error 10:13:07.418401+0200 com.apple.quicklook.ThumbnailsAgent CGBitmapContextCreateImage: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.

Very strange: After a while t stops working and I get an error: "11:14:34.706207+0200 qlmanage Can't load plug-in executable at : Error Domain=NSCocoaErrorDomain Code=3587 UserInfo={NSLocalizedFailureReason=, NSLocalizedRecoverySuggestion=, NSFilePath=, NSDebugDescription=, NSBundlePath=, NSLocalizedDescription=}" Might be security feature of Apple preventing me from changing the generator content.

Maybe the new API wilsonjchan pointed onto solves the issues. Is there any work planned for it?

Smithy3 commented 4 years ago

This is such a great plugin and it's disappointing hearing it doesn't work on Catalina.

Are there any plans to make an updated version that does work on it?

cylott commented 4 years ago

Thank you so much for your hard work on this QLGenerator. I am one of many happy users hoping to get it working on Catalina!

cylott commented 4 years ago

The problem is this line in the qlmanage -m output:

public.movie -> /System/Library/QuickLook/Movie.qlgenerator

QuickLook is ignoring this plugin's request to handle preview and thumbnail generation of movie files (and also ignores requests to handle AVI, DV, QuickTime and various MPEG files if I change the plugin to explicitly request those).

I can work around this problem if necessary for Matroska, Ogg, WemM, Windows Media and some more obscure file types, but not for AVI, DV, QuickTime and various MPEG file types. Let's hope Apple fixes this before Catalina is released.

For me personally, the magic of this plugin is thumbnail generation for matroska files. Apple's blindness to the popularity of this format (along with FLAC) is willful neglect. I'd love to try out a beta version with mkv support.

prohtex commented 4 years ago

I love QLVideo. Thank you so much for keeping it working. My fingers are crossed for a new version that works on Catalina!

zhiayang commented 4 years ago

For a quick workaround --- since I think a large majority of people use this for MKV files? You can do this:

  1. Follow what @Marc2508 said, and edit /Library/QuickLook/Video.qlgenerator/Contents/Info.plist, and add some UTIs under the LSItemContentTypes entry. You can use (in Terminal) mdls <your_file> to see the UTI of your particular file (it'll be under kMDItemContentType). In my case IINA didn't change the association, so it's org.matroska.mkv.

  2. This is the important step -- you need to re-codesign the bundle, if not it'll be invalid and probably refuse to load. Follow the steps here: https://developer.apple.com/library/archive/documentation/Security/Conceptual/CodeSigningGuide/Procedures/Procedures.html

Basically, use Keychain Assistant to generate a new codesigning certificate (self signed -- no need to fork out $100 to Apple), then the following steps (after editing the plist):

(a) cd /Library/QuickLook/Video.qlgenerator (b) codesign -vv . <- this should say .: invalid Info.plist (plist or signature have been modified) (c) sudo codesign -s <your_certificate_name> -f . <- should get .: replacing existing signature (d) codesign -vv . <- this should now say .: valid on disk; satisfies its Designated Requirement

After that, you can run qlmanage -r to reload the generators, and relaunch Finder.

mnfesq commented 4 years ago

@zhiayang - Were you able to get thumbnails with your workaround? I am able to get Quicklook to work but not thumbnails.

EDIT: OK, it took a while but I got thumbnails after regenerating the preview cache. A couple of .mkv files refused to generate a thumbnail but I will give it some time and see if they appear eventually. BTW, I needed to add both io.iina.mkv and org.matroska.mkv to my info.plist.

zhiayang commented 4 years ago

Yep, I got thumbnails to work.

Although: can someone still on Mojave verify that there aren't black borders around the thumbnail? I don't remember that being the case, but of course I can't check now.

In Catalina (after doing the workaround), I get thumbnails but they're surrounded by black bars on the left and right. It's not really a big deal I guess, but I did notice it...

mnfesq commented 4 years ago

@zhiayang - I get black bars but only on the top and bottom.

zhiayang commented 4 years ago

@mnfesq oh, my files have vertical cover art. For files without embedded cover art I get the bars on the top and bottom, but that was the same pre-Catalina.

cylott commented 4 years ago

This is working for me. I guess nobody can make a PR because it has to be codesigned by @Marginal ?

mmenanno commented 4 years ago

Has anyone got this to work for webm files? I'm using org.videolan.webm but it still isn't showing me thumbnails

zhiayang commented 4 years ago

@halorrr you're right, I can't get it to work with webm either. strange.

Marc2508 commented 4 years ago

Have you tried UTI: com.google.webm as well?

Btw. thanks @zhiayang for explaining the code signing. One remark, the default certificate has an expiration date of 365 days. Therefore I create a non-default one where you can extend it.

At the moment I see no thumbnails.

rafpi12 commented 4 years ago

Ok i've got mkv and webm working (i added both org.videolan.webm and com.google.webm) Now I only need avi but I don't know much about how it works so I try to add "public.avi" to Video.qlgenerator but obviously it doesn't work... One another thing, when I press space to see the video preview, it launches a still image with 3 thumbnails from the video on the left, do u have the same ?

Marc2508 commented 4 years ago

@rafpi12 Afaik .avi will not work as it is a format Apple supports somehow.

Regarding the quicklook window, please check the entry page. You can configure the behavior of the plugin a little bit.

zhiayang commented 4 years ago

@Marc2508 is there a way to have it actually preview the video in the QL window? I don't think so, right?

Anyway, regarding the black border thing i was telling @mnfesq about, I went and took a screenshot:

image

The left is an MKV, the right is an MP4. Pretty sure this didn't happen in Mojave and earlier.

Marc2508 commented 4 years ago

I think it is only done if the Apple framework supports playing it. You can control it via:

defaults write uk.org.marginal.qlvideo SnapshotAlways -bool XX : Controls whether QuickLook "Preview" shows static snapshot(s) even if a playable preview is available. Default is NO.

As the default is already playing the preview I guess your file cannot be played without third party SW.

Id do not have vertical videos, my 16:9 videos have the correct preview without any borders.

If you have a new problem with borders I think you should check ffmpeg for a solution as this is used for proprietary formats to decode the video stream and take snapshots.

zhiayang commented 4 years ago

@Marc2508 The videos are not vertical -- the images shown are the embedded cover art. Looking at the source of QLVideo, it is set to grab the attached cover art if present and skip snapshotting, so that's not the issue.

I'm like 95% sure this didn't happen before.

acuntex commented 4 years ago

I hope this will work again.

Apple is making Quick View worse with every OS X version. They completely lost touch with their customers' needs. Even mp4 files somehow started to show only the vlc icon. And when i press space, the quick view window is only spinning, only after I kill the quickviewservice, it shows me previews for 2-3 files and then it's gone again.

At least with QLVideo it was always reliable.

acuntex commented 4 years ago

@Marginal It would be really nice, if you had the time to create a new pkg (Version 1.93) with proper signing as @zhiayang has described.

coolrecep commented 4 years ago

Any update on that? Same problem here.

gititaivan commented 4 years ago

any news?

VICTORHUGOBRAZIL commented 4 years ago

Any news when the update will come out?

bitfrickler commented 4 years ago

That's sad! :-(

MrEdsHuman commented 4 years ago

@goatlucy how do you know that? His profile page says he's been active on other projects the past year.

bitfrickler commented 4 years ago

@goatlucy how do you know that? His profile page says he's been active on other projects the past year.

Wasn‘t his last activity 17 days ago?

eirnym commented 4 years ago

@Marc2508 io.iina.mkv comes from media player you probably use, I have io.mpv.mkv :) at the same place.

jeffbyrnes commented 4 years ago

Well, with that being the case, seems the only way forward is if someone forks this & carries on.

gustavohellwig commented 4 years ago

For a quick workaround --- since I think a large majority of people use this for MKV files? You can do this:

  1. Follow what @Marc2508 said, and edit /Library/QuickLook/Video.qlgenerator/Contents/Info.plist, and add some UTIs under the LSItemContentTypes entry. You can use (in Terminal) mdls <your_file> to see the UTI of your particular file (it'll be under kMDItemContentType). In my case IINA didn't change the association, so it's org.matroska.mkv.
  2. This is the important step -- you need to re-codesign the bundle, if not it'll be invalid and probably refuse to load. Follow the steps here: https://developer.apple.com/library/archive/documentation/Security/Conceptual/CodeSigningGuide/Procedures/Procedures.html

Basically, use Keychain Assistant to generate a new codesigning certificate (self signed -- no need to fork out $100 to Apple), then the following steps (after editing the plist):

(a) cd /Library/QuickLook/Video.qlgenerator (b) codesign -vv . <- this should say .: invalid Info.plist (plist or signature have been modified) (c) sudo codesign -s <your_certificate_name> -f . <- should get .: replacing existing signature (d) codesign -vv . <- this should now say .: valid on disk; satisfies its Designated Requirement

After that, you can run qlmanage -r to reload the generators, and relaunch Finder.

I did what you said, and have this report after, but still no thumb or preview.\

.: valid on disk .: satisfies its Designated Requirement

what else should I do ?

zhiayang commented 4 years ago

hmm, that's kinda strange. Have you checked that the entries you put in the Info.plist actually match the UTIs of your file? (use the mdls thing to check).

If that doesn't work, you might try logging out (and back in), or even restarting — sometimes that does the trick as well.

zhiayang commented 4 years ago

Also: I'm in the process of experimenting with making a new quicklook extension, using the new API (QLThumbnailGenerator) that only handles thumbnails (no preview). No promises though.

gustavohellwig commented 4 years ago

maybe can you upload your Info.plist to compare? lookslike that it is the trick here.

zhiayang commented 4 years ago
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>BuildMachineOSBuild</key>
    <string>18C54</string>
    <key>CFBundleDevelopmentRegion</key>
    <string>English</string>
    <key>CFBundleDocumentTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeRole</key>
            <string>QLGenerator</string>
            <key>LSItemContentTypes</key>
            <array>
                <string>public.movie</string>
                <string>org.matroska.mkv</string>
                <string>org.videolan.webm</string>
                <string>com.microsoft.advanced-systems-format</string>
            </array>
        </dict>
    </array>
    <key>CFBundleExecutable</key>
    <string>Video</string>
    <key>CFBundleIdentifier</key>
    <string>uk.org.marginal.qlvideo.qlgenerator</string>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>6.0</string>
    <key>CFBundleName</key>
    <string>Video</string>
    <key>CFBundleShortVersionString</key>
    <string>1.9.2</string>
    <key>CFBundleSupportedPlatforms</key>
    <array>
        <string>MacOSX</string>
    </array>
    <key>CFBundleVersion</key>
    <string>1.9.2</string>
    <key>CFPlugInDynamicRegisterFunction</key>
    <string></string>
    <key>CFPlugInDynamicRegistration</key>
    <string>NO</string>
    <key>CFPlugInFactories</key>
    <dict>
        <key>4A60E117-F6DF-4B3C-9603-2BBE6CEC6972</key>
        <string>QuickLookGeneratorPluginFactory</string>
    </dict>
    <key>CFPlugInTypes</key>
    <dict>
        <key>5E2D9680-5022-40FA-B806-43349622E5B9</key>
        <array>
            <string>4A60E117-F6DF-4B3C-9603-2BBE6CEC6972</string>
        </array>
    </dict>
    <key>CFPlugInUnloadFunction</key>
    <string></string>
    <key>DTCompiler</key>
    <string>com.apple.compilers.llvm.clang.1_0</string>
    <key>DTPlatformBuild</key>
    <string>10B61</string>
    <key>DTPlatformVersion</key>
    <string>GM</string>
    <key>DTSDKBuild</key>
    <string>18B71</string>
    <key>DTSDKName</key>
    <string>macosx10.14</string>
    <key>DTXcode</key>
    <string>1010</string>
    <key>DTXcodeBuild</key>
    <string>10B61</string>
    <key>LSMinimumSystemVersion</key>
    <string>10.9</string>
    <key>NSHumanReadableCopyright</key>
    <string>© 2014-2019 Jonathan Harris. Licensed under GPLv2 or later.</string>
    <key>QLNeedsToBeRunInMainThread</key>
    <false/>
    <key>QLPreviewHeight</key>
    <integer>240</integer>
    <key>QLPreviewWidth</key>
    <integer>320</integer>
    <key>QLSupportsConcurrentRequests</key>
    <false/>
    <key>QLThumbnailMinimumSize</key>
    <integer>0</integer>
</dict>
</plist>
gustavohellwig commented 4 years ago

awesome....now how to create your ? :)

zhiayang commented 4 years ago

awesome....now how to create your ? :)

I found this: https://eclecticlight.co/2019/01/16/code-signing-for-the-concerned-2-creating-a-personal-certificate/

gustavohellwig commented 4 years ago

Ok, moving forward. The last question "maybe" is if I need to have the XCODE installed to do that, as I don't.

zhiayang commented 4 years ago

Hm.. you definitely don't need Xcode to create the certificate, but codesign might need Xcode installed.

gustavohellwig commented 4 years ago

Ok, now the quick preview works but not the thumbnails, that is what I do really need. Suggetions?

zhiayang commented 4 years ago

Try qlmanage -r a few times. If that doesn't work, log out and log back in. If that doesn't work, restart your computer. If that still doesn't work, then maybe you can put up a link to the problem file and I can try it on my end.

Marc2508 commented 4 years ago

I had to clear the thumbnail cache and restart the computer to get the previews working.

gustavohellwig commented 4 years ago

I had to clear the thumbnail cache and restart the computer to get the previews working.

how?

zhiayang commented 4 years ago

qlmanage -r resets the cache.

Marc2508 commented 4 years ago

There is also: qlmanage -r cache

gustavohellwig commented 4 years ago

Ok, good news, it worked now.

  1. The SelfCertificate should be a user, not a system.
  2. Also, still have the black bar on the side. does someone know how to fix that?