diff --git a/platypush/components.json.gz b/platypush/components.json.gz index 3563a795ba..fab97ded3d 100644 Binary files a/platypush/components.json.gz and b/platypush/components.json.gz differ diff --git a/platypush/plugins/media/mpv/__init__.py b/platypush/plugins/media/mpv/__init__.py index 7a6b02aa68..c5ff2aa275 100644 --- a/platypush/plugins/media/mpv/__init__.py +++ b/platypush/plugins/media/mpv/__init__.py @@ -468,10 +468,12 @@ class MediaMpvPlugin(MediaPlugin): 'audio_channels': getattr(self._player, 'audio_channels', None), 'audio_codec': getattr(self._player, 'audio_codec_name', None), 'delay': getattr(self._player, 'delay', None), - 'duration': getattr(self._player, 'playback_time', 0) - + getattr(self._player, 'playtime_remaining', 0) - if getattr(self._player, 'playtime_remaining', None) - else None, + 'duration': ( + (getattr(self._player, 'playback_time', 0) or 0) + + getattr(self._player, 'playtime_remaining', 0) + if getattr(self._player, 'playtime_remaining', None) + else None + ), 'filename': getattr(self._player, 'filename', None), 'file_size': getattr(self._player, 'file_size', None), 'fullscreen': getattr(self._player, 'fs', None), diff --git a/platypush/schemas/piped.py b/platypush/schemas/piped.py index d1f4167525..f6feaca3aa 100644 --- a/platypush/schemas/piped.py +++ b/platypush/schemas/piped.py @@ -199,12 +199,22 @@ class PipedPlaylistSchema(Schema): }, ) + url = fields.Url( + metadata={ + 'description': 'Playlist URL', + 'example': 'https://youtube.com/playlist?list=1234567890', + }, + ) + @pre_dump def fill_urls(self, data: dict, **_): for attr in ('url', 'uploaderUrl'): if data.get(attr) and not data[attr].startswith('https://'): data[attr] = f'https://youtube.com{data[attr]}' + if not data.get('id') and data.get('url'): + data['id'] = data['url'].split('=')[-1] + return data @pre_dump