mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 06:35:12 +00:00 
			
		
		
		
	Update to ytdl-commit-654b4f4
[youtube] prioritize information from YoutubeIE for playlist entries
654b4f4ff2
			
			
This commit is contained in:
		
							
								
								
									
										101
									
								
								yt_dlp/extractor/arnes.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										101
									
								
								yt_dlp/extractor/arnes.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,101 @@ | ||||
| # coding: utf-8 | ||||
| from __future__ import unicode_literals | ||||
|  | ||||
| from .common import InfoExtractor | ||||
| from ..compat import ( | ||||
|     compat_parse_qs, | ||||
|     compat_urllib_parse_urlparse, | ||||
| ) | ||||
| from ..utils import ( | ||||
|     float_or_none, | ||||
|     int_or_none, | ||||
|     parse_iso8601, | ||||
|     remove_start, | ||||
| ) | ||||
|  | ||||
|  | ||||
| class ArnesIE(InfoExtractor): | ||||
|     IE_NAME = 'video.arnes.si' | ||||
|     IE_DESC = 'Arnes Video' | ||||
|     _VALID_URL = r'https?://video\.arnes\.si/(?:[a-z]{2}/)?(?:watch|embed|api/(?:asset|public/video))/(?P<id>[0-9a-zA-Z]{12})' | ||||
|     _TESTS = [{ | ||||
|         'url': 'https://video.arnes.si/watch/a1qrWTOQfVoU?t=10', | ||||
|         'md5': '4d0f4d0a03571b33e1efac25fd4a065d', | ||||
|         'info_dict': { | ||||
|             'id': 'a1qrWTOQfVoU', | ||||
|             'ext': 'mp4', | ||||
|             'title': 'Linearna neodvisnost, definicija', | ||||
|             'description': 'Linearna neodvisnost, definicija', | ||||
|             'license': 'PRIVATE', | ||||
|             'creator': 'Polona Oblak', | ||||
|             'timestamp': 1585063725, | ||||
|             'upload_date': '20200324', | ||||
|             'channel': 'Polona Oblak', | ||||
|             'channel_id': 'q6pc04hw24cj', | ||||
|             'channel_url': 'https://video.arnes.si/?channel=q6pc04hw24cj', | ||||
|             'duration': 596.75, | ||||
|             'view_count': int, | ||||
|             'tags': ['linearna_algebra'], | ||||
|             'start_time': 10, | ||||
|         } | ||||
|     }, { | ||||
|         'url': 'https://video.arnes.si/api/asset/s1YjnV7hadlC/play.mp4', | ||||
|         'only_matching': True, | ||||
|     }, { | ||||
|         'url': 'https://video.arnes.si/embed/s1YjnV7hadlC', | ||||
|         'only_matching': True, | ||||
|     }, { | ||||
|         'url': 'https://video.arnes.si/en/watch/s1YjnV7hadlC', | ||||
|         'only_matching': True, | ||||
|     }, { | ||||
|         'url': 'https://video.arnes.si/embed/s1YjnV7hadlC?t=123&hideRelated=1', | ||||
|         'only_matching': True, | ||||
|     }, { | ||||
|         'url': 'https://video.arnes.si/api/public/video/s1YjnV7hadlC', | ||||
|         'only_matching': True, | ||||
|     }] | ||||
|     _BASE_URL = 'https://video.arnes.si' | ||||
|  | ||||
|     def _real_extract(self, url): | ||||
|         video_id = self._match_id(url) | ||||
|  | ||||
|         video = self._download_json( | ||||
|             self._BASE_URL + '/api/public/video/' + video_id, video_id)['data'] | ||||
|         title = video['title'] | ||||
|  | ||||
|         formats = [] | ||||
|         for media in (video.get('media') or []): | ||||
|             media_url = media.get('url') | ||||
|             if not media_url: | ||||
|                 continue | ||||
|             formats.append({ | ||||
|                 'url': self._BASE_URL + media_url, | ||||
|                 'format_id': remove_start(media.get('format'), 'FORMAT_'), | ||||
|                 'format_note': media.get('formatTranslation'), | ||||
|                 'width': int_or_none(media.get('width')), | ||||
|                 'height': int_or_none(media.get('height')), | ||||
|             }) | ||||
|         self._sort_formats(formats) | ||||
|  | ||||
|         channel = video.get('channel') or {} | ||||
|         channel_id = channel.get('url') | ||||
|         thumbnail = video.get('thumbnailUrl') | ||||
|  | ||||
|         return { | ||||
|             'id': video_id, | ||||
|             'title': title, | ||||
|             'formats': formats, | ||||
|             'thumbnail': self._BASE_URL + thumbnail, | ||||
|             'description': video.get('description'), | ||||
|             'license': video.get('license'), | ||||
|             'creator': video.get('author'), | ||||
|             'timestamp': parse_iso8601(video.get('creationTime')), | ||||
|             'channel': channel.get('name'), | ||||
|             'channel_id': channel_id, | ||||
|             'channel_url': self._BASE_URL + '/?channel=' + channel_id if channel_id else None, | ||||
|             'duration': float_or_none(video.get('duration'), 1000), | ||||
|             'view_count': int_or_none(video.get('views')), | ||||
|             'tags': video.get('hashtags'), | ||||
|             'start_time': int_or_none(compat_parse_qs( | ||||
|                 compat_urllib_parse_urlparse(url).query).get('t', [None])[0]), | ||||
|         } | ||||
		Reference in New Issue
	
	Block a user
	 pukkandan
					pukkandan