Write --xattrs metadata as macOS Spotlight metadata (rev 2) #29390
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Please follow the guide below
x
into all the boxes [ ] relevant to your pull request (like that [x])Before submitting a pull request make sure you have:
In order to be accepted and merged into youtube-dl each piece of code must be in public domain or released under Unlicense. Check one of the following options:
What is the purpose of your pull request?
Description of your pull request and other information
Modified the line of my previous #29184 about checking the availability of plistlib.dumps (from sys.version_info to hasattr().) Everything else unchanged.
Resolves #2545, resolves #8089, resolves #28945.
On macOS, it is preferable to write --xattrs metadata as Spotlight metadata so that they are shown in Finder's Get Info window and searchable by Spotlight/Finder.
These metadata will be written to Spotlight metadata: webpage_url, title, description and uploader.
Other metadata, upload_date and format, are written to dublin core as before since there seem to be no corresponding Spotlight metadata.
Uses standard plistlib on Python 3.4+, PyObjC module if available, or plutil command.
Tries to find Apple's xattr command which can set binary data if xattr module is not available.
PyObjC is usually pre-installed for Python 2.7 on macOS and can be installed with pip (pyobjc-framework-Cocoa is enough). plutil and xattr commands are usually pre-installed on macOS.