|
|
@ -8,6 +8,7 @@ from .xstream import XstreamIE
|
|
|
|
from ..utils import (
|
|
|
|
from ..utils import (
|
|
|
|
ExtractorError,
|
|
|
|
ExtractorError,
|
|
|
|
float_or_none,
|
|
|
|
float_or_none,
|
|
|
|
|
|
|
|
try_get,
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -129,6 +130,11 @@ class VGTVIE(XstreamIE):
|
|
|
|
'url': 'http://ap.vgtv.no/webtv#!/video/111084/de-nye-bysyklene-lettere-bedre-gir-stoerre-hjul-og-feste-til-mobil',
|
|
|
|
'url': 'http://ap.vgtv.no/webtv#!/video/111084/de-nye-bysyklene-lettere-bedre-gir-stoerre-hjul-og-feste-til-mobil',
|
|
|
|
'only_matching': True,
|
|
|
|
'only_matching': True,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
# geoblocked
|
|
|
|
|
|
|
|
'url': 'http://www.vgtv.no/#!/video/127205/inside-the-mind-of-favela-funk',
|
|
|
|
|
|
|
|
'only_matching': True,
|
|
|
|
|
|
|
|
},
|
|
|
|
]
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
def _real_extract(self, url):
|
|
|
|
def _real_extract(self, url):
|
|
|
@ -196,6 +202,12 @@ class VGTVIE(XstreamIE):
|
|
|
|
|
|
|
|
|
|
|
|
info['formats'].extend(formats)
|
|
|
|
info['formats'].extend(formats)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if not info['formats']:
|
|
|
|
|
|
|
|
properties = try_get(
|
|
|
|
|
|
|
|
data, lambda x: x['streamConfiguration']['properties'], list)
|
|
|
|
|
|
|
|
if properties and 'geoblocked' in properties:
|
|
|
|
|
|
|
|
raise self.raise_geo_restricted()
|
|
|
|
|
|
|
|
|
|
|
|
self._sort_formats(info['formats'])
|
|
|
|
self._sort_formats(info['formats'])
|
|
|
|
|
|
|
|
|
|
|
|
info.update({
|
|
|
|
info.update({
|
|
|
|