[nrktv] Add support for new episode URL schema (closes #16909)
This commit is contained in:
		
							parent
							
								
									0685d9727b
								
							
						
					
					
						commit
						79fd7320e2
					
				| @ -768,6 +768,7 @@ from .nrk import ( | ||||
|     NRKSkoleIE, | ||||
|     NRKTVIE, | ||||
|     NRKTVDirekteIE, | ||||
|     NRKTVEpisodeIE, | ||||
|     NRKTVEpisodesIE, | ||||
|     NRKTVSeriesIE, | ||||
| ) | ||||
|  | ||||
| @ -8,6 +8,7 @@ from ..compat import compat_urllib_parse_unquote | ||||
| from ..utils import ( | ||||
|     ExtractorError, | ||||
|     int_or_none, | ||||
|     JSON_LD_RE, | ||||
|     parse_age_limit, | ||||
|     parse_duration, | ||||
| ) | ||||
| @ -359,6 +360,40 @@ class NRKTVIE(NRKBaseIE): | ||||
|     }] | ||||
| 
 | ||||
| 
 | ||||
| class NRKTVEpisodeIE(InfoExtractor): | ||||
|     _VALID_URL = r'https?://tv\.nrk\.no/serie/(?P<id>[^/]+/sesong/\d+/episode/\d+)' | ||||
|     _TEST = { | ||||
|         'url': 'https://tv.nrk.no/serie/backstage/sesong/1/episode/8', | ||||
|         'info_dict': { | ||||
|             'id': 'MSUI14000816AA', | ||||
|             'ext': 'mp4', | ||||
|             'title': 'Backstage 8:30', | ||||
|             'description': 'md5:de6ca5d5a2d56849e4021f2bf2850df4', | ||||
|             'duration': 1320, | ||||
|             'series': 'Backstage', | ||||
|             'season_number': 1, | ||||
|             'episode_number': 8, | ||||
|             'episode': '8:30', | ||||
|         }, | ||||
|         'params': { | ||||
|             'skip_download': True, | ||||
|         }, | ||||
|     } | ||||
| 
 | ||||
|     def _real_extract(self, url): | ||||
|         display_id = self._match_id(url) | ||||
| 
 | ||||
|         webpage = self._download_webpage(url, display_id) | ||||
| 
 | ||||
|         nrk_id = self._parse_json( | ||||
|             self._search_regex(JSON_LD_RE, webpage, 'JSON-LD', group='json_ld'), | ||||
|             display_id)['@id'] | ||||
| 
 | ||||
|         assert re.match(NRKTVIE._EPISODE_RE, nrk_id) | ||||
|         return self.url_result( | ||||
|             'nrk:%s' % nrk_id, ie=NRKIE.ie_key(), video_id=nrk_id) | ||||
| 
 | ||||
| 
 | ||||
| class NRKTVDirekteIE(NRKTVIE): | ||||
|     IE_DESC = 'NRK TV Direkte and NRK Radio Direkte' | ||||
|     _VALID_URL = r'https?://(?:tv|radio)\.nrk\.no/direkte/(?P<id>[^/?#&]+)' | ||||
| @ -470,7 +505,8 @@ class NRKTVSeriesIE(InfoExtractor): | ||||
| 
 | ||||
|     @classmethod | ||||
|     def suitable(cls, url): | ||||
|         return False if NRKTVIE.suitable(url) else super(NRKTVSeriesIE, cls).suitable(url) | ||||
|         return (False if NRKTVIE.suitable(url) or NRKTVEpisodeIE.suitable(url) | ||||
|                 else super(NRKTVSeriesIE, cls).suitable(url)) | ||||
| 
 | ||||
|     def _real_extract(self, url): | ||||
|         series_id = self._match_id(url) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user