Compare commits

..

No commits in common. "154e312502ee52a9526887093743a9286c40e108" and "5142af5ac98dac2de9af0d813b83a9acdb3ddaf1" have entirely different histories.

View File

@ -7,13 +7,11 @@ from .common import InfoExtractor
from ..utils import (
ExtractorError,
int_or_none,
join_nonempty,
parse_qs,
traverse_obj,
update_url_query,
urlencode_postdata,
)
from ..utils.traversal import unpack
class PlaySuisseIE(InfoExtractor):
@ -232,7 +230,7 @@ class PlaySuisseIE(InfoExtractor):
if not self._ID_TOKEN:
raise ExtractorError('Login failed')
def _get_media_data(self, media_id, locale=None):
def _get_media_data(self, media_id, locale):
response = self._download_json(
'https://www.playsuisse.ch/api/graphql',
media_id, data=json.dumps({
@ -240,8 +238,7 @@ class PlaySuisseIE(InfoExtractor):
'query': self._GRAPHQL_QUERY,
'variables': {'assetId': media_id},
}).encode(),
headers={'Content-Type': 'application/json', 'locale': locale or 'de'})
headers={'Content-Type': 'application/json', 'locale': locale})
return response['data']['assetV2']
def _real_extract(self, url):
@ -249,7 +246,7 @@ class PlaySuisseIE(InfoExtractor):
self.raise_login_required(method='password')
media_id = self._match_id(url)
media_data = self._get_media_data(media_id, traverse_obj(parse_qs(url), ('locale', 0)))
media_data = self._get_media_data(media_id, traverse_obj(parse_qs(url), ('locale', 0), default='de'))
info = self._extract_single(media_data)
if media_data.get('episodes'):
info.update({
@ -282,12 +279,12 @@ class PlaySuisseIE(InfoExtractor):
'genres': ('contentTypes', ..., {str}),
'creators': ('directors', ..., {str}),
'cast': ('mainCast', ..., {str}),
'location': ('productionCountries', ..., {str}, all, {unpack(join_nonempty, delim='; ')}, filter),
'location': ('productionCountries', ..., {str}, any),
'release_year': ('year', {int_or_none}),
'duration': ('duration', {int_or_none}),
'series': ('seriesName', {str}),
'season_number': ('seasonNumber', {int_or_none}),
'episode': ('name', {str}, {lambda x: x if media_data['episodeNumber'] is not None else None}),
'episode': ('name', {str}),
'episode_number': ('episodeNumber', {int_or_none}),
}),
}