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

Code before:
                'key': 'efbb3ec0b8246f61adf1764c5a51213a',
                'iv': '80621d19a1f19167b64cedb415b05d1c',
            },
        },
        'params': {
            'skip_download': 'm3u8',
        },
    }, {
        'url': 'https://www.stacommu.jp/en/live/d2FJ3zLnndegZJCAEzGM3m',
        'only_matching': True,
    }]

    _API_PATH = 'events'

    def _real_extract(self, url):
        return self._extract_ppv(url)


class TheaterComplexTownBaseIE(StacommuBaseIE):
    _NETRC_MACHINE = 'theatercomplextown'
    _API_HOST = 'api.theater-complex.town'
    _LOGIN_QUERY = {'key': 'AIzaSyAgNCqToaIz4a062EeIrkhI_xetVfAOrfc'}
    _LOGIN_HEADERS = {
        'Accept': '*/*',
        'Content-Type': 'application/json',
        'X-Client-Version': 'Chrome/JsCore/9.9.4/FirebaseCore-web',
        'Referer': 'https://www.theater-complex.town/',
        'Origin': 'https://www.theater-complex.town',
    }


class TheaterComplexTownVODIE(TheaterComplexTownBaseIE):
    _VALID_URL = r'https?://(?:www\.)?theater-complex\.town/(?:en/)?videos/episodes/(?P<id>\w+)'
    IE_NAME = 'theatercomplextown:vod'
    _TESTS = [{
        'url': 'https://www.theater-complex.town/videos/episodes/hoxqidYNoAn7bP92DN6p78',
        'info_dict': {
            'id': 'hoxqidYNoAn7bP92DN6p78',
            'ext': 'mp4',
            'title': '演劇ドラフトグランプリ2023　劇団『恋のぼり』〜劇団名決定秘話ラジオ',
            'description': 'md5:a7e2e9cf570379ea67fb630f345ff65d',
            'cast': ['玉城 裕規', '石川 凌雅'],
            'thumbnail': 'https://image.theater-complex.town/5URnXX6KCeDysuFrPkP38o/5URnXX6KCeDysuFrPkP38o',
            'upload_date': '20231103',
            'timestamp': 1699016400,
            'duration': 868,
        },
        'params': {
            'skip_download': 'm3u8',
        },
    }, {

Review comment (suggestion):
While at it, should the client version be updated?
```suggestion
        'X-Client-Version': 'Chrome/JsCore/9.23.0/FirebaseCore-web',
```
Note: I didn't test this, but only looked at the JS.

Code after:
                'key': 'efbb3ec0b8246f61adf1764c5a51213a',
                'iv': '80621d19a1f19167b64cedb415b05d1c',
            },
        },
        'params': {
            'skip_download': 'm3u8',
        },
    }, {
        'url': 'https://www.stacommu.jp/en/live/d2FJ3zLnndegZJCAEzGM3m',
        'only_matching': True,
    }]

    _API_PATH = 'events'

    def _real_extract(self, url):
        return self._extract_ppv(url)


class TheaterComplexTownBaseIE(StacommuBaseIE):
    _NETRC_MACHINE = 'theatercomplextown'
    _API_HOST = 'api.theater-complex.town'
    _LOGIN_QUERY = {'key': 'AIzaSyAgNCqToaIz4a062EeIrkhI_xetVfAOrfc'}
    _LOGIN_HEADERS = {
        'Accept': '*/*',
        'Content-Type': 'application/json',
        'X-Client-Version': 'Chrome/JsCore/9.23.0/FirebaseCore-web',
        'Referer': 'https://www.theater-complex.town/',
        'Origin': 'https://www.theater-complex.town',
    }


class TheaterComplexTownVODIE(TheaterComplexTownBaseIE):
    _VALID_URL = r'https?://(?:www\.)?theater-complex\.town/(?:en/)?videos/episodes/(?P<id>\w+)'
    IE_NAME = 'theatercomplextown:vod'
    _TESTS = [{
        'url': 'https://www.theater-complex.town/videos/episodes/hoxqidYNoAn7bP92DN6p78',
        'info_dict': {
            'id': 'hoxqidYNoAn7bP92DN6p78',
            'ext': 'mp4',
            'title': '演劇ドラフトグランプリ2023　劇団『恋のぼり』〜劇団名決定秘話ラジオ',
            'description': 'md5:a7e2e9cf570379ea67fb630f345ff65d',
            'cast': ['玉城 裕規', '石川 凌雅'],
            'thumbnail': 'https://image.theater-complex.town/5URnXX6KCeDysuFrPkP38o/5URnXX6KCeDysuFrPkP38o',
            'upload_date': '20231103',
            'timestamp': 1699016400,
            'duration': 868,
        },
        'params': {
            'skip_download': 'm3u8',
        },
    }, {