|
|
|
@ -4,6 +4,7 @@ from __future__ import unicode_literals
|
|
|
|
|
import uuid
|
|
|
|
|
import xml.etree.ElementTree as etree
|
|
|
|
|
import json
|
|
|
|
|
import re
|
|
|
|
|
|
|
|
|
|
from .common import InfoExtractor
|
|
|
|
|
from ..compat import (
|
|
|
|
@ -142,9 +143,9 @@ class ITVIE(InfoExtractor):
|
|
|
|
|
f['url'] = rtmp_url
|
|
|
|
|
formats.append(f)
|
|
|
|
|
|
|
|
|
|
ios_playlist_url = params.get('data-video-playlist')
|
|
|
|
|
ios_playlist_url = params.get('data-video-playlist') or params.get('data-video-id')
|
|
|
|
|
hmac = params.get('data-video-hmac')
|
|
|
|
|
if ios_playlist_url and hmac:
|
|
|
|
|
if ios_playlist_url and hmac and re.match(r'https?://', ios_playlist_url):
|
|
|
|
|
headers = self.geo_verification_headers()
|
|
|
|
|
headers.update({
|
|
|
|
|
'Accept': 'application/vnd.itv.vod.playlist.v2+json',
|
|
|
|
@ -159,12 +160,12 @@ class ITVIE(InfoExtractor):
|
|
|
|
|
'token': ''
|
|
|
|
|
},
|
|
|
|
|
'device': {
|
|
|
|
|
'manufacturer': 'Apple',
|
|
|
|
|
'model': 'iPad',
|
|
|
|
|
'manufacturer': 'Safari',
|
|
|
|
|
'model': '5',
|
|
|
|
|
'os': {
|
|
|
|
|
'name': 'iPhone OS',
|
|
|
|
|
'version': '9.3',
|
|
|
|
|
'type': 'ios'
|
|
|
|
|
'name': 'Windows NT',
|
|
|
|
|
'version': '6.1',
|
|
|
|
|
'type': 'desktop'
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
'client': {
|
|
|
|
@ -173,10 +174,10 @@ class ITVIE(InfoExtractor):
|
|
|
|
|
},
|
|
|
|
|
'variantAvailability': {
|
|
|
|
|
'featureset': {
|
|
|
|
|
'min': ['hls', 'aes'],
|
|
|
|
|
'max': ['hls', 'aes']
|
|
|
|
|
'min': ['hls', 'aes', 'outband-webvtt'],
|
|
|
|
|
'max': ['hls', 'aes', 'outband-webvtt']
|
|
|
|
|
},
|
|
|
|
|
'platformTag': 'mobile'
|
|
|
|
|
'platformTag': 'dotcom'
|
|
|
|
|
}
|
|
|
|
|
}).encode(), headers=headers, fatal=False)
|
|
|
|
|
if ios_playlist:
|
|
|
|
|