|
|
|
@ -221,13 +221,14 @@ class SchoolTVIE(NPOIE):
|
|
|
|
|
def _real_extract(self, url):
|
|
|
|
|
video_id = url.rstrip('/').split('/')[-1]
|
|
|
|
|
|
|
|
|
|
# TODO Find out how we could obtain this automatically
|
|
|
|
|
# Otherwise this extractor might break each time SchoolTV deploys a new release
|
|
|
|
|
build_id = 'b7eHUzAVO7wHXCopYxQhV'
|
|
|
|
|
build_id = self._search_nextjs_data(
|
|
|
|
|
self._download_webpage(url, video_id),
|
|
|
|
|
video_id,
|
|
|
|
|
)['buildId']
|
|
|
|
|
|
|
|
|
|
metadata_url = 'https://schooltv.nl/_next/data/' \
|
|
|
|
|
+ build_id \
|
|
|
|
|
+ '/item/' \
|
|
|
|
|
+ '/video-item/' \
|
|
|
|
|
+ video_id + '.json'
|
|
|
|
|
|
|
|
|
|
metadata = self._download_json(metadata_url,
|
|
|
|
@ -304,7 +305,7 @@ class VPROIE(NPOIE):
|
|
|
|
|
formats = []
|
|
|
|
|
for result in results:
|
|
|
|
|
formats.extend(self._extract_formats_by_product_id(result, video_id))
|
|
|
|
|
break # TODO find a better solution, VPRO pages can have multiple videos embedded
|
|
|
|
|
break
|
|
|
|
|
|
|
|
|
|
if not formats:
|
|
|
|
|
raise ExtractorError('Could not find a POMS product id in the provided URL, '
|
|
|
|
|