|
@@ -107,6 +107,184 @@ class TestInfoExtractor(unittest.TestCase):
|
|
|
self.assertRaises(ExtractorError, self.ie._download_json, uri, None)
|
|
|
self.assertEqual(self.ie._download_json(uri, None, fatal=False), None)
|
|
|
|
|
|
+ def test_parse_html5_media_entries(self):
|
|
|
+ # from https://www.r18.com/
|
|
|
+ # with kpbs in label
|
|
|
+ expect_dict(
|
|
|
+ self,
|
|
|
+ self.ie._parse_html5_media_entries(
|
|
|
+ 'https://www.r18.com/',
|
|
|
+ r'''
|
|
|
+ <video id="samplevideo_amateur" class="js-samplevideo video-js vjs-default-skin vjs-big-play-centered" controls preload="auto" width="400" height="225" poster="//pics.r18.com/digital/amateur/mgmr105/mgmr105jp.jpg">
|
|
|
+ <source id="video_source" src="https://awscc3001.r18.com/litevideo/freepv/m/mgm/mgmr105/mgmr105_sm_w.mp4" type="video/mp4" res="240" label="300kbps">
|
|
|
+ <source id="video_source" src="https://awscc3001.r18.com/litevideo/freepv/m/mgm/mgmr105/mgmr105_dm_w.mp4" type="video/mp4" res="480" label="1000kbps">
|
|
|
+ <source id="video_source" src="https://awscc3001.r18.com/litevideo/freepv/m/mgm/mgmr105/mgmr105_dmb_w.mp4" type="video/mp4" res="740" label="1500kbps">
|
|
|
+ <p>Your browser does not support the video tag.</p>
|
|
|
+ </video>
|
|
|
+ ''', None)[0],
|
|
|
+ {
|
|
|
+ 'formats': [{
|
|
|
+ 'url': 'https://awscc3001.r18.com/litevideo/freepv/m/mgm/mgmr105/mgmr105_sm_w.mp4',
|
|
|
+ 'ext': 'mp4',
|
|
|
+ 'format_id': '300kbps',
|
|
|
+ 'height': 240,
|
|
|
+ 'tbr': 300,
|
|
|
+ }, {
|
|
|
+ 'url': 'https://awscc3001.r18.com/litevideo/freepv/m/mgm/mgmr105/mgmr105_dm_w.mp4',
|
|
|
+ 'ext': 'mp4',
|
|
|
+ 'format_id': '1000kbps',
|
|
|
+ 'height': 480,
|
|
|
+ 'tbr': 1000,
|
|
|
+ }, {
|
|
|
+ 'url': 'https://awscc3001.r18.com/litevideo/freepv/m/mgm/mgmr105/mgmr105_dmb_w.mp4',
|
|
|
+ 'ext': 'mp4',
|
|
|
+ 'format_id': '1500kbps',
|
|
|
+ 'height': 740,
|
|
|
+ 'tbr': 1500,
|
|
|
+ }],
|
|
|
+ 'thumbnail': '//pics.r18.com/digital/amateur/mgmr105/mgmr105jp.jpg'
|
|
|
+ })
|
|
|
+
|
|
|
+ # from https://www.csfd.cz/
|
|
|
+ # with width and height
|
|
|
+ expect_dict(
|
|
|
+ self,
|
|
|
+ self.ie._parse_html5_media_entries(
|
|
|
+ 'https://www.csfd.cz/',
|
|
|
+ r'''
|
|
|
+ <video width="770" height="328" preload="none" controls poster="https://img.csfd.cz/files/images/film/video/preview/163/344/163344118_748d20.png?h360" >
|
|
|
+ <source src="https://video.csfd.cz/files/videos/157/750/157750813/163327358_eac647.mp4" type="video/mp4" width="640" height="360">
|
|
|
+ <source src="https://video.csfd.cz/files/videos/157/750/157750813/163327360_3d2646.mp4" type="video/mp4" width="1280" height="720">
|
|
|
+ <source src="https://video.csfd.cz/files/videos/157/750/157750813/163327356_91f258.mp4" type="video/mp4" width="1920" height="1080">
|
|
|
+ <source src="https://video.csfd.cz/files/videos/157/750/157750813/163327359_962b4a.webm" type="video/webm" width="640" height="360">
|
|
|
+ <source src="https://video.csfd.cz/files/videos/157/750/157750813/163327361_6feee0.webm" type="video/webm" width="1280" height="720">
|
|
|
+ <source src="https://video.csfd.cz/files/videos/157/750/157750813/163327357_8ab472.webm" type="video/webm" width="1920" height="1080">
|
|
|
+ <track src="https://video.csfd.cz/files/subtitles/163/344/163344115_4c388b.srt" type="text/x-srt" kind="subtitles" srclang="cs" label="cs">
|
|
|
+ </video>
|
|
|
+ ''', None)[0],
|
|
|
+ {
|
|
|
+ 'formats': [{
|
|
|
+ 'url': 'https://video.csfd.cz/files/videos/157/750/157750813/163327358_eac647.mp4',
|
|
|
+ 'ext': 'mp4',
|
|
|
+ 'width': 640,
|
|
|
+ 'height': 360,
|
|
|
+ }, {
|
|
|
+ 'url': 'https://video.csfd.cz/files/videos/157/750/157750813/163327360_3d2646.mp4',
|
|
|
+ 'ext': 'mp4',
|
|
|
+ 'width': 1280,
|
|
|
+ 'height': 720,
|
|
|
+ }, {
|
|
|
+ 'url': 'https://video.csfd.cz/files/videos/157/750/157750813/163327356_91f258.mp4',
|
|
|
+ 'ext': 'mp4',
|
|
|
+ 'width': 1920,
|
|
|
+ 'height': 1080,
|
|
|
+ }, {
|
|
|
+ 'url': 'https://video.csfd.cz/files/videos/157/750/157750813/163327359_962b4a.webm',
|
|
|
+ 'ext': 'webm',
|
|
|
+ 'width': 640,
|
|
|
+ 'height': 360,
|
|
|
+ }, {
|
|
|
+ 'url': 'https://video.csfd.cz/files/videos/157/750/157750813/163327361_6feee0.webm',
|
|
|
+ 'ext': 'webm',
|
|
|
+ 'width': 1280,
|
|
|
+ 'height': 720,
|
|
|
+ }, {
|
|
|
+ 'url': 'https://video.csfd.cz/files/videos/157/750/157750813/163327357_8ab472.webm',
|
|
|
+ 'ext': 'webm',
|
|
|
+ 'width': 1920,
|
|
|
+ 'height': 1080,
|
|
|
+ }],
|
|
|
+ 'subtitles': {
|
|
|
+ 'cs': [{'url': 'https://video.csfd.cz/files/subtitles/163/344/163344115_4c388b.srt'}]
|
|
|
+ },
|
|
|
+ 'thumbnail': 'https://img.csfd.cz/files/images/film/video/preview/163/344/163344118_748d20.png?h360'
|
|
|
+ })
|
|
|
+
|
|
|
+ # from https://tamasha.com/v/Kkdjw
|
|
|
+ # with height in label
|
|
|
+ expect_dict(
|
|
|
+ self,
|
|
|
+ self.ie._parse_html5_media_entries(
|
|
|
+ 'https://tamasha.com/v/Kkdjw',
|
|
|
+ r'''
|
|
|
+ <video crossorigin="anonymous">
|
|
|
+ <source src="https://s-v2.tamasha.com/statics/videos_file/19/8f/Kkdjw_198feff8577d0057536e905cce1fb61438dd64e0_n_240.mp4" type="video/mp4" label="AUTO" res="0"/>
|
|
|
+ <source src="https://s-v2.tamasha.com/statics/videos_file/19/8f/Kkdjw_198feff8577d0057536e905cce1fb61438dd64e0_n_240.mp4" type="video/mp4"
|
|
|
+ label="240p" res="240"/>
|
|
|
+ <source src="https://s-v2.tamasha.com/statics/videos_file/20/00/Kkdjw_200041c66f657fc967db464d156eafbc1ed9fe6f_n_144.mp4" type="video/mp4"
|
|
|
+ label="144p" res="144"/>
|
|
|
+ </video>
|
|
|
+ ''', None)[0],
|
|
|
+ {
|
|
|
+ 'formats': [{
|
|
|
+ 'url': 'https://s-v2.tamasha.com/statics/videos_file/19/8f/Kkdjw_198feff8577d0057536e905cce1fb61438dd64e0_n_240.mp4',
|
|
|
+ }, {
|
|
|
+ 'url': 'https://s-v2.tamasha.com/statics/videos_file/19/8f/Kkdjw_198feff8577d0057536e905cce1fb61438dd64e0_n_240.mp4',
|
|
|
+ 'ext': 'mp4',
|
|
|
+ 'format_id': '240p',
|
|
|
+ 'height': 240,
|
|
|
+ }, {
|
|
|
+ 'url': 'https://s-v2.tamasha.com/statics/videos_file/20/00/Kkdjw_200041c66f657fc967db464d156eafbc1ed9fe6f_n_144.mp4',
|
|
|
+ 'ext': 'mp4',
|
|
|
+ 'format_id': '144p',
|
|
|
+ 'height': 144,
|
|
|
+ }]
|
|
|
+ })
|
|
|
+
|
|
|
+ # from https://www.directvnow.com
|
|
|
+ # with data-src
|
|
|
+ expect_dict(
|
|
|
+ self,
|
|
|
+ self.ie._parse_html5_media_entries(
|
|
|
+ 'https://www.directvnow.com',
|
|
|
+ r'''
|
|
|
+ <video id="vid1" class="header--video-masked active" muted playsinline>
|
|
|
+ <source data-src="https://cdn.directv.com/content/dam/dtv/prod/website_directvnow-international/videos/DTVN_hdr_HBO_v3.mp4" type="video/mp4" />
|
|
|
+ </video>
|
|
|
+ ''', None)[0],
|
|
|
+ {
|
|
|
+ 'formats': [{
|
|
|
+ 'ext': 'mp4',
|
|
|
+ 'url': 'https://cdn.directv.com/content/dam/dtv/prod/website_directvnow-international/videos/DTVN_hdr_HBO_v3.mp4',
|
|
|
+ }]
|
|
|
+ })
|
|
|
+
|
|
|
+ # from https://www.directvnow.com
|
|
|
+ # with data-src
|
|
|
+ expect_dict(
|
|
|
+ self,
|
|
|
+ self.ie._parse_html5_media_entries(
|
|
|
+ 'https://www.directvnow.com',
|
|
|
+ r'''
|
|
|
+ <video id="vid1" class="header--video-masked active" muted playsinline>
|
|
|
+ <source data-src="https://cdn.directv.com/content/dam/dtv/prod/website_directvnow-international/videos/DTVN_hdr_HBO_v3.mp4" type="video/mp4" />
|
|
|
+ </video>
|
|
|
+ ''', None)[0],
|
|
|
+ {
|
|
|
+ 'formats': [{
|
|
|
+ 'url': 'https://cdn.directv.com/content/dam/dtv/prod/website_directvnow-international/videos/DTVN_hdr_HBO_v3.mp4',
|
|
|
+ 'ext': 'mp4',
|
|
|
+ }]
|
|
|
+ })
|
|
|
+
|
|
|
+ # from https://www.klarna.com/uk/
|
|
|
+ # with data-video-src
|
|
|
+ expect_dict(
|
|
|
+ self,
|
|
|
+ self.ie._parse_html5_media_entries(
|
|
|
+ 'https://www.directvnow.com',
|
|
|
+ r'''
|
|
|
+ <video loop autoplay muted class="responsive-video block-kl__video video-on-medium">
|
|
|
+ <source src="" data-video-desktop data-video-src="https://www.klarna.com/uk/wp-content/uploads/sites/11/2019/01/KL062_Smooth3_0_DogWalking_5s_920x080_.mp4" type="video/mp4" />
|
|
|
+ </video>
|
|
|
+ ''', None)[0],
|
|
|
+ {
|
|
|
+ 'formats': [{
|
|
|
+ 'url': 'https://www.klarna.com/uk/wp-content/uploads/sites/11/2019/01/KL062_Smooth3_0_DogWalking_5s_920x080_.mp4',
|
|
|
+ 'ext': 'mp4',
|
|
|
+ }],
|
|
|
+ })
|
|
|
+
|
|
|
def test_extract_jwplayer_data_realworld(self):
|
|
|
# from http://www.suffolk.edu/sjc/
|
|
|
expect_dict(
|