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

Code before:
            })

        player_token = self._search_regex(r'data-player-token="([^"]+)"', webpage, 'player token')
        player_data = self._download_webpage(
            f'https://ben.slideslive.com/player/{video_id}', video_id,
            note='Downloading player info', query={'player_token': player_token})
        player_info = self._extract_custom_m3u8_info(player_data)

        service_name = player_info['service_name'].lower()
        assert service_name in ('url', 'yoda', 'vimeo', 'youtube')
        service_id = player_info['service_id']

        slides, slides_xml, slide_id = None, None, 1
        slide_url_template = self._JPG_SLIDE_TMPL
        chapters, thumbnails = [], []
        if url_or_none(player_info.get('thumbnail')):
            thumbnails.append({'url': player_info['thumbnail']})

        if player_info.get('slides_json_url'):
            slides = traverse_obj(self._download_json(
                player_info['slides_json_url'], video_id, fatal=False,
                note='Downloading slides JSON', errnote=False), 'slides', expected_type=list)
        if slides:
            if re.match(r'.+(/v[45]/).+', player_info['slides_json_url']):
                slide_url_template = self._PNG_SLIDE_TMPL
            for slide in slides:
                slide_path = traverse_obj(slide, ('image', 'name'))
                if slide_path:
                    thumbnails.append({
                        'id': f'{slide_id:03d}',
                        'url': slide_url_template % (video_id, slide_path),
                    })
                chapters.append({
                    'title': f'Slide {slide_id:03d}',
                    'start_time': int_or_none(slide.get('time'), scale=1000)
                })
                slide_id += 1

        elif player_info.get('slides_xml_url'):
            slides_xml = self._download_xml(
                player_info['slides_xml_url'], video_id, fatal=False,
                note='Downloading slides XML', errnote='Failed to download slides info')
            if re.match(r'.+(/v[45]/).+', player_info['slides_xml_url']):
                slide_url_template = self._PNG_SLIDE_TMPL
            for slide in slides_xml.findall('./slide') if slides_xml else []:
                slide_path = xpath_text(slide, './slideName', 'name')
                if slide_path:
                    thumbnails.append({
                        'id': f'{slide_id:03d}',
                        'url': slide_url_template % (video_id, slide_path),
                    })

Review comment (suggestion):
My suggestion was assuming that `slide_id` is not needed. If it is, enumerate, not manually increment
```suggestion
            for slide_id, slide in enumerate(slides):
```

Code after:
            'uploader_url': 'http://www.youtube.com/channel/UC62SdArr41t_-_fX40QCLRw',
            'upload_date': '20200903',
            'timestamp': 1602599092,
            'duration': 942,
            'age_limit': 0,
            'live_status': 'not_live',
            'playable_in_embed': True,
            'availability': 'unlisted',
            'categories': ['People & Blogs'],
            'tags': [],
            'channel_follower_count': int,
            'like_count': int,
            'view_count': int,
            'thumbnail': r're:^https?://.*\.(?:jpg|png|webp)',
            'thumbnails': 'count:21',
            'chapters': 'count:20',
        },
        'params': {
            'skip_download': 'm3u8',
        },
    }, {
        # service_name = yoda
        'url': 'https://slideslive.com/38903721/magic-a-scientific-resurrection-of-an-esoteric-legend',
        'only_matching': True,
    }, {
        # dead link, service_name = url
        'url': 'https://slideslive.com/38922070/learning-transferable-skills-1',
        'only_matching': True,
    }, {
        # dead link, service_name = vimeo
        'url': 'https://slideslive.com/38921896/retrospectives-a-venue-for-selfreflection-in-ml-research-3',
        'only_matching': True,
    }]

    _WEBPAGE_TESTS = [{
        # only XML slides info
        'url': 'https://iclr.cc/virtual_2020/poster_Hklr204Fvr.html',
        'info_dict': {
            'id': '38925850',
            'ext': 'mp4',
            'title': 'Towards a Deep Network Architecture for Structured Smoothness',
            'thumbnail': r're:^https?://.*\.jpg',
            'thumbnails': 'count:8',
            'timestamp': 1629671508,
            'upload_date': '20210822',
            'chapters': 'count:7',
        },
        'params': {
            'skip_download': 'm3u8',
        },
    }]