From 195c22840c594c8f9229cb47ffec2a8984c53a0c Mon Sep 17 00:00:00 2001 From: Lesmiscore Date: Sat, 26 Feb 2022 12:34:36 +0900 Subject: [PATCH] [downloader/fragment] Ignore `FileNotFoundError` when downloading livestreams when `--live-from-start` is used for YouTube and the live ends, request for the last segment prematurely ends (or 404, 403). this is causing lack of the file and `FileNotFoundError` lacking segment doesn't have any data, so it's safe to ignore --- yt_dlp/downloader/fragment.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/yt_dlp/downloader/fragment.py b/yt_dlp/downloader/fragment.py index 7b213cd5f..24f4ec959 100644 --- a/yt_dlp/downloader/fragment.py +++ b/yt_dlp/downloader/fragment.py @@ -137,7 +137,12 @@ def _download_fragment(self, ctx, frag_url, info_dict, headers=None, request_dat if fragment_info_dict.get('filetime'): ctx['fragment_filetime'] = fragment_info_dict.get('filetime') ctx['fragment_filename_sanitized'] = fragment_filename - return True, self._read_fragment(ctx) + try: + return True, self._read_fragment(ctx) + except FileNotFoundError: + if not info_dict.get('is_live'): + raise + return False, None def _read_fragment(self, ctx): down, frag_sanitized = self.sanitize_open(ctx['fragment_filename_sanitized'], 'rb')