mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:25:19 +00:00 
			
		
		
		
	[rai] Convert to new subtitles system
This commit is contained in:
		| @@ -22,6 +22,7 @@ from youtube_dl.extractor import ( | |||||||
|     NPOIE, |     NPOIE, | ||||||
|     ComedyCentralIE, |     ComedyCentralIE, | ||||||
|     NRKTVIE, |     NRKTVIE, | ||||||
|  |     RaiIE, | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -359,5 +360,17 @@ class TestNRKSubtitles(BaseTestSubtitles): | |||||||
|         self.assertEqual(md5(subtitles['no']), '1d221e6458c95c5494dcd38e6a1f129a') |         self.assertEqual(md5(subtitles['no']), '1d221e6458c95c5494dcd38e6a1f129a') | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class TestRaiSubtitles(BaseTestSubtitles): | ||||||
|  |     url = 'http://www.rai.tv/dl/RaiTV/programmi/media/ContentItem-cb27157f-9dd0-4aee-b788-b1f67643a391.html' | ||||||
|  |     IE = RaiIE | ||||||
|  |  | ||||||
|  |     def test_allsubtitles(self): | ||||||
|  |         self.DL.params['writesubtitles'] = True | ||||||
|  |         self.DL.params['allsubtitles'] = True | ||||||
|  |         subtitles = self.getSubtitles() | ||||||
|  |         self.assertEqual(set(subtitles.keys()), set(['it'])) | ||||||
|  |         self.assertEqual(md5(subtitles['it']), 'b1d90a98755126b61e667567a1f6680a') | ||||||
|  |  | ||||||
|  |  | ||||||
| if __name__ == '__main__': | if __name__ == '__main__': | ||||||
|     unittest.main() |     unittest.main() | ||||||
|   | |||||||
| @@ -2,7 +2,7 @@ from __future__ import unicode_literals | |||||||
|  |  | ||||||
| import re | import re | ||||||
|  |  | ||||||
| from .subtitles import SubtitlesInfoExtractor | from .common import InfoExtractor | ||||||
| from ..compat import ( | from ..compat import ( | ||||||
|     compat_urllib_parse, |     compat_urllib_parse, | ||||||
| ) | ) | ||||||
| @@ -12,7 +12,7 @@ from ..utils import ( | |||||||
| ) | ) | ||||||
|  |  | ||||||
|  |  | ||||||
| class RaiIE(SubtitlesInfoExtractor): | class RaiIE(InfoExtractor): | ||||||
|     _VALID_URL = r'(?P<url>http://(?:.+?\.)?(?:rai\.it|rai\.tv|rainews\.it)/dl/.+?-(?P<id>[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12})(?:-.+?)?\.html)' |     _VALID_URL = r'(?P<url>http://(?:.+?\.)?(?:rai\.it|rai\.tv|rainews\.it)/dl/.+?-(?P<id>[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12})(?:-.+?)?\.html)' | ||||||
|     _TESTS = [ |     _TESTS = [ | ||||||
|         { |         { | ||||||
| @@ -89,15 +89,7 @@ class RaiIE(SubtitlesInfoExtractor): | |||||||
|                 'ext': 'mp4', |                 'ext': 'mp4', | ||||||
|             }) |             }) | ||||||
|  |  | ||||||
|         if self._downloader.params.get('listsubtitles', False): |         subtitles = self.extract_subtitles(video_id, url) | ||||||
|             page = self._download_webpage(url, video_id) |  | ||||||
|             self._list_available_subtitles(video_id, page) |  | ||||||
|             return |  | ||||||
|  |  | ||||||
|         subtitles = {} |  | ||||||
|         if self._have_to_download_any_subtitles: |  | ||||||
|             page = self._download_webpage(url, video_id) |  | ||||||
|             subtitles = self.extract_subtitles(video_id, page) |  | ||||||
|  |  | ||||||
|         return { |         return { | ||||||
|             'id': video_id, |             'id': video_id, | ||||||
| @@ -111,7 +103,8 @@ class RaiIE(SubtitlesInfoExtractor): | |||||||
|             'subtitles': subtitles, |             'subtitles': subtitles, | ||||||
|         } |         } | ||||||
|  |  | ||||||
|     def _get_available_subtitles(self, video_id, webpage): |     def _get_subtitles(self, video_id, url): | ||||||
|  |         webpage = self._download_webpage(url, video_id) | ||||||
|         subtitles = {} |         subtitles = {} | ||||||
|         m = re.search(r'<meta name="closedcaption" content="(?P<captions>[^"]+)"', webpage) |         m = re.search(r'<meta name="closedcaption" content="(?P<captions>[^"]+)"', webpage) | ||||||
|         if m: |         if m: | ||||||
| @@ -120,5 +113,8 @@ class RaiIE(SubtitlesInfoExtractor): | |||||||
|             SRT_EXT = '.srt' |             SRT_EXT = '.srt' | ||||||
|             if captions.endswith(STL_EXT): |             if captions.endswith(STL_EXT): | ||||||
|                 captions = captions[:-len(STL_EXT)] + SRT_EXT |                 captions = captions[:-len(STL_EXT)] + SRT_EXT | ||||||
|             subtitles['it'] = 'http://www.rai.tv%s' % compat_urllib_parse.quote(captions) |             subtitles['it'] = [{ | ||||||
|  |                 'ext': 'srt', | ||||||
|  |                 'url': 'http://www.rai.tv%s' % compat_urllib_parse.quote(captions), | ||||||
|  |             }] | ||||||
|         return subtitles |         return subtitles | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Jaime Marquínez Ferrándiz
					Jaime Marquínez Ferrándiz