mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	| @@ -44,7 +44,7 @@ class CuriosityStreamBaseIE(InfoExtractor): | ||||
|                 'password': password, | ||||
|             })) | ||||
|         self._handle_errors(result) | ||||
|         self._auth_token = result['message']['auth_token'] | ||||
|         CuriosityStreamBaseIE._auth_token = result['message']['auth_token'] | ||||
|  | ||||
|  | ||||
| class CuriosityStreamIE(CuriosityStreamBaseIE): | ||||
| @@ -142,9 +142,26 @@ class CuriosityStreamIE(CuriosityStreamBaseIE): | ||||
|         } | ||||
|  | ||||
|  | ||||
| class CuriosityStreamCollectionIE(CuriosityStreamBaseIE): | ||||
|     IE_NAME = 'curiositystream:collection' | ||||
|     _VALID_URL = r'https?://(?:app\.)?curiositystream\.com/(?:collections?|series)/(?P<id>\d+)' | ||||
| class CuriosityStreamCollectionBaseIE(CuriosityStreamBaseIE): | ||||
|  | ||||
|     def _real_extract(self, url): | ||||
|         collection_id = self._match_id(url) | ||||
|         collection = self._call_api(collection_id, collection_id) | ||||
|         entries = [] | ||||
|         for media in collection.get('media', []): | ||||
|             media_id = compat_str(media.get('id')) | ||||
|             media_type, ie = ('series', CuriosityStreamSeriesIE) if media.get('is_collection') else ('video', CuriosityStreamIE) | ||||
|             entries.append(self.url_result( | ||||
|                 'https://curiositystream.com/%s/%s' % (media_type, media_id), | ||||
|                 ie=ie.ie_key(), video_id=media_id)) | ||||
|         return self.playlist_result( | ||||
|             entries, collection_id, | ||||
|             collection.get('title'), collection.get('description')) | ||||
|  | ||||
|  | ||||
| class CuriosityStreamCollectionsIE(CuriosityStreamCollectionBaseIE): | ||||
|     IE_NAME = 'curiositystream:collections' | ||||
|     _VALID_URL = r'https?://(?:app\.)?curiositystream\.com/collections/(?P<id>\d+)' | ||||
|     _API_BASE_URL = 'https://api.curiositystream.com/v2/collections/' | ||||
|     _TESTS = [{ | ||||
|         'url': 'https://curiositystream.com/collections/86', | ||||
| @@ -155,7 +172,17 @@ class CuriosityStreamCollectionIE(CuriosityStreamBaseIE): | ||||
|         }, | ||||
|         'playlist_mincount': 7, | ||||
|     }, { | ||||
|         'url': 'https://app.curiositystream.com/collection/2', | ||||
|         'url': 'https://curiositystream.com/collections/36', | ||||
|         'only_matching': True, | ||||
|     }] | ||||
|  | ||||
|  | ||||
| class CuriosityStreamSeriesIE(CuriosityStreamCollectionBaseIE): | ||||
|     IE_NAME = 'curiositystream:series' | ||||
|     _VALID_URL = r'https?://(?:app\.)?curiositystream\.com/(?:series|collection)/(?P<id>\d+)' | ||||
|     _API_BASE_URL = 'https://api.curiositystream.com/v2/series/' | ||||
|     _TESTS = [{ | ||||
|         'url': 'https://curiositystream.com/series/2', | ||||
|         'info_dict': { | ||||
|             'id': '2', | ||||
|             'title': 'Curious Minds: The Internet', | ||||
| @@ -163,23 +190,6 @@ class CuriosityStreamCollectionIE(CuriosityStreamBaseIE): | ||||
|         }, | ||||
|         'playlist_mincount': 16, | ||||
|     }, { | ||||
|         'url': 'https://curiositystream.com/series/2', | ||||
|         'only_matching': True, | ||||
|     }, { | ||||
|         'url': 'https://curiositystream.com/collections/36', | ||||
|         'url': 'https://curiositystream.com/collection/2', | ||||
|         'only_matching': True, | ||||
|     }] | ||||
|  | ||||
|     def _real_extract(self, url): | ||||
|         collection_id = self._match_id(url) | ||||
|         collection = self._call_api(collection_id, collection_id) | ||||
|         entries = [] | ||||
|         for media in collection.get('media', []): | ||||
|             media_id = compat_str(media.get('id')) | ||||
|             media_type, ie = ('series', CuriosityStreamCollectionIE) if media.get('is_collection') else ('video', CuriosityStreamIE) | ||||
|             entries.append(self.url_result( | ||||
|                 'https://curiositystream.com/%s/%s' % (media_type, media_id), | ||||
|                 ie=ie.ie_key(), video_id=media_id)) | ||||
|         return self.playlist_result( | ||||
|             entries, collection_id, | ||||
|             collection.get('title'), collection.get('description')) | ||||
|   | ||||
| @@ -307,7 +307,8 @@ from .ctvnews import CTVNewsIE | ||||
| from .cultureunplugged import CultureUnpluggedIE | ||||
| from .curiositystream import ( | ||||
|     CuriosityStreamIE, | ||||
|     CuriosityStreamCollectionIE, | ||||
|     CuriosityStreamCollectionsIE, | ||||
|     CuriosityStreamSeriesIE, | ||||
| ) | ||||
| from .cwtv import CWTVIE | ||||
| from .dailymail import DailyMailIE | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 pukkandan
					pukkandan