mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:25:19 +00:00 
			
		
		
		
	[trunews] Add extractor (closes #19153)
This commit is contained in:
		| @@ -1171,6 +1171,7 @@ from .toutv import TouTvIE | |||||||
| from .toypics import ToypicsUserIE, ToypicsIE | from .toypics import ToypicsUserIE, ToypicsIE | ||||||
| from .traileraddict import TrailerAddictIE | from .traileraddict import TrailerAddictIE | ||||||
| from .trilulilu import TriluliluIE | from .trilulilu import TriluliluIE | ||||||
|  | from .trunews import TruNewsIE | ||||||
| from .trutv import TruTVIE | from .trutv import TruTVIE | ||||||
| from .tube8 import Tube8IE | from .tube8 import Tube8IE | ||||||
| from .tubitv import TubiTvIE | from .tubitv import TubiTvIE | ||||||
|   | |||||||
							
								
								
									
										75
									
								
								youtube_dl/extractor/trunews.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								youtube_dl/extractor/trunews.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,75 @@ | |||||||
|  | from __future__ import unicode_literals | ||||||
|  |  | ||||||
|  | from .common import InfoExtractor | ||||||
|  | from ..utils import ( | ||||||
|  |     dict_get, | ||||||
|  |     float_or_none, | ||||||
|  |     int_or_none, | ||||||
|  |     unified_timestamp, | ||||||
|  |     update_url_query, | ||||||
|  |     url_or_none, | ||||||
|  | ) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class TruNewsIE(InfoExtractor): | ||||||
|  |     _VALID_URL = r'https?://(?:www\.)?trunews\.com/stream/(?P<id>[^/?#&]+)' | ||||||
|  |     _TEST = { | ||||||
|  |         'url': 'https://www.trunews.com/stream/will-democrats-stage-a-circus-during-president-trump-s-state-of-the-union-speech', | ||||||
|  |         'md5': 'a19c024c3906ff954fac9b96ce66bb08', | ||||||
|  |         'info_dict': { | ||||||
|  |             'id': '5c5a21e65d3c196e1c0020cc', | ||||||
|  |             'display_id': 'will-democrats-stage-a-circus-during-president-trump-s-state-of-the-union-speech', | ||||||
|  |             'ext': 'mp4', | ||||||
|  |             'title': "Will Democrats Stage a Circus During President Trump's State of the Union Speech?", | ||||||
|  |             'description': 'md5:c583b72147cc92cf21f56a31aff7a670', | ||||||
|  |             'duration': 3685, | ||||||
|  |             'timestamp': 1549411440, | ||||||
|  |             'upload_date': '20190206', | ||||||
|  |         }, | ||||||
|  |         'add_ie': ['Zype'], | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     def _real_extract(self, url): | ||||||
|  |         display_id = self._match_id(url) | ||||||
|  |  | ||||||
|  |         video = self._download_json( | ||||||
|  |             'https://api.zype.com/videos', display_id, query={ | ||||||
|  |                 'app_key': 'PUVKp9WgGUb3-JUw6EqafLx8tFVP6VKZTWbUOR-HOm__g4fNDt1bCsm_LgYf_k9H', | ||||||
|  |                 'per_page': 1, | ||||||
|  |                 'active': 'true', | ||||||
|  |                 'friendly_title': display_id, | ||||||
|  |             })['response'][0] | ||||||
|  |  | ||||||
|  |         zype_id = video['_id'] | ||||||
|  |  | ||||||
|  |         thumbnails = [] | ||||||
|  |         thumbnails_list = video.get('thumbnails') | ||||||
|  |         if isinstance(thumbnails_list, list): | ||||||
|  |             for thumbnail in thumbnails_list: | ||||||
|  |                 if not isinstance(thumbnail, dict): | ||||||
|  |                     continue | ||||||
|  |                 thumbnail_url = url_or_none(thumbnail.get('url')) | ||||||
|  |                 if not thumbnail_url: | ||||||
|  |                     continue | ||||||
|  |                 thumbnails.append({ | ||||||
|  |                     'url': thumbnail_url, | ||||||
|  |                     'width': int_or_none(thumbnail.get('width')), | ||||||
|  |                     'height': int_or_none(thumbnail.get('height')), | ||||||
|  |                 }) | ||||||
|  |  | ||||||
|  |         return { | ||||||
|  |             '_type': 'url_transparent', | ||||||
|  |             'url': update_url_query( | ||||||
|  |                 'https://player.zype.com/embed/%s.js' % zype_id, | ||||||
|  |                 {'api_key': 'X5XnahkjCwJrT_l5zUqypnaLEObotyvtUKJWWlONxDoHVjP8vqxlArLV8llxMbyt'}), | ||||||
|  |             'ie_key': 'Zype', | ||||||
|  |             'id': zype_id, | ||||||
|  |             'display_id': display_id, | ||||||
|  |             'title': video.get('title'), | ||||||
|  |             'description': dict_get(video, ('description', 'ott_description', 'short_description')), | ||||||
|  |             'duration': int_or_none(video.get('duration')), | ||||||
|  |             'timestamp': unified_timestamp(video.get('published_at')), | ||||||
|  |             'average_rating': float_or_none(video.get('rating')), | ||||||
|  |             'view_count': int_or_none(video.get('request_count')), | ||||||
|  |             'thumbnails': thumbnails, | ||||||
|  |         } | ||||||
		Reference in New Issue
	
	Block a user
	 Sergey M․
					Sergey M․