mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-11-04 08:35:12 +00:00 
			
		
		
		
	[generic] extract m3u8 formats when mpegurl content type detected
This commit is contained in:
		@@ -1229,19 +1229,24 @@ class GenericIE(InfoExtractor):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        # Check for direct link to a video
 | 
					        # Check for direct link to a video
 | 
				
			||||||
        content_type = head_response.headers.get('Content-Type', '')
 | 
					        content_type = head_response.headers.get('Content-Type', '')
 | 
				
			||||||
        m = re.match(r'^(?P<type>audio|video|application(?=/ogg$))/(?P<format_id>.+)$', content_type)
 | 
					        m = re.match(r'^(?P<type>audio|video|application(?=/(?:ogg$|(?:vnd\.apple\.|x-)?mpegurl)))/(?P<format_id>.+)$', content_type)
 | 
				
			||||||
        if m:
 | 
					        if m:
 | 
				
			||||||
            upload_date = unified_strdate(
 | 
					            upload_date = unified_strdate(
 | 
				
			||||||
                head_response.headers.get('Last-Modified'))
 | 
					                head_response.headers.get('Last-Modified'))
 | 
				
			||||||
 | 
					            formats = []
 | 
				
			||||||
 | 
					            if m.group('format_id').endswith('mpegurl'):
 | 
				
			||||||
 | 
					                formats = self._extract_m3u8_formats(url, video_id, 'mp4')
 | 
				
			||||||
 | 
					            else:
 | 
				
			||||||
 | 
					                formats = [{
 | 
				
			||||||
 | 
					                    'format_id': m.group('format_id'),
 | 
				
			||||||
 | 
					                    'url': url,
 | 
				
			||||||
 | 
					                    'vcodec': 'none' if m.group('type') == 'audio' else None
 | 
				
			||||||
 | 
					                }]
 | 
				
			||||||
            return {
 | 
					            return {
 | 
				
			||||||
                'id': video_id,
 | 
					                'id': video_id,
 | 
				
			||||||
                'title': compat_urllib_parse_unquote(os.path.splitext(url_basename(url))[0]),
 | 
					                'title': compat_urllib_parse_unquote(os.path.splitext(url_basename(url))[0]),
 | 
				
			||||||
                'direct': True,
 | 
					                'direct': True,
 | 
				
			||||||
                'formats': [{
 | 
					                'formats': formats,
 | 
				
			||||||
                    'format_id': m.group('format_id'),
 | 
					 | 
				
			||||||
                    'url': url,
 | 
					 | 
				
			||||||
                    'vcodec': 'none' if m.group('type') == 'audio' else None
 | 
					 | 
				
			||||||
                }],
 | 
					 | 
				
			||||||
                'upload_date': upload_date,
 | 
					                'upload_date': upload_date,
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user