mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-11-30 12:01:28 +00:00
[rai] Convert to new subtitles system
This commit is contained in:
parent
01561da142
commit
afbdd3acc3
|
@ -22,6 +22,7 @@
|
||||||
NPOIE,
|
NPOIE,
|
||||||
ComedyCentralIE,
|
ComedyCentralIE,
|
||||||
NRKTVIE,
|
NRKTVIE,
|
||||||
|
RaiIE,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -359,5 +360,17 @@ def test_allsubtitles(self):
|
||||||
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 @@
|
||||||
|
|
||||||
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 @@
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
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 @@ def _real_extract(self, url):
|
||||||
'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 @@ def _real_extract(self, url):
|
||||||
'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 @@ def _get_available_subtitles(self, video_id, webpage):
|
||||||
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
|
||||||
|
|
Loading…
Reference in a new issue