diff options
| author | Remita Amine <remitamine@gmail.com> | 2019-01-13 10:01:26 +0100 | 
|---|---|---|
| committer | Remita Amine <remitamine@gmail.com> | 2019-01-13 10:03:27 +0100 | 
| commit | f1ab3b7de7667c0382bf6eb6364ccab4260c0654 (patch) | |
| tree | 6a1e88889581147a7173db86ee373f3e710785f9 | |
| parent | d65f6e734b5c00acbb396f4569907f7957e1cbef (diff) | |
[downloader/hls] fix uplynk ad skipping(closes #18824)
| -rw-r--r-- | youtube_dl/downloader/hls.py | 18 | 
1 files changed, 12 insertions, 6 deletions
| diff --git a/youtube_dl/downloader/hls.py b/youtube_dl/downloader/hls.py index fd304527e..4def8e2d5 100644 --- a/youtube_dl/downloader/hls.py +++ b/youtube_dl/downloader/hls.py @@ -75,10 +75,14 @@ class HlsFD(FragmentFD):                  fd.add_progress_hook(ph)              return fd.real_download(filename, info_dict) -        def is_ad_fragment(s): +        def is_ad_fragment_start(s):              return (s.startswith('#ANVATO-SEGMENT-INFO') and 'type=ad' in s or                      s.startswith('#UPLYNK-SEGMENT') and s.endswith(',ad')) +        def is_ad_fragment_end(s): +            return (s.startswith('#ANVATO-SEGMENT-INFO') and 'type=master' in s or +                    s.startswith('#UPLYNK-SEGMENT') and s.endswith(',segment')) +          media_frags = 0          ad_frags = 0          ad_frag_next = False @@ -87,12 +91,13 @@ class HlsFD(FragmentFD):              if not line:                  continue              if line.startswith('#'): -                if is_ad_fragment(line): -                    ad_frags += 1 +                if is_ad_fragment_start(line):                      ad_frag_next = True +                elif is_ad_fragment_end(line): +                    ad_frag_next = False                  continue              if ad_frag_next: -                ad_frag_next = False +                ad_frags += 1                  continue              media_frags += 1 @@ -123,7 +128,6 @@ class HlsFD(FragmentFD):              if line:                  if not line.startswith('#'):                      if ad_frag_next: -                        ad_frag_next = False                          continue                      frag_index += 1                      if frag_index <= ctx['fragment_index']: @@ -196,8 +200,10 @@ class HlsFD(FragmentFD):                          'start': sub_range_start,                          'end': sub_range_start + int(splitted_byte_range[0]),                      } -                elif is_ad_fragment(line): +                elif is_ad_fragment_start(line):                      ad_frag_next = True +                elif is_ad_fragment_end(line): +                    ad_frag_next = False          self._finish_frag_download(ctx) | 
