[utils,ie] Misc yt-dlp back-ports, etc #32799
Merged
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.
Own/yt-dlp code, Improvement
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
The main object of this PR is to bring
traverse_obj()
to par with recent changes in yt-dlp (thx Grub4k for these):is_user_input
option per [utils]traverse_obj
: Moveis_user_input
into output template yt-dlp/yt-dlp#8673compat_xml_etree_ElementTree_Element
per [utils]traverse_obj
: Supportxml.etree.ElementTree.Element
yt-dlp/yt-dlp#8911traverse_obj
: Allow unbranching usingall
andany
yt-dlp/yt-dlp#9571compat_cookies.Morsel
and multiple types inset()
keys per [utils]traverse_obj
: Convenience improvements yt-dlp/yt-dlp#9577To make XML traversal work in Py2.6, a new compat_etree_iterfind is added based on CPython 2.7 code.
To match yt-dlp there is a traversal.py (not yet nested) and separate tests for utils and traversal.
Secondly, some small additional back-ports related to the InfoExtractor API have been provided:
_yes_playlist()
method_NETRC_MACHINE
_search_json()
in_search_nextjs_data()
_search_nextjs_data()
default is JSON, not text.