mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 06:35:12 +00:00 
			
		
		
		
	[extractor/youtube] Retry manifest refresh for live-from-start (#5670)
Avoids ending download early when live stream is temporarily offline. Best used with somewhat large `--retry-sleep extractor:` and `--extractor-retries` Authored by: mzhou
This commit is contained in:
		| @@ -2650,18 +2650,19 @@ class YoutubeIE(YoutubeBaseInfoExtractor): | ||||
|             """ | ||||
|             @returns (manifest_url, manifest_stream_number, is_live) or None | ||||
|             """ | ||||
|             with lock: | ||||
|                 refetch_manifest(format_id, delay) | ||||
|             for retry in self.RetryManager(fatal=False): | ||||
|                 with lock: | ||||
|                     refetch_manifest(format_id, delay) | ||||
| 
 | ||||
|             f = next((f for f in formats if f['format_id'] == format_id), None) | ||||
|             if not f: | ||||
|                 if not is_live: | ||||
|                     self.to_screen(f'{video_id}: Video is no longer live') | ||||
|                 else: | ||||
|                     self.report_warning( | ||||
|                         f'Cannot find refreshed manifest for format {format_id}{bug_reports_message()}') | ||||
|                 return None | ||||
|             return f['manifest_url'], f['manifest_stream_number'], is_live | ||||
|                 f = next((f for f in formats if f['format_id'] == format_id), None) | ||||
|                 if not f: | ||||
|                     if not is_live: | ||||
|                         retry.error = f'{video_id}: Video is no longer live' | ||||
|                     else: | ||||
|                         retry.error = f'Cannot find refreshed manifest for format {format_id}{bug_reports_message()}' | ||||
|                     continue | ||||
|                 return f['manifest_url'], f['manifest_stream_number'], is_live | ||||
|             return None | ||||
| 
 | ||||
|         for f in formats: | ||||
|             f['is_live'] = is_live | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 mzhou
					mzhou