def METHOD_NAME(self, cache=True):
    if cache is True:
        cache_res = self.cache.load('wppilot', 'channel-list')
        if cache_res:
            return cache_res, True
    webpage = self._download_webpage('https://pilot.wp.pl/tv/', None, 'Downloading webpage')
    page_data_base_url = self._search_regex(
        r'<script src="(https://wp-pilot-gatsby\.wpcdn\.pl/v[\d.-]+/desktop)',
        webpage, 'gatsby build version') + '/page-data'
    page_data = self._download_json(f'{page_data_base_url}/tv/page-data.json', None, 'Downloading page data')
    for qhash in page_data['staticQueryHashes']:
        qhash_content = self._download_json(
            f'{page_data_base_url}/sq/d/{qhash}.json', None,
            'Searching for channel list')
        channel_list = try_get(qhash_content, lambda x: x['data']['allChannels']['nodes'])
        if channel_list is None:
            continue
        self.cache.store('wppilot', 'channel-list', channel_list)
        return channel_list, False
    raise ExtractorError('Unable to find the channel list')