def _get_stream_info(self, url):
    match = _url_re.match(url)
    user = match.group('user')
    live_channel = match.group('liveChannel')
    if user:
        video_id = self._find_channel_video()
    elif live_channel:
        return self._find_canonical_stream_info()
    else:
        video_id = match.group('video_id')
        if (video_id == 'live_stream'):
            query_info = dict(parse_qsl(urlparse(url).query))
            if ('channel' in query_info):
                video_id = self._get_channel_video(query_info['channel'])
    if (not video_id):
        return
    params = {'video_id': video_id, 'el': 'player_embedded'}
    res = http.get(API_VIDEO_INFO, params=params, headers=HLS_HEADERS)
    return parse_query(res.text, name='config', schema=_config_schema)
def _get_stream_info(self, url):
    match = _url_re.match(url)
    user = match.group('user')
    live_channel = match.group('liveChannel')
    if user:
        video_id = self._find_channel_video()
    elif live_channel:
        return self._find_canonical_stream_info()
    else:
        video_id = match.group('video_id')
        if (video_id == 'live_stream'):
            query_info = dict(parse_qsl(urlparse(url).query))
            if ('channel' in query_info):
                video_id = self._get_channel_video(query_info['channel'])
    if (not video_id):
        return
    params = {'video_id': video_id, 'el': 'player_embedded'}
    res = http.get(API_VIDEO_INFO, params=params, headers=HLS_HEADERS)
    return parse_query(res.text, name='config', schema=_config_schema)