def METHOD_NAME(self, url):
    video_id, locale = self._match_valid_url(url).group('id', 'locale')
    webpage = self._download_webpage(url, video_id)
    preconnect_link = self._search_regex(
        r'<link\b[^>]+\brel\s*=\s*"preconnect"[^>]+href\s*=\s*"([^"]+)"', webpage, 'Preconnect Link')
    video_details = self._download_json(
        '{preconnect_link}/sections/videoDetails/{video_id}'.format(**locals()), video_id, 'Downloading Video Details', fatal=False)
    preplay_parameters = self._download_json(
        '{preconnect_link}/videoPlayerData/{video_id}'.format(**locals()), video_id, 'Downloading Preplay Parameters')['preplayParameters']
    content_data = self._download_json(
        # 1. query string is expected to be sent as-is
        # 2. `sig` must be appended
        # 3. if absent, the call appears to work but the manifest is bad (404)
        'https://content.uplynk.com/preplay/{contentId}/multiple.json?{queryStr}&sig={signature}'.format(**preplay_parameters),
        video_id, 'Downloading Content Data')
    # formats, subtitles = self._extract_m3u8_formats_and_subtitles(content_data['playURL'], video_id)
    formats, subtitles = self._extract_m3u8_formats(content_data['playURL'], video_id, ext='mp4', entry_protocol='m3u8_native'), None
    self._sort_formats(formats)
    return {
        'id': video_id,
        'title': video_details['title'],
        'description': video_details.get('description'),
        'duration': int_or_none(video_details.get('duration')),
        'release_timestamp': unified_timestamp(video_details.get('dateOfRelease')),
        'categories': traverse_obj(video_details, (('videoCategory', 'videoSubcategory'),)),
        'thumbnail': traverse_obj(video_details, ('backgroundImage', 'src')),
        'formats': formats,
        'subtitles': subtitles,
    }