Compare commits

...

2 Commits

Author SHA1 Message Date
v3DJG6GL
6920ad54f6
Update tests 2025-04-17 16:50:02 +02:00
v3DJG6GL
170eeb0eac
apply code suggestion 2025-04-17 15:37:21 +02:00

View File

@ -31,7 +31,7 @@ class PlaySuisseIE(InfoExtractor):
'id': '763211',
'ext': 'mp4',
'title': 'Knochen',
'description': 'md5:8ea7a8076ba000cd9e8bc132fd0afdd8',
'description': 'md5:2f88aab021fe3ba4b301ad7456b14cbb',
'duration': 3344,
'series': 'Wilder',
'season': 'Season 1',
@ -42,24 +42,33 @@ class PlaySuisseIE(InfoExtractor):
},
}, {
# film
'url': 'https://www.playsuisse.ch/watch/808675',
'url': 'https://www.playsuisse.ch/detail/2573198',
'md5': '818b94c1d2d7c4beef953f12cb8f3e75',
'info_dict': {
'id': '808675',
'id': '2573198',
'ext': 'mp4',
'title': 'Der Läufer',
'description': 'md5:9f61265c7e6dcc3e046137a792b275fd',
'duration': 5280,
'title': 'Azor',
'description': 'md5:1550b151bc818fd0d12f6517d9821ddc',
'genres': 'Fiction',
'creators': 'Andreas Fontana',
'cast': 'Fabrizio Rongione, Stéphanie Cléau, Gilles Privat, Alexandre Trocki',
'location': 'France, Argentine',
'year': '2021',
'duration': 5715,
'thumbnail': 're:https://playsuisse-img.akamaized.net/',
},
}, {
# series (treated as a playlist)
'url': 'https://www.playsuisse.ch/detail/1115687',
'info_dict': {
'description': 'md5:e4a2ae29a8895823045b5c3145a02aa3',
'id': '1115687',
'series': 'They all came out to Montreux',
'title': 'They all came out to Montreux',
'description': 'md5:0fefd8c5b4468a0bb35e916887681520',
'genres': 'Documentary',
'creators': 'Oliver Murray',
'location': 'Switzerland',
'year': '2021',
},
'playlist': [{
'info_dict': {
@ -260,20 +269,22 @@ class PlaySuisseIE(InfoExtractor):
self._merge_subtitles(subs, target=subtitles)
return {
'id': traverse_obj(media_data, 'id'),
'title': traverse_obj(media_data, 'name'),
'description': traverse_obj(media_data, 'descriptionLong') or traverse_obj(media_data, 'description'),
'genres': traverse_obj(media_data, 'contentTypes'),
'creators': traverse_obj(media_data, 'directors'),
'cast': traverse_obj(media_data, 'mainCast'),
'location': traverse_obj(media_data, 'productionCountries'),
'release_year': int_or_none(traverse_obj(media_data, 'year', lambda _, x: x[:4])),
'thumbnails': thumbnails,
'duration': int_or_none(traverse_obj(media_data, 'duration')),
'formats': formats,
'subtitles': subtitles,
'series': traverse_obj(media_data, 'seriesName'),
'season_number': int_or_none(traverse_obj(media_data, 'seasonNumber')),
'episode': traverse_obj(media_data, 'name') if traverse_obj(media_data, 'episodeNumber') else None,
'episode_number': int_or_none(traverse_obj(media_data, 'episodeNumber')),
**traverse_obj(media_data, {
'id': ('id', {str}),
'title': ('name', {str}),
'description': (('descriptionLong', 'description'), {str}, any),
'genres': ('contentTypes', ..., {str}),
'creators': ('directors', ..., {str}),
'cast': ('mainCast', ..., {str}),
'location': ('productionCountries', ..., {str}, any),
'release_year': ('year', {str}),
'duration': ('duration', {int_or_none}),
'series': ('seriesName', {str}),
'season_number': ('seasonNumber', {int_or_none}),
'episode': ('name', {str}),
'episode_number': ('episodeNumber', {int_or_none}),
}),
}