mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:25:19 +00:00 
			
		
		
		
	[xtube] Fix extraction with non-standard JSON 'sources'
Closes #12734 Thanks @paulguy for the fix!
This commit is contained in:
		| @@ -1,3 +1,9 @@ | |||||||
|  | version <unreleased> | ||||||
|  |  | ||||||
|  | Extractors | ||||||
|  | * [xtube] Fix extraction for older FLV videos (#12734) | ||||||
|  |  | ||||||
|  |  | ||||||
| version 2017.04.28 | version 2017.04.28 | ||||||
|  |  | ||||||
| Core | Core | ||||||
|   | |||||||
| @@ -6,6 +6,7 @@ import re | |||||||
| from .common import InfoExtractor | from .common import InfoExtractor | ||||||
| from ..utils import ( | from ..utils import ( | ||||||
|     int_or_none, |     int_or_none, | ||||||
|  |     js_to_json, | ||||||
|     orderedSet, |     orderedSet, | ||||||
|     parse_duration, |     parse_duration, | ||||||
|     sanitized_Request, |     sanitized_Request, | ||||||
| @@ -37,6 +38,22 @@ class XTubeIE(InfoExtractor): | |||||||
|             'comment_count': int, |             'comment_count': int, | ||||||
|             'age_limit': 18, |             'age_limit': 18, | ||||||
|         } |         } | ||||||
|  |     }, { | ||||||
|  |         # FLV videos with duplicated formats | ||||||
|  |         'url': 'http://www.xtube.com/video-watch/A-Super-Run-Part-1-YT-9299752', | ||||||
|  |         'md5': 'a406963eb349dd43692ec54631efd88b', | ||||||
|  |         'info_dict': { | ||||||
|  |             'id': '9299752', | ||||||
|  |             'display_id': 'A-Super-Run-Part-1-YT', | ||||||
|  |             'ext': 'flv', | ||||||
|  |             'title': 'A Super Run - Part 1 (YT)', | ||||||
|  |             'description': 'md5:ca0d47afff4a9b2942e4b41aa970fd93', | ||||||
|  |             'uploader': 'tshirtguy59', | ||||||
|  |             'duration': 579, | ||||||
|  |             'view_count': int, | ||||||
|  |             'comment_count': int, | ||||||
|  |             'age_limit': 18, | ||||||
|  |         }, | ||||||
|     }, { |     }, { | ||||||
|         # new URL schema |         # new URL schema | ||||||
|         'url': 'http://www.xtube.com/video-watch/strange-erotica-625837', |         'url': 'http://www.xtube.com/video-watch/strange-erotica-625837', | ||||||
| @@ -68,8 +85,9 @@ class XTubeIE(InfoExtractor): | |||||||
|             }) |             }) | ||||||
|  |  | ||||||
|         sources = self._parse_json(self._search_regex( |         sources = self._parse_json(self._search_regex( | ||||||
|             r'(["\'])sources\1\s*:\s*(?P<sources>{.+?}),', |             r'(["\'])?sources\1?\s*:\s*(?P<sources>{.+?}),', | ||||||
|             webpage, 'sources', group='sources'), video_id) |             webpage, 'sources', group='sources'), video_id, | ||||||
|  |             transform_source=js_to_json) | ||||||
|  |  | ||||||
|         formats = [] |         formats = [] | ||||||
|         for format_id, format_url in sources.items(): |         for format_id, format_url in sources.items(): | ||||||
| @@ -78,6 +96,7 @@ class XTubeIE(InfoExtractor): | |||||||
|                 'format_id': format_id, |                 'format_id': format_id, | ||||||
|                 'height': int_or_none(format_id), |                 'height': int_or_none(format_id), | ||||||
|             }) |             }) | ||||||
|  |         self._remove_duplicate_formats(formats) | ||||||
|         self._sort_formats(formats) |         self._sort_formats(formats) | ||||||
|  |  | ||||||
|         title = self._search_regex( |         title = self._search_regex( | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Yen Chi Hsuan
					Yen Chi Hsuan