Repository: yt-dlp/yt-dlp
File: yt_dlp/extractor/parlview.py (Python)

Code before:
            self.raise_no_formats('No streams were detected')

        _stream = _media.get('renditions')[0]
        if(_stream.get('streamType') != 'VOD'):
            self.raise_no_formats('Unknown type of stream was detected: "%s"' % str(_stream.get('streamType')))

        m3u8_url = self._request_webpage(HEADRequest(
            _stream.get('url')), vod_id, 'Processing m3u8').geturl()
        formats = self._extract_m3u8_formats(m3u8_url, vod_id, 'mp4')
        self._sort_formats(formats)

        _timestamp = datetime.strptime(
            _media.get('timeMap').get('source').get('timecode_offsets')[0],
            '0.0/%Y-%m-%d_%H:%M:00:00')
        return {
            'id': vod_id,
            'url': url,
            'title': self._search_regex(
                r'<h2>([^<]+)<',
                _html, 'title', fatal=False),
            'formats': formats,
            'timestamp': int(time.mktime(_timestamp.timetuple())) or int(_timestamp.timestamp()),
            'description': self._search_regex(
                r'<div[^>]+class="descripton"[^>]*>[^>]+<strong>[^>]+>[^>]+>([^<]+)', _html, 'description').strip() or self._search_regex(
                    # The APH website has a typo of "descripton" instead of "description", so this is here in the event that the typo is fixed.
                    r'<div[^>]+class="description"[^>]*>[^>]+<strong>[^>]+>[^>]+>([^<]+)', _html, 'description').strip(),
            'uploader': self._search_regex(
                r'<td>[^>]+>Channel:[^>]+>([^<]+)', self._download_webpage(
                    self._MEDIA_INFO_URL % vod_id, vod_id), 'channel').strip(),
            'thumbnail': _media.get('staticImage')
        }


Review comment (suggestion):
```suggestion
            'description': self._search_regex(
                r'<div[^>]+class="descripti?on"[^>]*>[^>]+<strong>[^>]+>[^>]+>([^<]+)',
                _html, 'description').strip(),
```

Code after:
        stream = try_get(media, lambda x: x['renditions'][0], dict)
        if not stream:
            self.raise_no_formats('No streams were detected')
        elif stream.get('streamType') != 'VOD':
            self.raise_no_formats('Unknown type of stream was detected: "%s"' % str(stream.get('streamType')))
        formats = self._extract_m3u8_formats(stream['url'], video_id, 'mp4', 'm3u8_native')
        self._sort_formats(formats)

        media_info = self._download_webpage(
            self._MEDIA_INFO_URL % video_id, video_id, note='Downloading media info', fatal=False)

        return {
            'id': video_id,
            'url': url,
            'title': self._html_search_regex(r'<h2>([^<]+)<', webpage, 'title', fatal=False),
            'formats': formats,
            'duration': int_or_none(media.get('duration')),
            'timestamp': unified_timestamp(timestamp.split('/', 1)[1].replace('_', ' ')),
            'description': self._html_search_regex(
                r'<div[^>]+class="descripti?on"[^>]*>[^>]+<strong>[^>]+>[^>]+>([^<]+)',
                webpage, 'description', fatal=False),
            'uploader': self._html_search_regex(
                r'<td>[^>]+>Channel:[^>]+>([^<]+)', media_info, 'channel', fatal=False),
            'thumbnail': media.get('staticImage'),
        }