[funk:channel] Improve extraction (closes #16285)
This commit is contained in:
		
							parent
							
								
									d3711b0050
								
							
						
					
					
						commit
						c84eae4f66
					
				| @ -5,7 +5,10 @@ import re | |||||||
| 
 | 
 | ||||||
| from .common import InfoExtractor | from .common import InfoExtractor | ||||||
| from .nexx import NexxIE | from .nexx import NexxIE | ||||||
| from ..utils import int_or_none | from ..utils import ( | ||||||
|  |     int_or_none, | ||||||
|  |     try_get, | ||||||
|  | ) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class FunkBaseIE(InfoExtractor): | class FunkBaseIE(InfoExtractor): | ||||||
| @ -77,6 +80,20 @@ class FunkChannelIE(FunkBaseIE): | |||||||
|         'params': { |         'params': { | ||||||
|             'skip_download': True, |             'skip_download': True, | ||||||
|         }, |         }, | ||||||
|  |     }, { | ||||||
|  |         # only available via byIdList API | ||||||
|  |         'url': 'https://www.funk.net/channel/informr/martin-sonneborn-erklaert-die-eu', | ||||||
|  |         'info_dict': { | ||||||
|  |             'id': '205067', | ||||||
|  |             'ext': 'mp4', | ||||||
|  |             'title': 'Martin Sonneborn erklärt die EU', | ||||||
|  |             'description': 'md5:050f74626e4ed87edf4626d2024210c0', | ||||||
|  |             'timestamp': 1494424042, | ||||||
|  |             'upload_date': '20170510', | ||||||
|  |         }, | ||||||
|  |         'params': { | ||||||
|  |             'skip_download': True, | ||||||
|  |         }, | ||||||
|     }, { |     }, { | ||||||
|         'url': 'https://www.funk.net/channel/59d5149841dca100012511e3/mein-erster-job-lovemilla-folge-1/lovemilla/', |         'url': 'https://www.funk.net/channel/59d5149841dca100012511e3/mein-erster-job-lovemilla-folge-1/lovemilla/', | ||||||
|         'only_matching': True, |         'only_matching': True, | ||||||
| @ -87,16 +104,28 @@ class FunkChannelIE(FunkBaseIE): | |||||||
|         channel_id = mobj.group('id') |         channel_id = mobj.group('id') | ||||||
|         alias = mobj.group('alias') |         alias = mobj.group('alias') | ||||||
| 
 | 
 | ||||||
|         results = self._download_json( |  | ||||||
|             'https://www.funk.net/api/v3.0/content/videos/filter', channel_id, |  | ||||||
|         headers = { |         headers = { | ||||||
|             'authorization': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjbGllbnROYW1lIjoiY3VyYXRpb24tdG9vbCIsInNjb3BlIjoic3RhdGljLWNvbnRlbnQtYXBpLGN1cmF0aW9uLWFwaSxzZWFyY2gtYXBpIn0.q4Y2xZG8PFHai24-4Pjx2gym9RmJejtmK6lMXP5wAgc', |             'authorization': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjbGllbnROYW1lIjoiY3VyYXRpb24tdG9vbCIsInNjb3BlIjoic3RhdGljLWNvbnRlbnQtYXBpLGN1cmF0aW9uLWFwaSxzZWFyY2gtYXBpIn0.q4Y2xZG8PFHai24-4Pjx2gym9RmJejtmK6lMXP5wAgc', | ||||||
|             'Referer': url, |             'Referer': url, | ||||||
|             }, query={ |         } | ||||||
|  | 
 | ||||||
|  |         video = None | ||||||
|  | 
 | ||||||
|  |         by_id_list = self._download_json( | ||||||
|  |             'https://www.funk.net/api/v3.0/content/videos/byIdList', channel_id, | ||||||
|  |             headers=headers, query={ | ||||||
|  |                 'ids': alias, | ||||||
|  |             }, fatal=False) | ||||||
|  |         if by_id_list: | ||||||
|  |             video = try_get(by_id_list, lambda x: x['result'][0], dict) | ||||||
|  | 
 | ||||||
|  |         if not video: | ||||||
|  |             results = self._download_json( | ||||||
|  |                 'https://www.funk.net/api/v3.0/content/videos/filter', channel_id, | ||||||
|  |                 headers=headers, query={ | ||||||
|                     'channelId': channel_id, |                     'channelId': channel_id, | ||||||
|                     'size': 100, |                     'size': 100, | ||||||
|                 })['result'] |                 })['result'] | ||||||
| 
 |  | ||||||
|             video = next(r for r in results if r.get('alias') == alias) |             video = next(r for r in results if r.get('alias') == alias) | ||||||
| 
 | 
 | ||||||
|         return self._make_url_result(video) |         return self._make_url_result(video) | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user