projects
/
youtube-dl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[youtube:live] Relax _VALID_URL (closes #11164)
[youtube-dl]
/
youtube_dl
/
extractor
/
vgtv.py
diff --git
a/youtube_dl/extractor/vgtv.py
b/youtube_dl/extractor/vgtv.py
index e148b1ef513321376efe1795056503ea2a8bcad8..3b38ac700296a2eef8c12f0b45406f54785d7684 100644
(file)
--- a/
youtube_dl/extractor/vgtv.py
+++ b/
youtube_dl/extractor/vgtv.py
@@
-8,6
+8,7
@@
from .xstream import XstreamIE
from ..utils import (
ExtractorError,
float_or_none,
from ..utils import (
ExtractorError,
float_or_none,
+ try_get,
)
)
@@
-21,6
+22,7
@@
class VGTVIE(XstreamIE):
'fvn.no/fvntv': 'fvntv',
'aftenposten.no/webtv': 'aptv',
'ap.vgtv.no/webtv': 'aptv',
'fvn.no/fvntv': 'fvntv',
'aftenposten.no/webtv': 'aptv',
'ap.vgtv.no/webtv': 'aptv',
+ 'tv.aftonbladet.se/abtv': 'abtv',
}
_APP_NAME_TO_VENDOR = {
}
_APP_NAME_TO_VENDOR = {
@@
-29,6
+31,7
@@
class VGTVIE(XstreamIE):
'satv': 'sa',
'fvntv': 'fvn',
'aptv': 'ap',
'satv': 'sa',
'fvntv': 'fvn',
'aptv': 'ap',
+ 'abtv': 'ab',
}
_VALID_URL = r'''(?x)
}
_VALID_URL = r'''(?x)
@@
-39,7
+42,8
@@
class VGTVIE(XstreamIE):
/?
(?:
\#!/(?:video|live)/|
/?
(?:
\#!/(?:video|live)/|
- embed?.*id=
+ embed?.*id=|
+ articles/
)|
(?P<appname>
%s
)|
(?P<appname>
%s
@@
-129,6
+133,19
@@
class VGTVIE(XstreamIE):
'url': 'http://ap.vgtv.no/webtv#!/video/111084/de-nye-bysyklene-lettere-bedre-gir-stoerre-hjul-og-feste-til-mobil',
'only_matching': True,
},
'url': 'http://ap.vgtv.no/webtv#!/video/111084/de-nye-bysyklene-lettere-bedre-gir-stoerre-hjul-og-feste-til-mobil',
'only_matching': True,
},
+ {
+ # geoblocked
+ 'url': 'http://www.vgtv.no/#!/video/127205/inside-the-mind-of-favela-funk',
+ 'only_matching': True,
+ },
+ {
+ 'url': 'http://tv.aftonbladet.se/abtv/articles/36015',
+ 'only_matching': True,
+ },
+ {
+ 'url': 'abtv:140026',
+ 'only_matching': True,
+ }
]
def _real_extract(self, url):
]
def _real_extract(self, url):
@@
-196,6
+213,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'])
info.update({
self._sort_formats(info['formats'])
info.update({
@@
-214,7
+237,7
@@
class VGTVIE(XstreamIE):
class BTArticleIE(InfoExtractor):
IE_NAME = 'bt:article'
IE_DESC = 'Bergens Tidende Articles'
class BTArticleIE(InfoExtractor):
IE_NAME = 'bt:article'
IE_DESC = 'Bergens Tidende Articles'
- _VALID_URL =
'http
://(?:www\.)?bt\.no/(?:[^/]+/)+(?P<id>[^/]+)-\d+\.html'
+ _VALID_URL =
r'https?
://(?:www\.)?bt\.no/(?:[^/]+/)+(?P<id>[^/]+)-\d+\.html'
_TEST = {
'url': 'http://www.bt.no/nyheter/lokalt/Kjemper-for-internatet-1788214.html',
'md5': '2acbe8ad129b3469d5ae51b1158878df',
_TEST = {
'url': 'http://www.bt.no/nyheter/lokalt/Kjemper-for-internatet-1788214.html',
'md5': '2acbe8ad129b3469d5ae51b1158878df',
@@
-241,7
+264,7
@@
class BTArticleIE(InfoExtractor):
class BTVestlendingenIE(InfoExtractor):
IE_NAME = 'bt:vestlendingen'
IE_DESC = 'Bergens Tidende - Vestlendingen'
class BTVestlendingenIE(InfoExtractor):
IE_NAME = 'bt:vestlendingen'
IE_DESC = 'Bergens Tidende - Vestlendingen'
- _VALID_URL =
'http
://(?:www\.)?bt\.no/spesial/vestlendingen/#!/(?P<id>\d+)'
+ _VALID_URL =
r'https?
://(?:www\.)?bt\.no/spesial/vestlendingen/#!/(?P<id>\d+)'
_TESTS = [{
'url': 'http://www.bt.no/spesial/vestlendingen/#!/86588',
'md5': 'd7d17e3337dc80de6d3a540aefbe441b',
_TESTS = [{
'url': 'http://www.bt.no/spesial/vestlendingen/#!/86588',
'md5': 'd7d17e3337dc80de6d3a540aefbe441b',