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

Code before:
                        'url': capfile,
                        'ext': determine_ext(capfile, 'dfxp')
                    }],
                } if capfile else None,
            })

        if len(entries) == 1:
            entry = dict(entries[0])
            entry['id'] = 'c' + video_id if video_type == 'clip' else video_id
            return entry
        else:
            return {
                '_type': 'playlist',
                'entries': entries,
                'title': title,
                'id': 'c' + video_id if video_type == 'clip' else video_id,
            }


class CSpanCongressIE(InfoExtractor):
    _VALID_URL = r'https?://(?:www\.)?c-span\.org/congress/'
    IE_DESC = 'C-SPAN'
    _TESTS = [{
        'url': 'https://www.c-span.org/congress/?chamber=house&date=2017-12-13&t=1513208380',
        'info_dict': {
            'id': 'Congressional Chronicle - Members of Congress, Hearings and More | C-SPAN.org',
            'title': 'Congressional Chronicle - Members of Congress, Hearings and More',
            'description': 'md5:54c264b7a8f219937987610243305a84',
            'ext': 'mp4'
        }
    }]

    def _real_extract(self, url):
        display_id = self._generic_id(url)
        webpage = self._download_webpage(url, display_id)
        file = open("sample.txt", "w")
        file.write(webpage)
        file.close()
        video_url = re.findall(r'sources: \[\{file: \'(.*?)\'\}\],', webpage)[0]
        formats = self._extract_m3u8_formats(video_url, display_id, ext='mp4')
        self._sort_formats(formats)

        basic_url = "/".join(url.rstrip('/').split('/')[:3])
        for f in formats:
            f.setdefault('http_headers', {})['referer'] = basic_url + "/"
            f.setdefault('http_headers', {})['origin'] = basic_url
            f.setdefault('http_headers', {})['accept'] = "*/*"
            f.setdefault('http_headers', {})['sec-fetch-dest'] = "empty"
            f.setdefault('http_headers', {})['sec-fetch-mode'] = "cors"
            f.setdefault('http_headers', {})['sec-fetch-site'] = "cross-site"


Review comment (suggestion):
i don't like this id tbh.
I personally would have parsed the `chamber` `date` and `t` from the url and maybe hashed them if not just joined them  using `_` and used that as the id.


Code after:
                'formats': formats,
                'description': description,
                'thumbnail': thumbnail,
                'duration': int_or_none(get_text_attr(f, 'length')),
                'subtitles': {
                    'en': [{
                        'url': capfile,
                        'ext': determine_ext(capfile, 'dfxp')
                    }],
                } if capfile else None,
            })

        if len(entries) == 1:
            entry = dict(entries[0])
            entry['id'] = 'c' + video_id if video_type == 'clip' else video_id
            return entry
        else:
            return {
                '_type': 'playlist',
                'entries': entries,
                'title': title,
                'id': 'c' + video_id if video_type == 'clip' else video_id,
            }


class CSpanCongressIE(InfoExtractor):
    _VALID_URL = r'https?://(?:www\.)?c-span\.org/congress/'
    _TESTS = [{
        'url': 'https://www.c-span.org/congress/?chamber=house&date=2017-12-13&t=1513208380',
        'info_dict': {
            'id': 'house_2017-12-13',
            'title': 'Congressional Chronicle - Members of Congress, Hearings and More',
            'description': 'md5:54c264b7a8f219937987610243305a84',
            'thumbnail': r're:https://ximage.c-spanvideo.org/.+',
            'ext': 'mp4'
        }
    }]

    def _real_extract(self, url):
        query = parse_qs(url)
        video_date = query.get('date', [None])[0]
        video_id = join_nonempty(query.get('chamber', ['senate'])[0], video_date, delim='_')
        webpage = self._download_webpage(url, video_id)
        if not video_date:
            jwp_date = re.search(r'jwsetup.clipprogdate = \'(?P<date>\d{4}-\d{2}-\d{2})\';', webpage)
            if jwp_date:
                video_id = f'{video_id}_{jwp_date.group("date")}'
        jwplayer_data = self._parse_json(
            self._search_regex(r'jwsetup\s*=\s*({(?:.|\n)[^;]+});', webpage, 'player config'),
            video_id, transform_source=js_to_json)