mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 06:35:12 +00:00 
			
		
		
		
	[generic] Parse RSS enclosure URLs (Fixes #5091)
This commit is contained in:
		| @@ -26,6 +26,7 @@ from ..utils import ( | ||||
|     unsmuggle_url, | ||||
|     UnsupportedError, | ||||
|     url_basename, | ||||
|     xpath_text, | ||||
| ) | ||||
| from .brightcove import BrightcoveIE | ||||
| from .ooyala import OoyalaIE | ||||
| @@ -569,6 +570,16 @@ class GenericIE(InfoExtractor): | ||||
|                 'title': 'John Carlson Postgame 2/25/15', | ||||
|             }, | ||||
|         }, | ||||
|         # RSS feed with enclosure | ||||
|         { | ||||
|             'url': 'http://podcastfeeds.nbcnews.com/audio/podcast/MSNBC-MADDOW-NETCAST-M4V.xml', | ||||
|             'info_dict': { | ||||
|                 'id': 'pdv_maddow_netcast_m4v-02-27-2015-201624', | ||||
|                 'ext': 'm4v', | ||||
|                 'upload_date': '20150228', | ||||
|                 'title': 'pdv_maddow_netcast_m4v-02-27-2015-201624', | ||||
|             } | ||||
|         } | ||||
|     ] | ||||
|  | ||||
|     def report_following_redirect(self, new_url): | ||||
| @@ -580,11 +591,24 @@ class GenericIE(InfoExtractor): | ||||
|         playlist_desc_el = doc.find('./channel/description') | ||||
|         playlist_desc = None if playlist_desc_el is None else playlist_desc_el.text | ||||
|  | ||||
|         entries = [{ | ||||
|             '_type': 'url', | ||||
|             'url': e.find('link').text, | ||||
|             'title': e.find('title').text, | ||||
|         } for e in doc.findall('./channel/item')] | ||||
|         entries = [] | ||||
|         for it in doc.findall('./channel/item'): | ||||
|             next_url = xpath_text(it, 'link', fatal=False) | ||||
|             if not next_url: | ||||
|                 enclosure_nodes = it.findall('./enclosure') | ||||
|                 for e in enclosure_nodes: | ||||
|                     next_url = e.attrib.get('url') | ||||
|                     if next_url: | ||||
|                         break | ||||
|  | ||||
|             if not next_url: | ||||
|                 continue | ||||
|  | ||||
|             entries.append({ | ||||
|                 '_type': 'url', | ||||
|                 'url': next_url, | ||||
|                 'title': it.find('title').text, | ||||
|             }) | ||||
|  | ||||
|         return { | ||||
|             '_type': 'playlist', | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Philipp Hagemeister
					Philipp Hagemeister