Compare commits

...

2 Commits

2 changed files with 19 additions and 0 deletions

View File

@ -121,12 +121,21 @@ class FragmentFD(FileDownloader):
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):

View File

@ -405,6 +405,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: