mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 22:55:18 +00:00 
			
		
		
		
	[imdb] Improve extraction
This commit is contained in:
		| @@ -1,10 +1,10 @@ | ||||
| from __future__ import unicode_literals | ||||
|  | ||||
| import re | ||||
| import json | ||||
|  | ||||
| from .common import InfoExtractor | ||||
| from ..utils import ( | ||||
|     mimetype2ext, | ||||
|     qualities, | ||||
| ) | ||||
|  | ||||
| @@ -51,13 +51,27 @@ class ImdbIE(InfoExtractor): | ||||
|             json_data = self._search_regex( | ||||
|                 r'<script[^>]+class="imdb-player-data"[^>]*?>(.*?)</script>', | ||||
|                 format_page, 'json data', flags=re.DOTALL) | ||||
|             info = json.loads(json_data) | ||||
|             format_info = info['videoPlayerObject']['video'] | ||||
|             f_id = format_info['ffname'] | ||||
|             info = self._parse_json(json_data, video_id, fatal=False) | ||||
|             if not info: | ||||
|                 continue | ||||
|             format_info = info.get('videoPlayerObject', {}).get('video', {}) | ||||
|             if not format_info: | ||||
|                 continue | ||||
|             video_info_list = format_info.get('videoInfoList') | ||||
|             if not video_info_list or not isinstance(video_info_list, list): | ||||
|                 continue | ||||
|             video_info = video_info_list[0] | ||||
|             if not video_info or not isinstance(video_info, dict): | ||||
|                 continue | ||||
|             video_url = video_info.get('videoUrl') | ||||
|             if not video_url: | ||||
|                 continue | ||||
|             format_id = format_info.get('ffname') | ||||
|             formats.append({ | ||||
|                 'format_id': f_id, | ||||
|                 'url': format_info['videoInfoList'][0]['videoUrl'], | ||||
|                 'quality': quality(f_id), | ||||
|                 'format_id': format_id, | ||||
|                 'url': video_url, | ||||
|                 'ext': mimetype2ext(video_info.get('videoMimeType')), | ||||
|                 'quality': quality(format_id), | ||||
|             }) | ||||
|         self._sort_formats(formats) | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Sergey M․
					Sergey M․