mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-11-02 06:27:21 +00:00
Added two hooks that are provided via info_dict from extractor under keys '_fragment_hook_before_dl' and '_fragment_hook_after_dl' that run before and after fragment is downloaded.
This commit is contained in:
parent
9d6254069c
commit
dc3c1f4a56
|
@ -121,12 +121,21 @@ def _download_fragment(self, ctx, frag_url, info_dict, headers=None, request_dat
|
|||
frag_resume_len = self.filesize_or_none(self.temp_name(fragment_filename))
|
||||
fragment_info_dict['frag_resume_len'] = ctx['frag_resume_len'] = frag_resume_len
|
||||
|
||||
execute_before_frag_dl = info_dict.get('_fragment_hook_before_dl')
|
||||
if execute_before_frag_dl is not None and callable(execute_before_frag_dl):
|
||||
execute_before_frag_dl(fragment_filename, fragment_info_dict, ctx)
|
||||
|
||||
success, _ = ctx['dl'].download(fragment_filename, fragment_info_dict)
|
||||
if not success:
|
||||
return False
|
||||
if fragment_info_dict.get('filetime'):
|
||||
ctx['fragment_filetime'] = fragment_info_dict.get('filetime')
|
||||
ctx['fragment_filename_sanitized'] = fragment_filename
|
||||
|
||||
execute_after_frag_dl = info_dict.get('_fragment_hook_after_dl')
|
||||
if execute_after_frag_dl is not None and callable(execute_after_frag_dl):
|
||||
execute_after_frag_dl(fragment_filename, fragment_info_dict, ctx)
|
||||
|
||||
return True
|
||||
|
||||
def _read_fragment(self, ctx):
|
||||
|
|
|
@ -389,6 +389,16 @@ class InfoExtractor:
|
|||
extracted will not be available to output template and
|
||||
match_filter. So, only "comments" and "comment_count" are
|
||||
currently allowed to be extracted via this method.
|
||||
_fragment_hook_before_dl: A function to be called just before fragment is
|
||||
downloaded. It should take three positional arguments:
|
||||
'fragment_filename', 'fragment_info_dict' and 'ctx'.
|
||||
This is useful for special sites that need to change
|
||||
access cookies on every fragment/every few seconds.
|
||||
_fragment_hook_after_dl: A function to be called right after fragment is
|
||||
downloaded. It should take three positional arguments:
|
||||
'fragment_filename', 'fragment_info_dict' and 'ctx'.
|
||||
This is useful for special sites that need to change
|
||||
access cookies on every fragment/every few seconds.
|
||||
|
||||
The following fields should only be used when the video belongs to some logical
|
||||
chapter or section:
|
||||
|
|
Loading…
Reference in a new issue