mirror of
				https://github.com/ytdl-org/youtube-dl
				synced 2025-10-31 17:53:11 +00:00 
			
		
		
		
	[ctv] Add new extractor (closes #27525)
This commit is contained in:
		
							parent
							
								
									1d3cd29730
								
							
						
					
					
						commit
						7f3c90ab25
					
				
							
								
								
									
										52
									
								
								youtube_dl/extractor/ctv.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								youtube_dl/extractor/ctv.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,52 @@ | ||||
| # coding: utf-8 | ||||
| from __future__ import unicode_literals | ||||
| 
 | ||||
| from .common import InfoExtractor | ||||
| 
 | ||||
| 
 | ||||
| class CTVIE(InfoExtractor): | ||||
|     _VALID_URL = r'https?://(?:www\.)?ctv\.ca/(?P<id>(?:show|movie)s/[^/]+/[^/?#&]+)' | ||||
|     _TESTS = [{ | ||||
|         'url': 'https://www.ctv.ca/shows/your-morning/wednesday-december-23-2020-s5e88', | ||||
|         'info_dict': { | ||||
|             'id': '2102249', | ||||
|             'ext': 'flv', | ||||
|             'title': 'Wednesday, December 23, 2020', | ||||
|             'thumbnail': r're:^https?://.*\.jpg$', | ||||
|             'description': 'Your Morning delivers original perspectives and unique insights into the headlines of the day.', | ||||
|             'timestamp': 1608732000, | ||||
|             'upload_date': '20201223', | ||||
|             'series': 'Your Morning', | ||||
|             'season': '2020-2021', | ||||
|             'season_number': 5, | ||||
|             'episode_number': 88, | ||||
|             'tags': ['Your Morning'], | ||||
|             'categories': ['Talk Show'], | ||||
|             'duration': 7467.126, | ||||
|         }, | ||||
|     }, { | ||||
|         'url': 'https://www.ctv.ca/movies/adam-sandlers-eight-crazy-nights/adam-sandlers-eight-crazy-nights', | ||||
|         'only_matching': True, | ||||
|     }] | ||||
| 
 | ||||
|     def _real_extract(self, url): | ||||
|         display_id = self._match_id(url) | ||||
|         content = self._download_json( | ||||
|             'https://www.ctv.ca/space-graphql/graphql', display_id, query={ | ||||
|                 'query': '''{ | ||||
|   resolvedPath(path: "/%s") { | ||||
|     lastSegment { | ||||
|       content { | ||||
|         ... on AxisContent { | ||||
|           axisId | ||||
|           videoPlayerDestCode | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| }''' % display_id, | ||||
|             })['data']['resolvedPath']['lastSegment']['content'] | ||||
|         video_id = content['axisId'] | ||||
|         return self.url_result( | ||||
|             '9c9media:%s:%s' % (content['videoPlayerDestCode'], video_id), | ||||
|             'NineCNineMedia', video_id) | ||||
| @ -244,6 +244,7 @@ from .crunchyroll import ( | ||||
| ) | ||||
| from .cspan import CSpanIE | ||||
| from .ctsnews import CtsNewsIE | ||||
| from .ctv import CTVIE | ||||
| from .ctvnews import CTVNewsIE | ||||
| from .cultureunplugged import CultureUnpluggedIE | ||||
| from .curiositystream import ( | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Remita Amine
						Remita Amine